Я не понимаю, почему не рисуется прямоугольник в pygame. Он отмечен знаками вопроса.
import pygame
pygame.init()
dis_width = 800
dis_height = 600
clock = pygame.time.Clock()
FPS = 60
name_game = 'Run Dino! Run'
icon_game = pygame.image.load('img/dino.png')
display = pygame.display.set_mode((dis_width, dis_height)) # размеры окна игры
pygame.display.set_caption(name_game) # название игры
pygame.display.set_icon(icon_game) # иконка игры
user_width = 60
user_height = 100
user_x = dis_width // 3
user_y = dis_height - user_height - 100
make_jump = False
jump_counter = 30
cactus_width = 20
cactus_height = 70
cactus_x = dis_width - 50
cactus_y = dis_width - cactus_height - 100
def run_game():
game = True
global make_jump
while game:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
make_jump = True
if make_jump:
jump()
if keys[pygame.K_d]:
right()
elif keys[pygame.K_a]:
left()
display.fill((128, 0, 128)) # цвет фона
pygame.draw.rect(display, (218, 165, 32), (cactus_x, cactus_y, cactus_width, cactus_height)) # !!!!!!!!!!!!!!!!!!!!!!!!!
pygame.draw.rect(display, (218, 165, 32), (user_x, user_y, user_width, user_height)) # прямоугольник (персонаж)
pygame.display.update() # обновление экрана
clock.tick(FPS) # частота обновления
def jump(): # прыжок
global user_y, make_jump, jump_counter
if jump_counter >= -30:
user_y -= jump_counter / 2.5
jump_counter -= 1
else:
jump_counter = 30
make_jump = False
def cactus():
global cactus_x
if cactus_x >= -cactus_width:
pygame.draw.rect(display, (218, 165, 32), (cactus_x, cactus_y, cactus_width, cactus_height))
cactus_x -= 4
else:
cactus_x = dis_width - 50
def right():
global user_x
if user_x == dis_width - user_width:
user_x += 0
else:
user_x += 3
def left():
global user_x
if user_x < 0:
user_x -= 0
else:
user_x -= 3
run_game() # запуск игры