12.武装飞船(设置背景和添加飞船图像)

alien_invasion.py


#我们使用模块sys来退出游戏
import sys
import pygame

#调用模块settings
from settings import Settings
#调用模块ship
from ship import Ship

def run_game():
	#初始化游戏并且创建一个屏幕对象
	pygame.init()
	#创建一个Settings的实例
	ai_settings=Settings()
	#调用pygame.display.set_mode()来创建一个名叫screen的显示窗口
	screen=pygame.display.set_mode(
		(ai_settings.screen_width,ai_settings.screen_height))
	#设置标题为Alien Invasion
	pygame.display.set_caption("Alien Invasion")
	
	#创建一艘飞船
	ship=Ship(screen)
	
	#开始游戏的主循环
	while True:
		#使用方法ppygame.event.get()来检测所有的鼠标和键盘事件
		for event in pygame.event.get():
			#一旦检测到pygame.QUIT事件,调用sys.exit()来退出
			if event.type == pygame.QUIT:
				sys.exit()
				
		#让每次循环都重新绘制屏幕
		screen.fill(ai_settings.bg_color)
		#确保飞船出现在背景前面
		ship.blitme()
		
		#让最近绘制的屏幕可见,不断更新屏幕显示元素新的位置
		pygame.display.flip()

run_game()

settings.py


class Settings():
	#储存游戏的所有设置的类
	
	def __init__(self):
		#初始化游戏的设置
		self.screen_width=800
		self.screen_height=600
		self.bg_color=(230,230,230)

ship.py

import pygame

class Ship():
	
	def __init__(self,screen):
	#初始化飞船并且设置它的初始位置
		self.screen=screen
		
		#加载飞船图像并获取其外接矩形
		self.image=pygame.image.load('images/ship.bmp')
        #使用get_rect()来获取属性rect(像矩形一样处理游戏元素)
		self.rect=self.image.get_rect()
        #把表示屏幕的矩形储存在self.screen_rect中
		self.screen_rect=screen.get_rect()
		
		#将每艘飞船放到屏幕底部中央
		self.rect.centerx=self.screen_rect.centerx
		self.rect.bottom=self.screen_rect.bottom
		
	def blitme(self):
		#在指定位置绘制飞船
		self.screen.blit(self.image,self.rect)
	

猜你喜欢

转载自blog.csdn.net/why_cant_i_change/article/details/81838840