GGB 2024-04-25 21:00 采纳率: 75%
浏览 15
已结题

vs中pygame窗口不显示

在vs中运行pygame 没有出现应该出现的窗口

img

这是主文件中的代码

import sys
import pygame
from setting import Settings
from ship import Ship
class AlineInvasion:
    #管理游戏资源和行为的类
    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):
        #开始游戏的主循环
        while True:
        #监视键盘和鼠标事件
            for event in pygame.event.get():
                if event.type == pygame.quit:
                    sys.exit
            #每次循环时都重绘屏幕
            self.screen.fill(self.settings.bg_color)
            self.screen.fill(self.bg_color)
            self.ship.blitme()
            #让最近绘制的屏幕可见
            pygame.display.flip()
if __name__ == '_main_':
    #创建开始游戏实例并与运行游戏
    ai = AlineInvasion()
    ai.run_game 

这分别是导入的两个类的代码
第一个是ship类

import pygame
class Ship:
    #管理飞船的类
    def __init__(self,ai_game):
        self.screen = ai_game.screen
        self.screen_rect = ai_game.screen.get_rect
        #加载飞船图像斌获取起外接矩形
        self.image = pygame.image.load('imagese/ship.bmp')
        self.rect = self.image.get_rect()
        #对于每艘新飞船,都将其放在屏幕底部的中央
        self.rect.midbottom = self.screen_rect.midbottom
    def blitme(self):
        self.screen.blit(self.image,self.rect)  

第二个是存储游戏中设置的类

class Settings:
    #存储游戏《外星人入侵》中所有的设置的类
    def __init__(self):
        #初始化游戏的设置
        #屏幕设置
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230,230,230)

在vs中也没报错就是不出现窗口

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-25 21:11
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析:
    1. 在AlineInvasion类的__init__方法中使用了pygame.display.set_mode方法创建了游戏窗口,但是使用了错误的方法名pygame.display.set.mode,应该是pygame.display.set_mode。
    2. 在AlineInvasion类的__init__方法中,self.bg_color(230,230,230)这行代码应该是self.bg_color = (230,230,230),即将颜色值赋值给类属性bg_color。
    3. 在AlineInvasion类的run_game方法中,判断event.type是否等于pygame.quit时,应该是pygame.QUIT,即事件类型常量全部大写。 代码修改如下: import sys import pygame from setting import Settings from ship import Ship class AlineInvasion:

      管理游戏资源和行为的类

      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) self.bg_color = (230, 230, 230) def run_game(self): # 开始游戏的主循环 while True: # 监视键盘和鼠标事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit # 每次循环时都重绘屏幕 self.screen.fill(self.settings.bg_color) self.ship.blitme() # 让最近绘制的屏幕可见 pygame.display.flip() if name == 'main':

      创建开始游戏实例并与运行游戏

      ai = AlineInvasion() ai.run_game()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 4月25日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见