Python游戏开发–外星人入侵游戏(一)
前文回顾: Python教程实例–if语句的使用.
在本文中,我将尝试去进行自己的第一个项目,该项目将完全参考埃里克·马瑟斯先生的著作进行编写,在此对埃里克·马瑟斯先生表示由衷的谢意。
创建游戏是趣学语言的理想方式。看别人玩你编写的游戏让你很有满足感,而编写简单的游戏有助于你明白专业级游戏是怎么编写出来的。在阅读本章的过程中,请动手输入并运行代码,以明白各个代码块对整个游戏所做的贡献,并尝试不同的值和设置,这样你将对如何改进游戏的交互性有更深入的认识
提醒
- 游戏《外星人入侵》将包含很多不同的文件,因此请在你的系统中新建一个文件夹,并
将其命名为alien_invasion。请务必将这个项目的所有文件都存储到这个文件夹中,这样
相关的import语句才能正确地工作- 做好规划后再动手编写项目很重要。规划可确保你不偏离轨道,从而提高项目成功的可能性
游戏玩法:
在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。
- 题目来源:“Python编程 从入门到实践 ,埃里克·马瑟斯”
阶段1:
安装Pygame,由于不同人使用的编译器不同,故安装方法可百度。
阶段2:
句柄框的建立,详细内容将在代码注释中解释
阶段二代码
import sys #模块sys用来退出游戏
import pygame #pygame模块,用来制作我们的游戏
def run_game():#定义函数
#初始化游戏,创建窗口句柄
pygame.init() #对背景初始化,让pygame能正常工作
screen=pygame.display.set_mode((800,600))#窗口大小设置,可自定
pygame.display.set_caption("外星人入侵")#标题定义
#开始游戏主循环
while True:
# 监视键盘和鼠标事件
for event in pygame.event.get(): #不断监测事件
if event.type==pygame.QUIT:
sys.exit() #如果检测到退出,则退出游戏
pygame.display.flip() #flip翻转,加上while循环,即不断刷新屏幕
run_game()
在这个基本的游戏结构中,最后一行调用run_game(),这将初始化游戏并开始主循环。
如果此时运行这些代码,你将看到一个空的Pygame窗口。
阶段3-背景框颜色的设定:
如果感觉黑色的背景色过于难看,我们可在阶段二的代码中间加入背景色的设置,可更改其为我们喜欢的颜色。python中颜色为RGB色来规定,可百度颜色得其对应的RGB值。我个人决定用粉色来作为背景框pink, #FFC0CB, RGB是255,192,203
阶段3 代码
import sys #模块sys用来退出游戏
import pygame #pygame模块,用来制作我们的游戏
def run_game():#定义函数
#初始化游戏,创建窗口句柄
pygame.init() #对背景初始化,让pygame能正常工作
screen=pygame.display.set_mode((800,600))#窗口大小设置,可自定
pygame.display.set_caption("外星人入侵")#标题定义
bg_color = (255,192,203)#设置背景颜色为粉色 bg background
#开始游戏主循环
while True:
# 监视键盘和鼠标事件
for event in pygame.event.get(): #不断监测事件
if event.type==pygame.QUIT:
sys.exit() #如果检测到退出,则退出游戏
pygame.display.flip() #flip翻转,加上while循环,即不断刷新屏幕
screen.fill(bg_color) #每次循环都填充颜色
run_game()
结果展示
布置-课下作业
尝试敲出代码,而不是复制所得,并对代码做一些微调
- 任务要求
- 窗口的大小进行调整,尝试不同的大小运行
- 背景颜色的改变,绿色,蓝色……
- 扩展:自学如何添加一个按钮在界面中,要求单击按钮关闭程序
附录: 暂无
下期预告: Python游戏开发–外星人入侵游戏(二).
暂且为空白。