windows7
Visual Studio 2010 Professional
DXライブラリを使用
プログラミング歴 1年程度
です。
下記が書いたプログラムです。
Scene.h Menu.h main.cpp
#include"DxLib.h"
#include"Scene.h"
#include"Menu.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
DxLib_Init(),
ChangeWindowMode(TRUE),
SetDrawScreen(DX_SCREEN_BACK);
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
switch(sFlag){
case sMenu:
Menu();
break;
case sQ1:
Q1();
break;
case sQ2:
Q2();
break;
case sQ3:
Q3();
break;
default:
break;
}
DxLib_End();
return 0;
}
#include"DxLib.h"
#include"Scene.h"
#include"Menu.h"
void Menu(){
DrawString(0,0,"Menu",GetColor(255,255,255));
if(CheckHitKey(KEY_INPUT_Z)==1){
if(keyZflag==0){
sFlag=sQ1;
keyZflag=1;
}
}else{
keyZflag=0;
}
}
#include"DxLib.h"
#include"Scene.h"
#include"Menu.h"
void Q1(){
DrawString(0,20,"Q1",GetColor(255,255,255));
if(CheckHitKey(KEY_INPUT_Z)==1){
if(keyZflag==0){
sFlag=sQ2;
keyZflag=1;
}
}else{
keyZflag=0;
}
}
void Q2(){
DrawString(0,20,"Q2",GetColor(255,255,255));
if(CheckHitKey(KEY_INPUT_Z)==1){
if(keyZflag==0){
sFlag=sQ3;
keyZflag=1;
}
}else{
keyZflag=0;
}
}
void Q3(){
DrawString(0,20,"Q3",GetColor(255,255,255));
if(CheckHitKey(KEY_INPUT_Z)==1){
if(keyZflag==0){
sFlag=sMenu;
keyZflag=1;
}
}else{
keyZflag=0;
}
}
しかし、ブレークポイントなどを使用して調べたところ、
Menu関数でsQ1の代入はされているのに、
次のフレームでcase sQ1に行かないのです。
何が起こっているのでしょうか?
1週間程度考えましたが、全く分かりませんでした…
一緒に考えて頂けると嬉しいです。宜しくお願いします。