Окно не появится при запуске игры - PullRequest
0 голосов
/ 29 января 2019

В настоящее время я пытаюсь научиться делать игру в стиле roguelike в свободное время.что-то происходило всякий раз, когда я пытался вызвать программу, чтобы создать окно между ними.Я смотрел учебник (https://www.youtube.com/playlist?list=PLKUel_nHsTQ1yX7tQxR_SQRdcOFyXfNAb), и я не знаю, что случилось в части 3, потому что код запускал окно в части 2. Это не дает мне ошибки, он просто не запускает окно, есликто-то знает, что случилось, это будет здорово, спасибо.

Я попытался повторно просмотреть учебники и посмотреть, пропустил ли я что-то напечатанное или удалил, но ничего не происходит. main_game.py

import libtcodpy as libtcod
import pygame


#GAME FILES
import constance

## pseudo programming ##


class struct_tiles:
    def __init__(self, block_path):
        self.block_path = block_path


def map_create():
    new_map = [[ struct_tiles(False) for y in range(0, constance.MAP_HEIGHT)] for x in range(0, constance.MAP_WIDTH)]
    new_map[10][10].block_path = True
    new_map[10][15].block_path = True

    return new_map


def draw_game():

    ## CLEAR SURFACE
    SURFACE_MAIN.fill(constance.COLOR_DEFAULT_BACKGROUND)

    ## DRAW MAP
    draw_map(GAME_MAP)
    ## DRAW PLAYER
    SURFACE_MAIN.blit(constance.S_PLAYER, ( 200, 200 ))
    ## UPDATE DISPLAY
    pygame.display.flip()

def draw_map(map_to_draw):

    for x in range(0, constance.MAP_WIDTH):
    for y in range(0, constance.MAP_HEIGHT):
        if map_to_draw[x][y].block_path == True:
            #draw wall
            SURFACE_MAIN.blit(constance.S_WALL, ( x*constance.CELL_WIDTH, y*constance.CELL_HEIGHT))
        else:
            #draw floor
            SURFACE_MAIN.blit(constance.S_FLOOR, ( x*constance.CELL_WIDTH, y*constance.CELL_HEIGHT))





def game_main_loop():
    ''' IN THIS FUNCTION WE LOOP THE MAIN GAME'''

    game_quit = False

    while not game_quit:
        #TODO get player input
        events_list = pygame.event.get()

        #PROCESS PLAYER INPUT
        for event in events_list:
            if event.type == pygame.QUIT:
                game_quit = True
        #DRAW THE GAME
        draw_game()

    #QUIT GAME
    pygame.quit()
    exit()

def game_initialize():
    '''THIS FUNCTION INITIALIZES THE MAIN WINDOW AND PYGAME'''

    global SURFACE_MAIN, GAME_MAP

    #initialize pygame
    pygame.init()

    SURFACE_MAIN = pygame.display.set_mode( (constance.GAME_WIDTH,constance.GAME_HEIGHT) )

    GAME_MAP = map_create()



if __name__ == '__main_game__':
    game_initialize()
    game_main_loop()

    ##constance.py##
    import pygame

pygame.init()
## GAME SIZES
GAME_WIDTH = 800
GAME_HEIGHT = 600
CELL_WIDTH = 32
CELL_HEIGHT = 32
## COLOR DEF
COLOR_BLACK = (0, 0, 0)
COLOR_WHITE = (255, 255, 255)
COLOR_GREY = (100, 100, 100)
## GAME COLORS
COLOR_DEFAULT_BACKGROUND = COLOR_GREY
## SPRITES
S_PLAYER = pygame.image.load("data/cobra1.png")
S_WALL = pygame.image.load("data/wall1.png")
S_FLOOR = pygame.image.load("data/floor1.png")
## MAP VARS
MAP_WIDTH = 30
MAP_HEIGHT = 30
...