[摘要]pygame开发PC端微信打飞机游戏一、项目简介1. 介绍本项目类似曾经火爆的微信打飞机游戏。游戏将使用Python语言开发,主要用到pygame的API。游戏最终将会以python源文件game....
pygame开发PC端微信打飞机游戏
一、项目简介
1. 介绍
本项目类似曾经火爆的微信打飞机游戏。游戏将使用Python语言开发,主要用到pygame的API。游戏最终将会以python源文件game.py形式完成,只需要运行python game.py就可以进入游戏。
游戏最终效果截图如下:
2. 知识点
本实验中将介绍在Linux桌面环境下使用Python及pygame快速开发小游戏的方式。可以通过这个游戏入门pygame游戏开发。
3. 参考文档
代码参考 Kill-Console写的PythonShootGame
文档参考 pygame文档
4. 安装依赖包
(以下内容需要在实验楼官方网站实现,不需要的也可以直接跳过)
需要安装pygame库来支持本实验所需的代码运行。
在实验环境中打开Xfce终端,并输入以下命令来安装pygame,会提示输入shiyanlou的密码,密码也是shiyanlou:
$ sudo apt-get update$ sudo apt-get install python-pygame
二、技术设计
1. 游戏角色
本游戏中所需的角色包括玩家飞机、敌机及***。用户可以通过键盘移动玩家飞机在屏幕上的位置来打击不同位置的敌机。因此设计以下Player,Enemy和Bullet三个类对应三种游戏角色。
对于Player,需要的操作有射击和移动两种,移动又分为上下左右4种情况。
对于Enemy,则比较简单,只需要移动即可,从屏幕上方出现并移动到屏幕下方。
对于Bullet,与飞机相同,仅需要以一定速度移动即可。
2. 游戏功能
相信玩过微信打飞机的朋友都熟悉,这里将游戏做了简化。飞机的速度固定,***的速度固定,基本操作是移动玩家飞机,目标飞机随机从屏幕上方出现并匀速落到下方,***从玩家飞机发出,碰到目标飞机会击毁,如果目标飞机碰到玩家飞机,则Game Over并显示分数。
三、代码实现
1. 界面显示
代码实现所需的resources图片文件都可以通过下述命令获取:
$git clone https://github.com/shiyanlou/PythonShootGame.git
详细步骤
初始化pygame
设置游戏界面大小、背景图片及标题
游戏主循环内需要处理游戏界面的初始化、更新及退出
显示玩家飞机(代码中使用的resources/image/shoot.png图里包含多种飞机,只需要使用pygame.image的subsurface API根据位置截取shoot.png中所需的图片)
示例代码
#1. 初始化pygame
pygame.init()
#2. 设置游戏界面大小、背景图片及标题
# 游戏界面像素大小
screen = pygame.display.set_mode((480, 800))
# 游戏界面标题
pygame.display.set_caption('飞机大战')
# 背景图
background = pygame.image.load('resources/image/background.png').convert()
# Game Over的背景图
game_over = pygame.image.load('resources/image/gameover.png')
# 飞机图片
plane_img = pygame.image.load('resources/image/shoot.png')
# 截取玩家飞机图片
player = plane_img.subsurface(pygame.Rect(0, 99, 102, 126))
#3. 游戏主循环内需要处理游戏界面的初始化、更新及退出
while True:
# 初始化游戏屏幕
screen.fill(0)
screen.blit(background, (0, 0))
# 显示玩家飞机在位置[200,600]
screen.blit(player, [200, 600])
# 更新游戏屏幕
pygame.display.update()
# 游戏退出事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
2. 事件处理
在主循环中处理键盘输入的事件(上下左右按键操作),增加游戏操作交互(玩家飞机的上下左右移动)。
详细步骤