PyGame:什么都没发生

时间:2014-01-15 20:29:08

标签: python python-2.7 pygame

我正在玩pygame游戏,当我去游戏时,没有任何事情发生。一个黑盒子出现但什么也没做,没有显示器等。另外,让我烦恼的是Python Shell根本没有显示任何错误。以下是主文件的代码:

import pygame
import sys
import random
import pygame.mixer
import math
from constants import *
from player import *

class Game():

    def __init__(self):

        #States (Not country states)
        self.game_state = STATE_INGAME

        #State variables
        #self.stateMenu = 

        #Screen
        size = SCREEN_WIDTH, SCREEN_HEIGHT
        self.screen = pygame.display.set_mode(size)
        pygame.display.set_caption('WIP')
        self.screen_rect = self.screen.get_rect()

        # Player
        self.player = Player(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2)

    def run(self):

        clock = pygame.time.Clock()

        if self.game_state == STATE_INGAME:

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()

            self.player_move()
            self.player.update()
            self.player.render(self.screen)

        clock.tick(100)

    def player_move(self):

        # move player and check for collision at the same time
        self.player.rect.x += self.player.velX
        self.player.rect.y += self.player.velY

Game().run()

我已多次检查播放器文件,并且根本没有错误。好吧,不是我能看到的。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您需要while-loop

def run(self):

    clock = pygame.time.Clock()
    while True:
        if self.game_state == STATE_INGAME:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()
            self.player_move()
            self.player.update()
            self.player.render(self.screen)

        clock.tick(100)