DXライブラリ 総合スレッド その5at GAMEDEVDXライブラリ 総合スレッド その5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト509:名前は開発中のものです。 10/01/07 15:43:45 4ItCtcBu if(cstate == START){ 以下をsome_function関数にして、 void ShootGame::drawGameClear(){ int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); chk_key(); if(key & PAD_INPUT_B){ cstate++; some_function(); } } というのもやってみましたが(当然ですが)できませんでした。 chk_keyの中身は、 void ShootGame::chk_key(){ int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); before_key_state = now_key_state; if(key & PAD_INPUT_B){ now_key_state = true; } else{ now_key_state = false; } } というような形になっています。 510:名前は開発中のものです。 10/01/07 15:52:30 4ItCtcBu キーを離すと「cstate = START」の状態に戻っていると思います。 if(key & PAD_INPUT_B){ }内の cstate++;の前後に if(cstate == START){ を入れるというのも試してみたのですが、 やはりうまくいきません 511:名前は開発中のものです。 10/01/07 16:22:43 3PYGN21/ そりゃ cstate はローカル変数だからな それじゃあその関数呼ばれるたびに cstate = START; がセットされるわな int cstate = START; を static int cstate = START; に変えるか あるいは cstate をメンバ変数にするかしないと あと、キー押し続けチェックは彼とは違ったやりかたになるけど chk_key(); int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); if(key & PAD_INPUT_B){ cstate++; } の部分を以下に変えたらどうか static bool holdDownB = true; int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); int pushB = key & PAD_INPUT_B; if (pushB && !holdDownB){ cstate++; holdDownB = true; } if (!pushB) holdDownB = false; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch