Как добавить спрайт, если не нажата ни одна клавиша? - PullRequest
1 голос
/ 18 марта 2020

Как добавить спрайт, если не нажата ни одна клавиша? У меня есть все четыре направления, когда нажаты клавиши со стрелками, но когда они отпущены, спрайт идет, но не могу придумать, как его добавить. Я попытался добавить операторы else и другие вещи. Лучше всего я получил стоящий впереди спрайт, находящийся под остальными, но, кажется, не могу получить его до go, когда нажата одна из клавиш со стрелками, и вернуться, когда они вызваны.

Любая помощь приветствуется. Заранее спасибо. мой код:

import pygame
pygame.init()

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (200, 0, 0)
GREEN = (0, 200, 0)
BLUE = (0, 0, 200)

# background
background = pygame.image.load('Playing Game state 2.png')

# character
standingforward = pygame.image.load('standingforward.png')
standingdownward = pygame.image.load('standingdownwards.png')
standingleft = pygame.image.load('standingleft.png')
standingright = pygame.image.load('standingright.png')

# player variables
x = 375
y = 525
w = 50
h = 50
vel = 0.5
screenWidth = 800
screenHeight = 575

screen = pygame.display.set_mode((screenWidth, screenHeight))
pygame.display.set_caption("FROGGER")
sprite = pygame.draw.rect

running = True
while running:

    # sprites
    screen.blit(background, (0, 0))
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        screen.blit(standingleft, (x, y))
    if keys[pygame.K_RIGHT]:
        screen.blit(standingright, (x, y))
    if keys[pygame.K_DOWN]:
        screen.blit(standingdownward, (x, y))
    if keys[pygame.K_UP]:
        screen.blit(standingforward, (x, y))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    pygame.display.flip()

    # controls
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        x -= vel
        if x < 0:
            x = 0
    if keys[pygame.K_RIGHT]:
        x += vel
        if x > screenWidth-w:
            x = screenWidth-w
    if keys[pygame.K_UP]:
        y -= vel
        if y < 0:
            y = 0

    if keys[pygame.K_DOWN]:
        y += vel
        if y > screenHeight-h:
            y = screenHeight-h


pygame.quit()
...