ページ 11

ゲームプログラミングの館22章のことについて

Posted: 2010年9月18日(土) 13:49
by 超初心者
ゲームプログラミングの館20章では else if(ch.x%32!=0) ch.x++;
という処理をしますが、ゲームプログラミングの館22章ではなぜ else if(ch.x%32!=0) ch.x++;
という処理をしなくてもちゃんと動くのですか?初歩的な質問ですみませんが教えてください

Re:ゲームプログラミングの館22章のことについて

Posted: 2010年9月18日(土) 14:11
by シエル
ヒント

こいつは32で割り切れるときしか処理できない。
では割り切れないときはどう動きますか?

if(ch.x%32==0 && ch.y%32==0){ //座標が32で割り切れたら入力可能
ch.walking_flag=1; //歩くフラグを立てる。
if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら
ch.muki=0; //上向きフラグを立てる
else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら
ch.muki=1; //左向きフラグを立てる
else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら
ch.muki=2; //下向きフラグを立てる
else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら
ch.muki=3; //右向きフラグを立てる
else //何のボタンも押されてなかったら
ch.walking_flag=0; //歩かないフラグを立てる
}




下のコードはフラグが立っているときは以下の処理をします。
じゃあフラグが立たないときはどのタイミングですか?

if(ch.walking_flag==1){ //歩くフラグが立っていたら
if (ch.muki==0) //上向きならch.y座標を減らす
ch.y--;
else if(ch.muki==1) //左向きならch.x座標を減らす
ch.x--;
else if(ch.muki==2) //下向きならch.y座標を増やす
ch.y++;
else if(ch.muki==3) //右向きならch.x座標を増やす
ch.x++;
}


以上の2点をふまえ、フラグが立っていて、32で割り切れない座標に居るときは
どう動くと思いますか? 画像

Re:ゲームプログラミングの館22章のことについて

Posted: 2010年9月19日(日) 02:24
by 超初心者
理解できました^^

シエルさんありがとうございます

Re:ゲームプログラミングの館22章のことについて

Posted: 2010年9月19日(日) 05:13
by 超初心者
解決マークを押し忘れてました

Re:ゲームプログラミングの館22章のことについて

Posted: 2010年9月19日(日) 05:13
by 超初心者
解決マークを押し忘れてました