Я делаю игру-пигмея. Я хочу, чтобы пули из моего танка (двигаясь по оси X) продолжали стрелять. После того, как пуля пройдет 150 пикселей, она должна быть сброшена в новое положение танка. У меня есть кнопка в нижней части экрана, которая, когда вы щелкаете, а затем нажимаете на экран, приводит к тому, что там появляется бак, и бак начинает двигаться. Максимум 10 танков могут быть сброшены за один раз.
Мне нужна помощь для сброса положения пули в новое положение танка и продолжения автоматического запуска пуль.
Это моя функция, чтобы получить позиция для вставки танка
tank_pos_list = []
bullet_list = []
def spawn_tank():
global tank_pos_list
global bullet_list
qx, qy = pygame.mouse.get_pos()
tankxy = [(qx - 35), (qy - 35)]
bulletxy = [(qx - 35), (qy - 35)]
tank_pos_list.append(tankxy)
bullet_list.append(bulletxy)
Это моя функция для перемещения танка и, возможно, пули. Код в /// - это та часть, где я пытался что-то сделать, и она определенно неверна для сброса маркера
travelled = 0
def movement():
global tank_pos_list
global bullet_list
global tank_surf
global bullet
global travelled
for tank_pos in tank_pos_list:
screen.blit(tank_surf, (tank_pos[0], tank_pos[1]))
tank_pos[0] += 0.2
for j in range(len(bullet_list)):
newx = (bullet_list[j][0] + 35)
screen.blit(bullet, (newx, (bullet_list[j][1] + 34)))
bullet_list[j][0] += 1
travelled += 1
///if travelled >= 150:
for tank_pos in tank_pos_list:
bullet_list[j][0] = tank_pos[0]///
Это моя основная функция
spawner = False
def main():
global spawner
global tank_pos_list
global bullet_list
run = True
fps = 90
tanks = Button((59, 255, 140), 100, 610, 80, 80, text="Tanks")
tanks_over = Button((0, 255, 0), 100, 610, 80, 80, text="Tanks")
towers = Button((59, 255, 140), 510, 610, 150, 80, text="Towers")
towers_over = Button((0, 255, 0), 510, 610, 150, 80, text="Towers")
blue = pygame.image.load("blue_base.png")
red = pygame.image.load("red_base.png")
spawner = False
while run:
mx, my = pygame.mouse.get_pos()
pos = (mx, my)
x = pos[0]
y = pos[1]
mouse_pos = (mx, my)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.MOUSEBUTTONDOWN:
if spawner and my < 550 and mx < 500:
spawn_tank()
spawner = False
if tanks.isOver(mouse_pos):
spawner = True
screen.fill((50, 168, 66))
if len(tank_pos_list) >= 11:
tank_pos_list.pop(-1)
bullet_list.pop(-1)
pygame.draw.rect(screen, (201, 142, 47), (0, 600, 1000, 100))
pygame.draw.line(screen, (0, 0, 0), (500, 0), (500, 600))
if tanks.isOver(mouse_pos):
tanks_over.draw(screen)
else:
tanks.draw(screen)
if towers.isOver(mouse_pos):
towers_over.draw(screen)
else:
towers.draw(screen)
screen.blit(blue, (0, 100))
screen.blit(red, (800, 100))
movement()
pygame.display.flip()
clock.tick(fps)