第4章p.145のGetNowCount関数とグローバル関数strattimeを使い画面が表示された時間を使う所で分からない点がありまして、質問させてもらいます。
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC){
…………………………………
switch(gstate){
case GAME_TITLE:
DrawGameTitle();
break;
case GAME_MAIN:
DrawGameMain();
break;
case GAME_OVER:
DrawGameOver();
break;
case GAME_CLEAR:
DrawGameClear();
break;
…………………………………
}
/●ゲームタイトル画面の表示
void DrawGameTitle(){
…………………………………
gstate = GAME_MAIN
…………………………………
}
//●ゲーム本体の実行
void DrawGameMain(){
…………………………………
if(AtariHantei() == 1){
gstate = GAME_OVER;
starttime = GetNowCount();
}
…………………………………
}
//●ゲームオーバー画面の表示
void DrawGameOver(){
…………………………………
if(GetNowCount() - starttime > 5000){
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_A){
gstate = GAME_TITLE;
}
}
}
流れとしては…
1:WinMain
2:case GAME_TITLE:→DrawGameTitle
3:gstate = GAME_MAIN
4:case GAME_MAIN:→DrawGameMain();
5:void DrawGameMain(){
…………………………………
if(AtariHantei() == 1){
gstate = GAME_OVER;
「starttime = GetNowCount();」←???
}
6:case GAME_OVER:→DrawGameOver();
7:void DrawGameOver(){
…………………………………
if(GetNowCount() - starttime > 5000){
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_A){
gstate = GAME_TITLE;
}
}
}
だと思うのですが「5〜7」の間の処理の順番が今一分からないのです。
特に5の gstate = GAME_OVER;の後に書かれているstarttime = GetNowCount();はいつ値が入るのでしょうか?
また、GetNowCount関数に入る値はいつ頃から入るのでしょうか?ウィンドウが起動してから?それともゲームオーバー処理に移ってからカウントが始まるのでしょうか?
見難くてスイマセン。質問を書くのですらどう書いて良いか分からなくなりました(汗)
まだ未熟な若輩者(プログラミング)ですがご教授宜しくお願いします。