60章、画像を変える方法

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

60章、画像を変える方法

#1

投稿記事 by はね » 15年前

60章の龍神録について教えてください。
今改造して作成している一面、二面で
3D画像を変えたいのですが、
3Dbackground.cppのvoid Ini3Dbackground()で
if(stage==0){//一面ならば
	ImgHandle = LoadGraph( "../dat/img/back/3D/tex00.png" );
	IniObj(&Object[0], ImgHandle, 512,  0,  0, 256, 128, 250, 50, 3, 1000, 400, -200, -400, 320, 240-90, OBCHILD_MAX);
	IniObj(&Object[1], ImgHandle, 512,  0,  0, 256, 128, 250, 50, 4, 1000, 400, -200, -400, 320, 240-90, OBCHILD_MAX);
	//IniObj(&Object[2], ImgHandle, 512, 60,270, 405, 512, 180,125, 0, 1000, 400, -200, -400, 470, 275, 6);
	IniObj(&Object[2], ImgHandle, 512, 60,270, 405, 512, 180,125, 0, 1000, 400, -200, -400, 360, 275, 6);
	ImgHandle = LoadGraph( "../dat/img/back/3D/kabe00.png" );
	IniObj(&Object[3], ImgHandle, 512,  0,  0, 390, 512,  73, 90, 1, 1000, 400, -200, -400, 170, 240, OBCHILD_MAX);
	IniObj(&Object[4], ImgHandle, 512,  0,  0, 390, 512,  73, 90, 2, 1000, 400, -200, -400, 170, 240, OBCHILD_MAX);
}
if(stage==1){//二面ならば
	ImgHandle = LoadGraph( "../dat/img/back/3D/tesuto.png" );
	IniObj(&Object[0], ImgHandle, 512,  0,  0, 256, 128, 250, 50, 3, 1000, 400, -200, -400, 320, 240-90, OBCHILD_MAX);
	IniObj(&Object[1], ImgHandle, 512,  0,  0, 256, 128, 250, 50, 4, 1000, 400, -200, -400, 320, 240-90, OBCHILD_MAX);
	//IniObj(&Object[2], ImgHandle, 512, 60,270, 405, 512, 180,125, 0, 1000, 400, -200, -400, 470, 275, 6);
	IniObj(&Object[2], ImgHandle, 512, 60,270, 405, 512, 180,125, 0, 1000, 400, -200, -400, 360, 275, 6);
	ImgHandle = LoadGraph( "../dat/img/back/3D/tesuto2.png" );
	IniObj(&Object[3], ImgHandle, 512,  0,  0, 390, 512,  73, 90, 1, 1000, 400, -200, -400, 170, 240, OBCHILD_MAX);
	IniObj(&Object[4], ImgHandle, 512,  0,  0, 390, 512,  73, 90, 2, 1000, 400, -200, -400, 170, 240, OBCHILD_MAX);
}
みたいにして、画像を変えたいのですが、
なぜか二面に移行しても一面の3D画像のままなのですが、
変えるのはどうしたらいいのでしょうか?
誰か原因が分かり方がいましたら教えてください・・

Naohiro19

Re:60章、画像を変える方法

#2

投稿記事 by Naohiro19 » 15年前

switch case文で読み込みを0、描画を1 解放を3にして分けます
#define STATE_INIT    0
#define STATE_MAIN    1
#define STAGE_RELEASE 3
int processflag = STATE_INIT; 

int game(char* fname) //fnameは
{
    switch(processflag) {
       case STATE_INIT:
           //ステージの初期化関数を呼ぶ
           break;
       case STATE_MAIN:
           //ステージのメイン処理関数を呼ぶ
           break;
       case STAGE_RELEASE:
           //解放処理関数を呼ぶ
           break;
    }
    return 1;
}

はね

Re:60章、画像を変える方法

#3

投稿記事 by はね » 15年前

え?そんな面倒なことをしなくてはならないのですか?
例えばですがボスの表示などは

//ボスの表示
if(stage==0){ //1面ならば
DrawRotaGraphFdF(boss.dx,boss.dy,1.0f,0.0f,img_boss01[0][boss.img],TRUE);
}
if(stage==1){ //2面ならば
DrawRotaGraphFdF(boss.dx,boss.dy,1.0f,0.0f,img_boss02[0][boss.img],TRUE);
}
これだけでも、変わっていたのですが・・
なぜ3D背景だけ?

Dixq (管理人)

Re:60章、画像を変える方法

#4

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

パッと見、特に間違いは無いような気がしますけど、、、
眠くて目があかない^^;

stageの変数はきちんと変わっていますか?
ブレイクポイントなどでその条件式の中に入っていることは確実ですか?

閉鎖

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