この質問は少しばかげていると思いますが、答えが見つかりません。
私は古典的なゲームポンをやっています。そして、ボールがどの角度でも同じ速度で進むことを望みます。しかし、私の現在のアルゴリズム (x を 1 ずつ増やして y を計算する) では、y=ax+b の a が高い場合、各ピクセル間に大きなギャップがあります。どのステップを使用する必要がありますか?
この質問は少しばかげていると思いますが、答えが見つかりません。
私は古典的なゲームポンをやっています。そして、ボールがどの角度でも同じ速度で進むことを望みます。しかし、私の現在のアルゴリズム (x を 1 ずつ増やして y を計算する) では、y=ax+b の a が高い場合、各ピクセル間に大きなギャップがあります。どのステップを使用する必要がありますか?
デフォルトを設定しますspeed
。x+=speed*cos(theta)
その後、とを使用できますy+=speed*sin(theta)
。
ヒットしたら、 を変更する必要がありtheta
ます。
したがって、次のようなものがあります。
newPoint
|\
| \
y | \ r
| θ\
|-----
x oldPoint
基本的に必要なのは、x ではなく r に関連する距離のステップを作成することです。
初等三角から:
cos θ = x/r
そしてsin θ = y/r
そうnewX = oldX + r * cos θ
そしてnewY = oldY + r * sin θ
の値をいじることができr
ます (これは基本的に移動速度になります)。
θ
ボールの向きになります。