ページ 11

敵の移動制御について

Posted: 2014年9月06日(土) 15:07
by けんさん
アクションゲームを作っていて、敵の移動を制御をしていてわからないことが
あったので、お聞きします。

まず初期値900で、敵のx軸が1100の座標まで来ると、x軸をマイナスし
900までくると、1100まで+するというプログラムを作りたいです。

コード:

		yu_x++;
		if(yu_x>1100 || yu_x>=900){
			yu_x--;
		}
		if(yu_x<=900 || yu_x<=1100){
			yu_x++;
		}



これでビルドしてみると、x軸が1101のところでとまってしまいます
どのように修正すればいいでしょうか

Re: 敵の移動制御について

Posted: 2014年9月06日(土) 16:01
by みけCAT
無条件にyu_x++;するのをやめ、
移動速度(速度なので向き(正負)も含みます)を表す変数を用意し、
向きを変えるべき場所に来たら移動速度を適切に設定するようにすればいいと思います。

Re: 敵の移動制御について

Posted: 2014年9月06日(土) 16:28
by softya(ソフト屋)
分かりやすく目的を達するには、右に移動している左に移動していると言うフラグ変数を用意します。
フラグが右なら、左ならで条件分けして、それぞれ処理を適切に書いてやれば良いと思います。

Re: 敵の移動制御について

Posted: 2014年9月06日(土) 18:26
by けんさん
ありがとうございます!

お二方のアドバイスを元に、作ったら、できました

コード:


if(yu_x<=100){
			RL_flag=0;
		}
		if(yu_x>=200){
			RL_flag=1;
		}

		if(RL_flag==0){
			yu_x+=yu_movex;
		}
		if(RL_flag==1){
			yu_x-=yu_movex;
		}