トップページgamedev
996コメント482KB

【2D】ゲーム作成ツールGameMaker part3【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/05/11(日) 01:41:47ID:PRhlwPyW
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
 ttp://gamemaker.main.jp/
●初心者向けチュートリアル
 ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1


前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0696名前は開発中のものです。2009/01/16(金) 18:15:06ID:UMDE1LJg
単純に、次の方向 > (現在の方向 + 180度) mod 360
の条件式で時計回り、反時計回りを考えればいいんじゃないか
0697名前は開発中のものです。2009/01/16(金) 20:01:52ID:P13I2TEi
単に大小関係で比較すると、0-360度をまたぐところでうまくいかないよ。
まず差を求めて、-180〜180の間になるよう変換してから符号で判定すればいい。

diff = 相手の向き - 自分の向き;
while (diff < -180) diff += 360;
while (diff > 180) diff -= 360; // この2行は diff=(diff+360+180)mod 360-180 でも可
if (diff < 0) 右に回る else 左に回る;

あと、回転速度が一定だと相手の方を向いた時に
ブルブル震えるって問題が起きがちだから、
目標との差が十分小さい時には回転角度を制限した方がいいかも。
image_angle += sign(diff) * min(abs(diff), 10); みたいに。
■ このスレッドは過去ログ倉庫に格納されています