ゲームプログラミングの館20章では else if(ch.x%32!=0) ch.x++;
という処理をしますが、ゲームプログラミングの館22章ではなぜ else if(ch.x%32!=0) ch.x++;
という処理をしなくてもちゃんと動くのですか?初歩的な質問ですみませんが教えてください
ゲームプログラミングの館22章のことについて
Re:ゲームプログラミングの館22章のことについて
ヒント
こいつは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で割り切れない座標に居るときは
どう動くと思いますか?
こいつは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で割り切れない座標に居るときは
どう動くと思いますか?
