HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0130
にゃんちゃんアクションゲームにおけるキャラの移動量と角度について3解決


にゃんちゃん

リンク

2012/1/30(Mon) 22:28:53|NO.44612

ただいまアクションゲーム作製を考えているのですが、キャラの移動で困っています。
角度を自由に設定して動けるようにしたいのですが、角度から移動量を計算することがうまくできません。
私はまだ中学生なので、詳しく三角関数を勉強していません。
そこで、ネットでいろいろ調べて、それらしい式を発見し、スクリプトを組んでみました。
ところが、明らかにX方向とY方向の移動量が違う気がしました。
以下がそのスクリプトです。
X・Yの移動量を表示します。

move_distance=5.0 move_direction=90.0 ; x軸方向移動量 = cos( 角度 ) * 距離 ; y軸方向移動量 = sin( 角度 ) * 距離 move_x=cos(move_direction)*move_distance move_y=sin(move_direction)*move_distance mes "x" mes move_x mes "y" mes move_y stop
90度であれば、x5.0、y0.0になるはずだと思っています。
これは、私の認識になにか間違いがあるのでしょうか?また、その場合はどのように解決することができるのでしょうか?
よろしくお願いいたします。



この記事に返信する


XBG|YAMANOTE231103(PC)

リンク

2012/1/30(Mon) 22:40:09|NO.44614

プログラミングの三角関数は大抵角度はラジアン指定なのですよ…
2πが360度にあたります

したがって正しい求め方は

move_direction=90.0/180.0*3.14159265352;円周率
となります。



てれてれ

リンク

2012/1/30(Mon) 22:43:35|NO.44615

角度値は度数法では無く弧度法で指定して下さい。
また、あなたは角度について勘違いしているようなのでもう1度よく調べてみてください。
90度の時は、x0.0,y5.0となるのが正しいです。


move_distance=5.0 move_direction=deg2rad( 90 ) ; x軸方向移動量 = cos( 角度 ) * 距離 ; y軸方向移動量 = sin( 角度 ) * 距離 move_x=cos(move_direction)*move_distance move_y=sin(move_direction)*move_distance mes "x" mes move_x mes "y" mes move_y stop



にゃんちゃん

リンク

2012/1/30(Mon) 22:49:32|NO.44616

ご丁寧にありがとうございました。
教えていただいたことを参考にして、無事解決いたしました。
てれてれさん、よくよく考えたらおっしゃるとおりでした。調べる前に自分の勘違いに気づきました。



ONION software Copyright 1997-2021(c) All rights reserved.