<環境>
Windows10
DXライブラリ
visual studio 2018
<質問>
変数functionを使って画面を切り替えるプログラムを作ってるのですが、Xを押しても変数の値が変化せずにいます。何が間違っているのでしょうか?
もう一つあるのですが、画像を描画する関数はDrawGraphだと思いますが、もしキャラが被った場合、敵キャラを主人公に上に来るように被せたいのですが、
主人公を描画する関数DrawGraphの後に敵を描画する関数DrawGraphを書けばいいのですか?
<プログラム>
#include "DxLib.h"
int Key[256];
int gpUpdateKey()
{
char tmpKey[256];
GetHitKeyStateAll(tmpKey);
for (int i = 0; i < 256; i++)
(tmpKey[i] == 0) ? (Key[i] = 0) : Key[i]++;
return 0;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
SetGraphMode(800, 780, 32); // ウィンドウの大きさを指定
ChangeWindowMode(TRUE); // 全画面ではなくウインドウを使用
if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理
SetDrawScreen(DX_SCREEN_BACK); // 裏画面を使用する設定
int White;
int function = 0;
int Xkey = 0;
while (ProcessMessage() == 0) {
gpUpdateKey(); // キーの入力状態を取得
if (Key[KEY_INPUT_X] == 1) { //キーXを押すとfunction_statusは0になる
function = 1;
Xkey = 1;
}
if (Key[KEY_INPUT_X] == 1 && Xkey == 1) { //キーYを押すとfunction_statusは1になる
Xkey = 0;
function = 0;//戦闘画面に戻す
}
//これより以下は描画するためのプログラム
ClearDrawScreen(); // 裏画面を
if (function == 1) {
White = GetColor(255, 255, 255); //色の取得
DrawString(100, 140, "攻撃方法の選択画面 (xをプッシュ)", White);
ScreenFlip(); // 裏画面を表画面に反映
}
DrawFormatString(50, 570, GetColor(255, 150, 170), "functionは%d", function);
DrawFormatString(50, 590, GetColor(255, 150, 170), "Xkeyは%d", Xkey);
ScreenFlip(); // 裏画面を表画面に反映
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}