python 之路200行Python代码写了个打飞机游戏

本文介绍了一个使用Python和Pygame编写的打飞机游戏,通过200行代码实现。游戏包括配置音乐、初始化背景、飞机移动、碰撞检测等功能。文章详细阐述了项目的结构、配置文件、代码实现步骤以及最终成果,适合初学者学习Python游戏开发。
摘要由CSDN通过智能技术生成

先看一下项目结构

\

“”"

PlayPlane/

|-- bin/

| |-- main.py 程序运行主体程序

|-- config/

| |-- settings.py 程序配置(例如: 游戏背景音乐的加载等)

|-- material 程序素材放置(打飞机游戏素材放置)

|-- …

|-- src/ 程序主体模块存放

| |-- init.py

| |-- bullet.py 我方飞机发射子弹实现代码存放

| |-- enemy.py 敌方飞机实现代码存放

| |-- plane.py 我方飞机实现代码存放

|-- manage.py 程序启动文件

|-- README.md

“”"

再晒下项目成果图

python 之路200行Python代码写了个打飞机游戏

实现步骤

一、首先在 config/settings.py 中进行以下功能的实现

  • 游戏初始化
  • 游戏混音器初始化
  • 背景音乐初始化
  • 我方飞机挂了音乐
  • 敌方飞机挂了音乐
  • 子弹发射音乐
  • View Code?

#! /usr/bin/env python

-- coding: utf-8 --

importpygame

pygame.init() # 游戏初始化

pygame.mixer.init() # 混音器初始化

游戏背景音乐

pygame.mixer.music.load(“material/sound/game_music.wav”)

pygame.mixer.music.set_volume(0.2)

子弹发射音乐

bullet_sound =pygame.mixer.Sound(“material/sound/bullet.wav”)

bullet_sound.set_volume(0.2)

我方飞机挂了的音乐

me_down_sound =pygame.mixer.Sound(“material/sound/game_over.wav”)

me_down_sound.set_volume(0.2)

敌方飞机挂了的音乐

enemy1_down_sound =pygame.mixer.Sound(“material/sound/enemy1_down.wav”)

enemy1_down_sound.set_volume(0.2)

config/settings.py

注:游戏素材滑动到文章底部点击链接即可下载

二、小试牛刀

飞机和子弹都是可移动的,那么怎么实现让它们动起来呢(我方飞机可以玩家进行操控,敌机就是随机性的出现,子弹暂由我方飞机发射)。

在Pygame中,所有移动对象都可看做是一个精灵(sprite),精灵之间能够进行相互的交互通信,例如如何让碰撞检测更加精准等等。这里还是要推荐下小编的Python学习喂鑫*(同音):‘’七六二,四五九,五一零‘’不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2021最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

那么先让我们先在屏幕上制作一个游戏板,根据 settings.py 配置,并让它有声音播放,首先我们在 bin/main.py 中这么写:

我们可以直接运行它,那么我们会看到以下画面,并且还会有激情的声音吆!!!但是我们要将文件配置为绝对路径才可以运行,因为刚刚在settings中的加载的音乐文件为相对路径。

  • View Code?

#! /usr/bin/env python

-- coding: utf-8 --

importsys

fromconfig.settings import*

\

bg_size =480, 852 # 初始化游戏背景大小(宽, 高)

screen =pygame.display.set_mode(bg_size) # 设置背景对话框

pygame.display.set_caption(“飞机大战”) # 设置标题

background =pygame.image.load(os.path.join(BASE_DIR, “material/image/background.png”)) # 加载背景图片,并设置为不透明

\

defmain():

pygame.mixer.music.play(loops=-1) # loops 对应的值为 -1 则音乐会无限循环播放

whileTrue:

绘制背景图

screen.blit(background, (0, 0))

响应用户的操作(一定要有响应的用户操作)

forevent inpygame.event.get():

ifevent.type==12: # 如果用户按下屏幕上的关闭按钮,触发QUIT事件,程序退出

pygame.quit()

sys.exit()

再而我们将背景图像并输出到屏幕上面

pygame.display.flip()

if__name__ ==‘main’:

main()

python 之路200行Python代码写了个打飞机游戏

接下来呢,我们将要制作我方飞机,敌方飞机和子弹如何让它们展示在游戏画板上,继而让它们变得可移动起来,请看代码实现方案…

从游戏画板上添加飞机,首先我们应怎样在屏幕上输出飞机???

上述讲过,pygame中的 sprite(精灵)可使一张图片或者一个静态物体动起来,那么制作飞机需要考虑并做些什么呢?

  1. 飞机的初始位置
  2. 通过按键 上下左右 来调控飞机的位置移动
  3. 飞机只能呆在制作的游戏画板中
  4. 飞机的速度
  5. 飞机死亡的加载
  6. 设定一个状态标识飞机的存活
  7. 让飞机具有动态的喷气式效果

那么如何实现以上的功能呢?接下来结合上述的示例代码我们先将我方飞机绘制到画板上方,并且我们通过按键 J 判定我方飞机的存活状态为死亡,绘制飞机的死亡画面并重置飞机

  • View Code?

“”"

创建飞机

在pygame中, 所有可移动的对象均叫可看作一个精灵(sprite)

该类并实现了碰撞方法 spritecollide

我方飞机和敌方飞机指定掩膜属性以及生存状态标志位 添加 self.mask 属性(可以实现更精准的碰撞效果)这里还是要推荐下小编的Python学习喂鑫*(同音):‘’七六二,四五九,五一零‘’不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2021最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

“”"

倒入精灵模块, 使飞机可以动起来

importpygame

\

classOurPlane(pygame.sprite.Sprite):

def__init__(self, bg_size):

super(OurPlane, self).init()

确定我方飞机背景图(有俩张,可以让它们不停的切换,形成动态效果)

self.image_one =pygame.image.load(“material/image/hero1.png”)

self.image_two &#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值