前提・実現したいこと
DXライブラリを用いてゲーム制作をしています。
実現したい内容は
1.常に画像Aを表示
2.特定のキーを入力した時のみ画像Aを非表示にして
画像Bを表示する。
といった内容になります。
質問は上記の内容を実現したいと言うことになりますが、
下記のコードで「なぜ」実現できなかったのかを、ご教授いただけると嬉しいです。
発生している問題・エラーメッセージ
キャラクターを移動させたいので、上記の内容のコードを4つ書いてみると 上方向と左方向への移動時には理想とする動作になっているのですが、 下方向と右方向への移動時に限り画像Aを非表示にする処理が実行されておらず、 画像Aと画像Bが重なって表示されてしまいます。
該当のソースコード
int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) { SetGraphMode(640, 480, 16); if (DxLib_Init() != 0) return 0; SetDrawScreen(DX_SCREEN_BACK); int x, y; int GameScreen; int GameFrame; int MenuSelectNum; int candy[4]; int chili[2]; int GraphOnOff; x = 320; y = 420; GraphOnOff = 1; GameFrame = LoadGraph("・・・.png"); GameScreen = LoadGraph("・・・.png"); chili[0] = LoadGraph("・・・.png"); chili[1] = LoadGraph("・・・.png"); candy[0] = LoadGraph("・・・.png"); candy[1] = LoadGraph("・・・.png"); candy[2] = LoadGraph("・・・.png"); candy[3] = LoadGraph("・・・.png"); MenuSelectNum = MenuSelect(); while (UpdateKey() == 0) { if (ClearDrawScreen() != 0) break; if (MenuSelectNum == 1) { DrawGraph(0, 0, GameFrame, TRUE); DrawGraph(140, 20, GameScreen, TRUE); DrawRotaGraph(320, 104, 1.0, 0, chili[0], TRUE); } if (MenuSelectNum == 2) break; if (GraphOnOff == 1) { DrawRotaGraph(x, y, 1.0, 0, candy[0], TRUE); } // 問題の移動処理 if (Key[KEY_INPUT_W] > 1) { GraphOnOff = 0; DrawRotaGraph(x, y, 1.0, 0, candy[0], TRUE); y -= 3; } else { GraphOnOff = 1; } //このSキーの処理と if (Key[KEY_INPUT_S] > 1) { GraphOnOff = 0; DrawRotaGraph(x, y, 1.0, 0, candy[1], TRUE); y += 3; } else { GraphOnOff = 1; } // Dキーの処理がうまくいきません。 if (Key[KEY_INPUT_D] > 1) { GraphOnOff = 0; DrawRotaGraph(x, y, 1.0, 0, candy[2], TRUE); x += 3; } else { GraphOnOff = 1; } if (Key[KEY_INPUT_A] > 1) { GraphOnOff = 0; DrawRotaGraph(x, y, 1.0, 0, candy[3], TRUE); x -= 3; } else { GraphOnOff = 1; } if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) break; if (ProcessMessage() != 0) break; if (ScreenFlip() != 0) break; } DxLib_End(); return 0; }
試したこと
座標に対して加算している場合にうまくいかないのかと思い
減算してみたりしたが結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Windows10
Microsoft Visual Studio Community 2019(Version 16.4.5)
初めて質問させていただきます、ソースコードを全て載せるべきか悩んだのですが
省略しています。
他にも質問に回答していただくにあたって必要な情報などが抜けていたら、
ご指摘いただけると嬉しいです。
回答1件
あなたの回答
tips
プレビュー