Черный экран, нету игрока и enemies, почему не выводит?

Рейтинг: 0Ответов: 1Опубликовано: 04.06.2023
import random
import pygame
from pygame.constants import QUIT, K_DOWN, K_UP, K_LEFT, K_RIGHT

pygame.init()

HEIGHT = 800
WIDTH = 1200

COLOR_WHITE = (255, 255, 255)
COLOR_BLACK = (0, 0, 0)
COLOR_BLUE = (0, 0, 255)

main_display = pygame.display.set_mode((WIDTH, HEIGHT))

player_size = (30, 30)
player = pygame.Surface(player_size)
player.fill(COLOR_WHITE)
player_rect = player.get_rect()
player_move_down = [0, 1]
player_move_right = [1, 0]


def create_enemy():
    enemy_size = (40, 40)
    enemy = pygame.Surface(enemy_size)
    enemy.fill(COLOR_BLUE)
    enemy_rect = pygame.Rect(WIDTH, 100, *enemy_size)
    enemy_move = [-1, 0]
    return [enemy, enemy_rect, enemy_move]


CREATE_ENEMY = pygame.USEREVENT + 1 

pygame.time.set_timer(CREATE_ENEMY, 1500)

enemies = []
playing = True

while playing:
    for event in pygame.event.get():
        if event.type == QUIT:
            playing = False
        if event.type == CREATE_ENEMY:
            enemies.append(create_enemy())
    # Clear the screen
    main_display.fill(COLOR_BLACK)
    keys = pygame.key.get_pressed()
    if keys[K_DOWN] and player_rect.bottom < HEIGHT : 
        player_rect = player_rect.move(player_move_down)
    if keys[K_RIGHT] and player_rect.right < WIDTH:
        player_rect = player_rect.move(player_move_right)
    
   for enemy in enemies:
       enemy[1] = enemy[1].move(enemy[2])
       main_display.blit(enemy[0], enemy[1])
       #enemy_rect = enemy_rect.move(enemy_move)
   print(player_rect.bottom)
   # Update player position
   # player_rect = player_rect.move(player_speed)
   # Draw the player
   main_display.blit(player, player_rect)
   #main_display.blit(enemy, enemy_rect)
   print(len(enemies))
   # Update the display
   pygame.display.flip()

pygame.quit()

Ответы

▲ 0

Так всё работает:

import random
import pygame
from pygame.constants import QUIT, K_DOWN, K_UP, K_LEFT, K_RIGHT

pygame.init()

HEIGHT = 800
WIDTH = 1200

COLOR_WHITE = (255, 255, 255)
COLOR_BLACK = (0, 0, 0)
COLOR_BLUE = (0, 0, 255)

main_display = pygame.display.set_mode((WIDTH, HEIGHT))

player_size = (30, 30)
player = pygame.Surface(player_size)
player.fill(COLOR_WHITE)
player_rect = player.get_rect()
player_move_down = [0, 1]
player_move_right = [1, 0]


def create_enemy():
    enemy_size = (40, 40)
    enemy = pygame.Surface(enemy_size)
    enemy.fill(COLOR_BLUE)
    enemy_rect = pygame.Rect(WIDTH, 100, *enemy_size)
    enemy_move = [-1, 0]
    return [enemy, enemy_rect, enemy_move]


CREATE_ENEMY = pygame.USEREVENT + 1

pygame.time.set_timer(CREATE_ENEMY, 1500)

enemies = []
playing = True

while playing:
    for event in pygame.event.get():
        if event.type == QUIT:
            playing = False
        if event.type == CREATE_ENEMY:
            enemies.append(create_enemy())
    # Clear the screen
    main_display.fill(COLOR_BLACK)
    keys = pygame.key.get_pressed()
    if keys[K_DOWN] and player_rect.bottom < HEIGHT:
        player_rect = player_rect.move(player_move_down)
    if keys[K_RIGHT] and player_rect.right < WIDTH:
        player_rect = player_rect.move(player_move_right)

    for enemy in enemies:
        enemy[1] = enemy[1].move(enemy[2])
        main_display.blit(enemy[0], enemy[1])
        # enemy_rect = enemy_rect.move(enemy_move)
    print(player_rect.bottom)
    # Update player position
    # player_rect = player_rect.move(player_speed)
    # Draw the player
    main_display.blit(player, player_rect)
    # main_display.blit(enemy, enemy_rect)
    print(len(enemies))
    # Update the display
    pygame.display.flip()

pygame.quit()