Я бы порекомендовал использовать классы (особенно для игр) и разделить ваш код на более мелкие функции.
При создании игры каждый класс должен представлять некоторый тип объекта в игре, например, корабль или пулю здесь. Использование классов должно помочь с этой проблемой нескольких пуль вызывает сбои.
Разбиение на более мелкие функции значительно облегчит чтение и обновление кода по мере его роста. Старайтесь как можно больше придерживаться принципа одиночной ответственности .
Как вы могли бы реализовать съемку с учетом этих вещей:
bullets = []
class Bullet:
def __init__(self, position, speed):
self.position = position
self.speed = speed
def move(self):
self.position[1] += self.speed
class Ship:
def __init__(self, position, bullet_speed):
self.position = position
self.bullet_speed = bullet_speed
def shoot(self):
new_bullet = Bullet(self.position, self.bullet_speed)
bullets.append(new_bullet)
Где position
переменные имеют вид [x,y]
. Затем, чтобы переместить ваши пули вперед, поместите эту строку где-нибудь в основной игровой цикл:
for bullet in bullets:
bullet.move()
И переберите все маркеры и нарисуйте каждую на экране, чтобы отобразить их.
Это не самый подробный пример, но, надеюсь, этого достаточно, чтобы вы пошли в правильном направлении.