私はランダムな動きで一組のボールを動かそうとしますが、速度は均一です。私のコードはボールをランダムな方向に動かしますが、速度は異なります。私はそれがrandom.uniform
関数が異なる値を与え、0に近いものは速度と時間を掛けた値が1に近いものよりも低い値を与えるからだと思います。しかし、アニメーションではスピードはボールの移動方向(dx
とdy
の値が原因の場合)。私はanout正規化を知っているが、私はrandom.uniform
正規化されたベクトルと同じ値を与えると思いますか?どのようにランダムな方向にスプライトを移動しますが、一定の速度のpython/pygameを使用しますか?
私の質問は以下のとおりです。
dx
とdy
のランダムな値は速度差の犯人ですか?- すべてのボールを同じ速度で動かす方法は何ですか?
私のコード:任意の助け
self.timer = pygame.time.Clock()
self.time_passed = self.timer.tick()
self.speed = 0.5
self.dx = random.uniform(-1, 1)
self.dy = random.uniform(-1, 1)
displacement = Vector2(
self.dx * (self.speed * self.time_passed),
self.dy * (self.speed * self.time_passed)
)
self.pos += displacement #both vector objects
ありがとう!
と思われます。なぜか、手がかりを持っていないが、感謝! –
https://en.wikipedia.org/wiki/Trigonometry –