как автоматически продолжать стрелять пулями из моего танка после прохождения определенного расстояния - PullRequest
0 голосов
/ 04 мая 2020

Я делаю игру-пигмея. Я хочу, чтобы пули из моего танка (двигаясь по оси 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...