タイトルの選択画面についてです
void opening_disp(int White,int y,int x){
DrawString( x , y , "■" , White );
DrawString( 270 , 200 , "GAME START" , White );
DrawString( 250 , 240 , "未設定" , White );
DrawString( 280 , 280 , "未設定" , White );
DrawString( 290 , 320 , "終了" , White );
}
void opening_control(){
int White,y=title.y=200,x=title.x=250;
White = GetColor( 255 , 255 , 255 ) ;
opening_disp(White,y,x);
if(CheckStatePad(configpad.down)>0){
if(title.y==200){
title.y=240;
title.x=230;
}
if(y==240){
y=280;
x=260;
}
if(y==280){
y=320;
x=270;
}
if(y==320){
y=200;
x=250;
}
}
if(CheckStatePad(configpad.up)>0){
if(y==200){
y=320;
x=270;
}
if(y==240){
y=200;
x=250;
}
if(y==280){
y=240;
x=230;
}
if(y==320){
y=280;
x=260;
}
}
if(CheckStatePad(configpad.shot)>0){
if(y==200){
game_state=51;
}
}
}
void opening_main(){
opening_control();
}
C言語~ゲームプログラミングの館~を参考にさせてもらい
↑のようにして関数呼び出しを使い・・・・って言うか
そこが問題ではなく、簡単に言えば、↑の文字はちゃんと描画されますが、パッドの十字キーを押しても反応がありません(ちなみにショットボタンとして登録したのは反応し、ゲーム画面に映ります)
ゲームに入ると十字キーはちゃんと動作するので、↑のどっかがおかしいんだと思いますが、わかりません・・・
すみません、教えてください・・・(;ω;)
初歩的なこと
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 初歩的なこと
int White,y=title.y=200,x=title.x=250;
で毎回初期化しているためだと思います。
見づらいので字下げしてコード形式で貼っておきます。
で毎回初期化しているためだと思います。
見づらいので字下げしてコード形式で貼っておきます。
void opening_disp(int White,int y,int x){
DrawString( x , y , "■" , White );
DrawString( 270 , 200 , "GAME START" , White );
DrawString( 250 , 240 , "未設定" , White );
DrawString( 280 , 280 , "未設定" , White );
DrawString( 290 , 320 , "終了" , White );
}
void opening_control(){
int White,y=title.y=200,x=title.x=250;
White = GetColor( 255 , 255 , 255 ) ;
opening_disp(White,y,x);
if(CheckStatePad(configpad.down)>0){
if(title.y==200){
title.y=240;
title.x=230;
}
if(y==240){
y=280;
x=260;
}
if(y==280){
y=320;
x=270;
}
if(y==320){
y=200;
x=250;
}
}
if(CheckStatePad(configpad.up)>0){
if(y==200){
y=320;
x=270;
}
if(y==240){
y=200;
x=250;
}
if(y==280){
y=240;
x=230;
}
if(y==320){
y=280;
x=260;
}
}
if(CheckStatePad(configpad.shot)>0){
if(y==200){
game_state=51;
}
}
}
void opening_main(){
opening_control();
}
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 初歩的なこと
解決方法と言いましても
int White,y=title.y=200,x=title.x=250;
でopening_control時に毎回初期化されるので、
title.y=200
title.x=250
をループ外に出すしかありません。
メイン側が提示されていないのでどうなっているか分かりませんが、毎回初期化しない様に出来ませんか?
int White,y=title.y=200,x=title.x=250;
でopening_control時に毎回初期化されるので、
title.y=200
title.x=250
をループ外に出すしかありません。
メイン側が提示されていないのでどうなっているか分かりませんが、毎回初期化しない様に出来ませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 初歩的なこと
あとx,yで処理してますがtitle.xとtitle.yで処理しないと関数外に出た時に情報が消えてしまいます。
変数の寿命の問題。
http://www.geocities.jp/ky_webid/c/022.html
変数の寿命の問題。
http://www.geocities.jp/ky_webid/c/022.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 初歩的なこと
おお!関数外に出したらうまくいきました!ありがとうございます!
豆知識のほうも、役に立ちました!ありがとうございます!一応解決です(って言うか今回、解決ってないのね)
豆知識のほうも、役に立ちました!ありがとうございます!一応解決です(って言うか今回、解決ってないのね)