почему не работают команды модуля pygame (K_UP, K_DOWN,K_LEFT)

Victor6785

Новичок
Пользователь
Сен 26, 2020
1
0
1
интересует эта строка:

for event in pygame.event.get():
if event.type == pygame.QUIT:
print('exit')
pygame.quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
d_row = -1
d_col = 0
elif event.key == pygame.K_DOWN:
d_row = 1
d_col = 0
elif event.key == pygame.K_LEFT:
d_row = 0
d_col = -1
elif event.key == pygame.K_RIGHT:
d_row = 0
d_col = 1

весь код:

import pygame


HEADER_COLOR = (0, 204, 135) # цвет заголовка
block_size = 20 # размер клетки игрового поля
blocks = 20 # количкство клеток на игровом поле
frame_color = (0, 255, 204) # цвет фона
WHITE = (255, 255, 255) # белый цвет
FIRST = (0, 230, 255) # цвет клетки матрицы
SECOND = (100, 210, 230) # цвет второй клетки матрицы
Margin = 2 # отступ между клетками матрицы
Header_Margin = 70 # размер заголовка
SNAKE_COLOR = (0, 162, 40) # цвет змейки
size = [block_size * (blocks + 2) + Margin * blocks,
Header_Margin + block_size * (blocks + 2) + Margin * blocks] # размер экрана
screen = pygame.display.set_mode(size) # установка экрана
pygame.display.set_caption('Змейка') # установка названия заголовка окна программы
timer = pygame.time.Clock() # установка времени
HARDer = 2 # сложность игры

class SnakeBlock: # класс хранящий объект змейка
def __init__(self, x, y):
self.x = x
self.y = y


def drow_block(color, row, column): # рисование матрицы
pygame.draw.rect(screen, color, (block_size + column * block_size + Margin * (column + 1),
Header_Margin + block_size + row * block_size + Margin * (row + 1),
block_size,
block_size))


snake_block = [SnakeBlock(9, 0)] # ячейка хранения координат змейки
d_row = 0
d_col = 1
while True:

for event in pygame.event.get():
if event.type == pygame.QUIT:
print('exit')
pygame.quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP():
d_row = -1
d_col = 0
elif event.key == pygame.K_DOWN:
d_row = 1
d_col = 0
elif event.key == pygame.K_LEFT:
d_row = 0
d_col = -1
elif event.key == pygame.K_RIGHT:
d_row = 0
d_col = 1


screen.fill(frame_color)
pygame.draw.rect(screen, HEADER_COLOR, [0, 0, size[0], Header_Margin])

for row in range(blocks):
for column in range(blocks):
if (row + column) % 2 == 0:
color = FIRST
else:
color = SECOND
drow_block(color, row, column)

for block in snake_block: # распаковка значений координат змейки и её рисовка
drow_block(SNAKE_COLOR, block.x, block.y)
block.x += d_row
block.y += d_col

pygame.display.flip()
timer.tick(HARDer)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Код вставляйте с помощью ... -> код -> python и прочитайте эту тему.
 

Форум IT Специалистов