前提 安装好 pygame 在cmd 中 pip install pygame 即可

一、窗口构建

import sys
import pygame

def run_game():
    # 初始化并创建一个屏幕对象
    pygame.init()
    screen = pygame.display.set_mode((1200,800))
    pygame.display.set_caption("Alien Invasion")

    # 游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()

二、 游戏设置

import pygame

class Ship():

    def __init__(self,screen):
        """初始化飞船的起始位置"""
        self.screen = screen

        #加载飞船图像并获取其外接矩形
        self.image = pygame.image.load('images/ship.bmp')
        self.rect = self.image.get_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)

修改alien_invasion.py

--snip--
import pygame
from settings import Settings
	def run_game():
	# 初始化pygame、设置和屏幕对象
		pygame.init()
		ai_settings = Settings()
		screen = pygame.display.set_mode(
				(ai_settings.screen_width, ai_settings.screen_height))
		pygame.display.set_caption("Alien Invasion")

		# 开始游戏主循环
		while True:
		--snip--
		
		# 每次循环时都重绘屏幕
		screen.fill(ai_settings.bg_color)
		# 让最近绘制的屏幕可见
		pygame.display.flip()

run_game()

三、添加飞船图像
在http://www.ituring.com.cn/book/1861中右边下载源代码文件解压后找到chapter12文件夹 中有飞船图像
pygame 外星人入侵 1 加载飞船
为什么是由bmp 图片 ?
在游戏中几乎可以使用任何类型的图像文件,但使用位图(.bmp)文件最为简单,因为Pygame默认加载位图。

import pygame

class Ship():

    def __init__(self,screen):
        """初始化飞船的起始位置"""
        self.screen = screen

        #加载飞船图像并获取其外接矩形
        self.image = pygame.image.load('images/ship.bmp')
        self.rect = self.image.get_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)

四、添加飞船图像

--snip--
from ship import Ship

def run_game():
   --snip--
    pygame.display.set_caption("Alien Invasion")

    # 创建一搜飞船
    ship = Ship(screen)

    # 游戏的主循环
    while True:
        --snip--
        # 每次循环时都重绘屏幕
        screen.fill(ai_settings.bg_color)
        ship.blitme()

        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()

实现效果如下:
pygame 外星人入侵 1 加载飞船

相关文章: