在pycharm中运行pygame,不报错但是黑屏。哪位大佬可以帮忙?代码如下:

import sys

import pygame
from settings import Settings
from ship import Ship

class AlienInvasion:

def __init__(self):
pygame.init()
self.settings=Settings()

self.screen=pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))

self.screen=pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")

self.ship=Ship(self)

self.bg_color=(230, 230, 230)

def run_game(self):
self.screen.fill(self.settings.bg_color)
self.ship.blitme()
while True:
self._check_events()
self._update_screen()
def _check_events(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
self.ship.rect.x+=1

def _update_screen(self):
self.screen.fill(self.bg_color)

if __name__ == '__main__':
ai = AlienInvasion()
ai.run_game()

黑屏可能是因为更新屏幕的方法有问题。代码中的两行设置屏幕大小的代码重复了,并且最后一行调用的是 self.bg_color 而不是 self.settings.bg_color,这也可能是导致黑屏的原因。请尝试更改代码:
import sys
import pygame
from settings import Settings
from ship import Ship
class AlienInvasion:
def __init__(self):
pygame.init()
self.settings=Settings()
self.screen=pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))
pygame.display.set_caption("Alien Invasion")
self.ship=Ship(self)
def run_game(self):
while True:
self._check_events()
self._update_screen()

def _check_events(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
self.ship.rect.x+=1

def _update_screen(self):
self.screen.fill(self.settings.bg_color)
self.ship.blitme()
pygame.display.flip()
if __name__ == '__main__':
ai = AlienInvasion()
ai.run_game()
温馨提示:答案为网友推荐,仅供参考
相似回答