ページ 11

三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月16日(金) 21:29
by ぼたろう
どうしたらよいのでしょう?

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月16日(金) 21:42
by シエル
このような質問で、あなたの求める回答が得られると思いますか?

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月16日(金) 22:03
by 白い時空
ただの推測ですが、360°を一周とする度数法でやってませんか?
プログラミングで使うのは、2πを一周とする孤度法です。

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月16日(金) 22:16
by ookami
あるいはintなどの整数型でやってませんか?

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月17日(土) 00:30
by KEN
今自分も同じ事をしています
もし自分の思い違いでなければ
これで角度はでます

自分はアークタンジェントを使ってます

atan2( 物.y - 物.y, 物.x - 物.x );

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月17日(土) 07:39
by へろりくしょん
6パターンくらいの角度というのが解りませんが、三角関数ですからまず角度を与えるものだと思うのですが。

難しく考えすぎではありませんか? 単純に公式に当てはめればいいだけだと思いますよ。

下記のコードは45度の角度で1移動したときのx座標とy座標をもとめています。
#define PI        3.141592

main
{
    double r = 45 * PI / 180;    //45度
    double y = sin(r);
    double x = cos(r);

    printf("x = %f, y = %f\n", x, y);
}

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月17日(土) 17:48
by KEYONN_
#define RAD (3.14159265/180)

float angle=30.0f;

x+=cos(angle*RAD)*Speed;
y-=sin(angle*RAD)*Speed;

これでどうでしょうか?

Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません

Posted: 2010年7月17日(土) 19:08
by KEYONN_
もしかして、STGの自機の動きでしょうか?

左上↑右上
 ← →
左下↓右下

だとすると、普通8パターンくらいしか動きませんよ。


前に回答者さんが言っていましたが、詳しく状況を書かないと詳しい回答が得られません。
詳しく開発環境から疑問している部分とソースコードを提示してください。