順番に画像を表示したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
neko

順番に画像を表示したい

#1

投稿記事 by neko » 6年前

画像を順番に表示したく
このように書いたのですがうまくいきません。

typedef enum {
eScene_Menu, //メニュー画面
eScene_Game, //ゲーム画面
eScene_Config, //設定画面1
eScene_Config2, //設定画面2
eScene_Config3, //設定画面3
} eScene;

static int Scene = eScene_Menu; //現在の画面(シーン)

nt ProcessLoop(){
if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
GetHitKeyStateAll_2();//現在のキー入力処理を行う
GetHitPadStateAll(); //現在のパッド入力処理を行う
return 0;
}

void UpdateScene(){
if (CheckHitKey(KEY_INPUT_1) != 0){
Scene = eScene_Config;
}
if (CheckHitKey(KEY_INPUT_2) != 0){
Scene = eScene_Config2;
}
if (CheckHitKey(KEY_INPUT_3) != 0){
Scene = eScene_Config3;
}
if (CheckHitKey(KEY_INPUT_4) != 0){
Scene = eScene_Game;
}
}

void Menu(){
メニュー画面表示
}
void Config1(){
 設定画面1表示(画像)
}
void Config2(){
 設定画面2表示(画像)
}
void Config3(){
 設定画面3表示(画像)
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
ChangeWindowMode(TRUE);//ウィンドウモード
if (DxLib_Init() == -1 || SetDrawScreen(DX_SCREEN_BACK) != 0) return -1;//初期化と裏画面化
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0){
switch (Scene){//現在のシーンにあった処理をする
case eScene_Menu://現在のシーンがメニューなら
Menu();//メニュー画面
break;
case eScene_Game://現在のシーンがゲームなら
goto title;
case eScene_Config://現在のシーンが設定なら
Config();
break;
case eScene_Config2://現在のシーンが設定なら
Config2();
break;
case eScene_Config3://現在のシーンが設定なら
Config3();
break;
}
UpdateScene();//シーンを更新する

1押したら設定画面1表示   2押したら設定画面2表示 3押したら設定画面3表示 4押したらゲーム開始 
こう書いてあるのですが
方向キー → で メニュー → 設定画面1 → 設定画面2 → 設定画面3 → ゲーム と順番に表示したのですが
どうしたらいいのでしょうか

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

Re: 順番に画像を表示したい

#2

投稿記事 by Dixq (管理人) » 6年前

まず、ソースコードはcodeタグで囲んでください。インデントや色分けがないので非常に見にくいです。

フォーラムルール
http://dixq.net/board/board.html

設計として、UpdateSceneでほかのシーンも変更できるようなコードは変ですね。
MenuならMenu関数内で、ConfigならConfig関数内で実装すべきでしょう。
そうじゃないと画面遷移はでたらめに遷移できるようになってしまいます。

返信

“C言語何でも質問掲示板” へ戻る