@kuskalogoshik

Персонаж не двигается в PyGame (Python), что не так делаю?

import pygame 
 
# инициализация Pygame 
pygame.init() 
 
# создание окна игры 
screen = pygame.display.set_mode((800, 600)) 
 
# загрузка фона 
background = pygame.image.load("background.png") 
 
# загрузка мелодии 
pygame.mixer.music.load("music.ogg") 
pygame.mixer.music.play(-1) 
 
# создание героя 
hero = pygame.image.load("hero.png") 
hero_x = 400 
hero_y = 300 
 
# основной игровой цикл 
running = True 
while running: 
    # обработка событий 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            running = False 
        elif event.type == pygame.KEYDOWN: 
            if event.key == pygame.K_UP: 
                hero_y -= 10 
            elif event.key == pygame.K_DOWN: 
                hero_y += 10 
            elif event.key == pygame.K_LEFT: 
                hero_x -= 10 
            elif event.key == pygame.K_RIGHT: 
                hero_x += 10 
 
    # отрисовка фона и героя 
    screen.blit(background, (0, 0)) 
    screen.blit(hero, (hero_x, hero_y)) 
 
    # обновление экрана 
    pygame.display.flip() 
 
# завершение Pygame 
pygame.quit()


Надо осуществить движение героя и сделать запрет на движение за пределы игрового поля. Но когда я запускаю, герой сам не двигается...
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Demiyt
Попробуйте использовать переменную key для сохранения нажатия клавиш. Пример:

key = pygame.key.get_pressed()
if key [pg.K_down]:
hero_y += 10
elif key [pg.K_up]:
hero_y -= 10
elif key [pg.K_left]:
hero_x -= 10
elif key [pg.K_right]:
hero_x += 10
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы