В основном я пытаюсь добавить некоторые границы в небольшую игру, которую создаю, у меня есть спрайт, который может перемещаться только слева направо, и я пытаюсь предотвратить его перемещение за пределы окна игры, если спрайт достигает края, который они не может идти дальше и может пойти в противоположном направлении. Мой текущий код:
tankSprite = pygame.image.load('Sprites/Tank.png') #fixed apostrophe
tankSprite_width = 28
def tank(x,y):
gameWindow.blit(tankSprite, (x,y))
def game_loop():
x = (display_width * 0.45)
y = (display_height * 0.8)
x_change = 0
gameExit = False
gameMove = True
while not gameExit and gameMove == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = False
if event.type ==pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5
if event.key == pygame.K_RIGHT:
x_change = 5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFTor event.key == pygame.K_RIGHT:
x_change = 0
x += x_change
gameWindow.fill(white)
tank(x,y)
if x > display_width - tankSprite_width or x < 0:
gameMove = False
elif x < display_width - tankSprite_width or x > 0:
gameMove = True
pygame.display.update()
clock.tick(60)
game_loop()
pygame.quit()
quit()
Мой текущий код частично работает, когда спрайт достигает края, решение закрывается, а не позволяет мне вернуться. Если я удалю:
pygame.quit()
quit()
Затем спрайт просто останавливается, и я не могу его вернуть. Некоторое время назад в одном из проектов я использовал что-то вроде:
if event.key == pygame.K_LEFT and sprite.x < 590:
sprite.x += 5
Приведенный выше код работал хорошо, насколько я помню, но сейчас я не могу понять его для своего проекта, может ли кто-нибудь мне помочь, пожалуйста? Я хочу сделать так, чтобы спрайт не мог пройти за границу экрана, когда игрок достигает границы, он либо остается, либо возвращается в противоположном направлении. Спасибо
p.s. Извините за хитрое форматирование