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

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

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

#1

投稿記事 by 超初心者 » 15年前

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

シエル

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

#2

投稿記事 by シエル » 15年前

ヒント

こいつは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章のことについて

#3

投稿記事 by 超初心者 » 15年前

理解できました^^

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

超初心者

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

#4

投稿記事 by 超初心者 » 15年前

解決マークを押し忘れてました

超初心者

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

#5

投稿記事 by 超初心者 » 15年前

解決マークを押し忘れてました

閉鎖

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