現在、スロットゲームを作ろうとしてるんですが、どうも描画が上手く出来ないのとボタン入力が上手く出来ないので、ここに書かして貰いました。
↓問題のソース
#include "DxLib.h"
const int KOMA_WIDTH = 51; //1コマの幅
const int KOMA_HEIGHT = 18; //1コマの高さ
const int GAP = 2; //リール間のギャップ(各リールの左右)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
int hHandle , nHandle ,mHandle ; //グラフィックハンドル
int hidariIndex[3];//現在の上段インデックス
int nakaIndex[3];
int migiIndex[3];
bool startFlag = false; //回転フラグ(trur:回転、false:停止)
ChangeWindowMode(true);
SetMainWindowText("eva");
if(DxLib_Init() == -1){
return -1;
}
SetGraphMode((KOMA_WIDTH + GAP * 2) * 3, KOMA_HEIGHT * 3, 32); //ウインドウサイズの変更
hHandle = LoadGraph("hidari.bmp");
SetDrawScreen(DX_SCREEN_BACK);
for(int i=0; i<3; i++){
hidariIndex[i] = 5;
}
nHandle = LoadGraph("naka.bmp");
SetDrawScreen(DX_SCREEN_BACK);
for(int j=0; j<3; j++){
nakaIndex[j] = 5;
}
mHandle = LoadGraph("migi.bmp");
SetDrawScreen(DX_SCREEN_BACK);
for(int x=0; x<3; x++){
migiIndex[x] = 5;
}
/*メインループ開始*/
while(ProcessMessage() == 0){ //ループ処理
if(CheckHitKey(KEY_INPUT_ESCAPE) == 1){
break;
}
//左リール
if(CheckHitKey(KEY_INPUT_Z) == 1){ //Zキーが押されたとき
if(startFlag){
startFlag = false; //回転中なら停止させる
}else{
startFlag = true; //停止中なら回転させる
}
}
if(startFlag){ //回転フラグが立っているとき
for(int i=0; i<3; i++){ //現在のインデックスを+1する
hidariIndex[i] ++;
if(hidariIndex[i] > 20){ //現在のインデックスが20を上回るとき
hidariIndex[i] = 0; //0にする
}
}
}
ClearDrawScreen(); //バッファをクリアする
for(int i=0; i<3; i++){
DrawRectGraph(GAP + (KOMA_WIDTH + GAP * 2) * i, 0, //画像の任意の矩形部分を表示
KOMA_WIDTH * i, (20 - hidariIndex[i]) * KOMA_HEIGHT, KOMA_WIDTH, 3 * KOMA_HEIGHT,
hHandle, false, false);
}
//中リール
if(CheckHitKey(KEY_INPUT_X) == 1){ //Xキーが押されたとき
if(startFlag){
startFlag = false; //回転中なら停止させる
}else{
startFlag = true; //停止中なら回転させる
}
}
if(startFlag){ //回転フラグが立っているとき
for(int j=0; j<3; j++){ //現在のインデックスを+1する
nakaIndex[j] ++;
if(nakaIndex[j] > 20){ //現在のインデックスが20を上回るとき
nakaIndex[j] = 0; //0にする
}
}
}
ClearDrawScreen(); //バッファをクリアする
for(int j=0; j<3; j++){
DrawRectGraph(GAP + (KOMA_WIDTH + GAP * 2) * j+ 55 , 0, //画像の任意の矩形部分を表示
KOMA_WIDTH * j, (20 - nakaIndex[j]) * KOMA_HEIGHT, KOMA_WIDTH, 3 * KOMA_HEIGHT,
nHandle, false, false);
}
//右リール
if(CheckHitKey(KEY_INPUT_C) == 1){ //Cキーが押されたとき
if(startFlag){
startFlag = false; //回転中なら停止させる
}else{
startFlag = true; //停止中なら回転させる
}
}
if(startFlag){ //回転フラグが立っているとき
for(int x=0; x<3; x++){ //現在のインデックスを+1する
migiIndex[x] ++;
if(migiIndex[x] > 20){ //現在のインデックスが20を上回るとき
migiIndex[x] = 0; //0にする
}
}
}
ClearDrawScreen(); //バッファをクリアする
for(int x=0; x<3; x++){
DrawRectGraph(GAP + (KOMA_WIDTH + GAP * 2) * x + 110 , 0, //画像の任意の矩形部分を表示
KOMA_WIDTH * x, (20 - migiIndex[x]) * KOMA_HEIGHT, KOMA_WIDTH, 3 * KOMA_HEIGHT,
mHandle, false, false);
}
ScreenFlip();
WaitTimer(100);
}
/*メインループ終了*/
DxLib_End();
return 0;
}
この状態で起動すると、右リールしか表示されなくて、ボタンもZ・X・Cどれでも止まってしまうのですがどうすれば良いでしょうか?
誰か解りやすく教えてもらえないでしょうか?