DXライブラリ 総合スレッド 2008at GAMEDEVDXライブラリ 総合スレッド 2008 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト796:名前は開発中のものです。 09/03/09 23:31:07 2qC8QqlY >>794 上手くできないってどういう意味? char m_cKey[2][256]; //キーバッファ とでもして 毎フレーム void GetAllState(){ memcpy(m_cKey[1],m_cKey[0],256); ::GetHitKeyStateAll(m_cKey[0]); } を呼んで、 int GetKeyPress(int KeyCode){return m_cKey[0][KeyCode];}//キーが押されているかどうか int GetKeyDown(int KeyCode){return (m_cKey[0][KeyCode] && !m_cKey[1][KeyCode]);}//キーが押された瞬間 int GetKeyUp(int KeyCode){return (!m_cKey[0][KeyCode] && m_cKey[1][KeyCode]);}//キーが離された瞬間 とでもすればおk 前フレームとの差分で押された瞬間と話された瞬間を検出するべさ 797:名前は開発中のものです。 09/03/09 23:31:59 6kYj4gTE >>794 エスパーじゃないんで、 何をやって何ができないのかすら分らん。 とりあえず、×ctrcmp =>○strcmpだと過程しても検討範囲外。 ポインタの使い方とか、関数の使い方は大丈夫だと仮定してもだ・・・・。 そもそも、そのchar a[]が何を入れるか理解してるかい? そいつらに入るのは、あるキーが押されてるかどうかのon offフラグであって、 押されてるキーがchar型として'o'みたいに入るわけじゃないぞ。 押しっぱなしは、基本的には、 char NowKey[256]; char OldKey[256]; // ....somewhere to initilaize Nowkey[] and OldKey[], to 0. GetHitKeyStateAll( NowKey );//Now get putting on key if( NowKey[ KEY_INPUT_Z ] == 1 ) { if( OldKey[KEY_INPUT_Z] != 1 ) { PutOnFUNCTION(); // only not on putting Z_KEY. OldKey[KEY_INPUT_Z]=1; } //There is No doing on putting Z_KEY. } else { OldKey[KEY_INPUT_Z]= 0 ; //No to put Z_KEY, initialize OldKey[] to 0. } な感じに書く。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch