龍神録9章の移動制御について
Posted: 2012年10月21日(日) 15:32
はじめまして。プログラミング初心者です。
初めて質問します。
龍神録9章の移動制御でわからないところがあるので教えてください。
char.cppで最後の
[coad]
x+=mx/naname , y+=my/naname;//今の座標と移動分を足す
if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら
ch.x=x , ch.y=y;//実際に移動させる
}
[/coad]
の部分でなぜ移動範囲を制限できるのかよくわかりません。
例えば、キャラクターが一番下にいる状態で右+下、もしくは左+下にキー入力します。
自分は、このとき、計算結果の座標が移動可能範囲外になるので、
ch.x=x , ch.y=y;
の部分は実行されず、キャラクターは動かないのでは?、と考えています。
しかし、実行結果ではこのとき、キャラクターのy座標は変わらず、x座標だけ動くことができます。
なぜこのように動けるのでしょうか?
わかりにくい質問文で申し訳ありません。
よろしくお願いします。
初めて質問します。
龍神録9章の移動制御でわからないところがあるので教えてください。
char.cppで最後の
[coad]
x+=mx/naname , y+=my/naname;//今の座標と移動分を足す
if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら
ch.x=x , ch.y=y;//実際に移動させる
}
[/coad]
の部分でなぜ移動範囲を制限できるのかよくわかりません。
例えば、キャラクターが一番下にいる状態で右+下、もしくは左+下にキー入力します。
自分は、このとき、計算結果の座標が移動可能範囲外になるので、
ch.x=x , ch.y=y;
の部分は実行されず、キャラクターは動かないのでは?、と考えています。
しかし、実行結果ではこのとき、キャラクターのy座標は変わらず、x座標だけ動くことができます。
なぜこのように動けるのでしょうか?
わかりにくい質問文で申し訳ありません。
よろしくお願いします。