Почему в pygame змейка двигается не по горизонтали, а по диагонали?
Я сделал змейку по видео и у меня она двигается неправильно. Как решить проблему?
Код
import pygame
pygame.init()
width = 640
height = 480
display = pygame.display.set_mode((width, height))
pygame.display.update()
pygame.display.set_caption("Snake")
game_end = False
colors = {
"snake_head": (0, 255, 0),
"snake_tail": (0, 200, 0),
"apple": (255, 0, 0)
}
snake_pos = {
"x": width/2-5,
"y": height/2-5,
"x_change": 0,
"y_change": 0
}
snake_speed = 10
snake_size = (10, 10)
while not game_end:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_end = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_pos["x_change"] = -snake_speed
snake_pos["y_change"] = 0
elif event.key == pygame.K_RIGHT:
snake_pos["x_change"] = snake_speed
snake_pos["y_change"] = 0
elif event.key == pygame.K_UP:
snake_pos["x_change"] = 0
snake_pos["y_change"] = -snake_speed
elif event.key == pygame.K_DOWN:
snake_pos["x_change"] = 0
snake_pos["y_change"] = snake_speed
snake_pos["x"] += snake_pos["x_change"]
snake_pos["y"] += snake_pos["y_change"]
pygame.draw.rect(display, colors["snake_head"], [
snake_pos["y"],
snake_pos["y"],
snake_size[0],
snake_size[1]])
pygame.display.update()
pygame.quit()
quit()
Ответы (1 шт):
Автор решения: GameLinux
→ Ссылка
Для ограничения fps:
clock = pygame.time.Clock() - до основного цикла While,
clock.tick(12) - в конце тела цикла While
