擅长:python、mysql、java
<p>所以,看看它,当<code>MOUSEBUTTONDOWN</code>,你在播放器的位置创建一个新的Bullet()。然后,当你更新子弹的时候。将其<code>y</code>坐标上移3个单位。你知道吗</p>
<p>我建议给每个<code>bullet</code>一个<code>velocity</code>和<code>target</code>属性。
这将允许你“发射并忘记”每一颗子弹,而不必担心
每次手动更新。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>def __init__(self, velocity: float, target: tuple or list):
# other stuff
self.velocity = velocity
self.target = target
def update(self):
# get the angle towards the target
x_delta = self.target[0] - self.rect.x
y_delta = self.target[1] - self.rect.y
rotation = -math.atan2(y_delta, x_delta)
# move towards the target
self.rect.x += math.cos(rotation) * self.velocity
self.rect.y -= math.sin(rotation) * self.velocity
</code></pre>