1

この質問は少しばかげていると思いますが、答えが見つかりません。

私は古典的なゲームポンをやっています。そして、ボールがどの角度でも同じ速度で進むことを望みます。しかし、私の現在のアルゴリズム (x を 1 ずつ増やして y を計算する) では、y=ax+b の a が高い場合、各ピクセル間に大きなギャップがあります。どのステップを使用する必要がありますか?

4

2 に答える 2

2

デフォルトを設定しますspeedx+=speed*cos(theta)その後、とを使用できますy+=speed*sin(theta)

ヒットしたら、 を変更する必要がありthetaます。

于 2013-03-17T17:04:44.380 に答える
2

したがって、次のようなものがあります。

  newPoint
  |\
  | \
y |  \ r
  |  θ\
  |-----
     x  oldPoint

基本的に必要なのは、x ではなく r に関連する距離のステップを作成することです。

初等三角から:
cos θ = x/r
そしてsin θ = y/r

そうnewX = oldX + r * cos θ
そしてnewY = oldY + r * sin θ

の値をいじることができrます (これは基本的に移動速度になります)。

θボールの向きになります。

于 2013-03-17T17:06:14.250 に答える