choice_chance
2021-06-26 22:58
采纳率: 100%
浏览 85
已采纳

按理它运行完之后应该是一个pygame窗口里出现一个飞船,但却不行,为什么?

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('images/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)

上面的是飞船代码

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:
			#监视键盘和鼠标事件
			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 = AlienInvasion()
	ai.run_game()

这是主程序代码,setting.py是游戏里面设置的代码,下面的是问题

下面的是文件:

请问问题出在哪里?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 快ྂ乐ྂ至ྂ上ྂ 2021-06-27 10:36
    已采纳

    你飞船图片放哪了

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 圣光暗帝 2021-07-19 17:33

    你是用的这个吗?

    img
    再对对去,看看哪里错了。

    评论
    解决 无用
    打赏 举报
  • stong10 2021-09-14 13:52

    def init(self,ai_game):
    请问大神,这里为什么要ai_game这个参数,作用是什么

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题