Python之路—200行Python代码搞了个打飞机游戏!!

这篇具有很好参考价值的文章主要介绍了Python之路—200行Python代码搞了个打飞机游戏!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序。

很有意思,跟大家分享下。

先看一下项目结构

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

"""

PlayPlane/

|-- bin/

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

|-- config/

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

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

    |-- ...

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

|   |-- __init__.py

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

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

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

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

|-- README.md          

"""

再晒下项目成果图

Python之路—200行Python代码搞了个打飞机游戏!!

 微信扫码添加,备注 “飞机” 领取腾讯文档-在线文档https://docs.qq.com/doc/DU3NjWWxyc2ZURXll

实现步骤

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

  • 游戏初始化
  • 游戏混音器初始化
  • 背景音乐初始化
  • 我方飞机挂了音乐
  • 敌方飞机挂了音乐
  • 子弹发射音乐
#! /usr/bin/env python
# -*- coding: utf-8 -*-
 
import pygame
 
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),精灵之间能够进行相互的交互通信,例如如何让碰撞检测更加精准等等。

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

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

#! /usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
 
from config.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"))  # 加载背景图片,并设置为不透明
 
 
def main():
    pygame.mixer.music.play(loops=-1)  # loops 对应的值为 -1 则音乐会无限循环播放
 
    while True:
        # 绘制背景图
        screen.blit(background, (0, 0))
 
        # 响应用户的操作(一定要有响应的用户操作)
        for event in pygame.event.get():
            if event.type == 12:  # 如果用户按下屏幕上的关闭按钮,触发QUIT事件,程序退出
                pygame.quit()
                sys.exit()
 
        # 再而我们将背景图像并输出到屏幕上面
        pygame.display.flip()
 
if __name__ == '__main__':
    main()

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

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

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

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

那么如何实现以上的功能呢?接下来结合上述的示例代码我们先将我方飞机绘制到画板上方,并且我们通过按键 J 判定我方飞机的存活状态为死亡,绘制飞机的死亡画面并重置飞机文章来源地址https://www.toymoban.com/news/detail-400406.html

"""
    创建飞机
    在pygame中, 所有可移动的对象均叫可看作一个精灵(sprite)
    该类并实现了碰撞方法 spritecollide
 
    我方飞机和敌方飞机指定掩

到了这里,关于Python之路—200行Python代码搞了个打飞机游戏!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python200行有趣小程序,python简单小游戏代码_python小程序200例

    本篇文章给大家谈谈python200行有趣小程序,以及python简单小游戏代码,希望对各位有所帮助,不要忘了收藏本站喔。 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游

    2024年01月17日
    浏览(61)
  • 使用javafx,结合讯飞ai,搞了个ai聊天系统

    源代码地址:nanshaws/liaotianAi: 用javafx搞一个简单版ai对话 (github.com) 这个是我一个人写的,还请各位点个免费的start好吗0.0 第一步:先在讯飞ai那边获取接入的api 点进去,然后出现这个页面: 没有的话,就点击免费试用,有了的话,就点击服务管理: 用v2.0的和用3的都行,不

    2024年02月05日
    浏览(37)
  • python200行有趣小程序,python简单小游戏代码

    本篇文章给大家谈谈python200行有趣小程序,以及python简单小游戏代码,希望对各位有所帮助,不要忘了收藏本站喔。 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游

    2024年02月04日
    浏览(64)
  • 搞了个Blazor工具站,域名一次性买了10年!

    大家好,我是沙漠尽头的狼。 在 Dotnet9 上线在线小工具和小游戏后,服务器的压力感觉挺大的,打开25个页面,内存占用170MB左右,CPU保持在60~70%,看来Server真不适合搞这类交互较多的程序(服务器配置:2核4G内存),所以站长加急上线 Blazor Wasm 版本网站,便于大家直观对比

    2024年02月10日
    浏览(48)
  • 有道云笔记也挺速度,也搞了个AI助手,能抗衡Notion AI?

    小编平时做技术笔记的时候,经常使用到的软件就是 有道云笔记 ,最近无意间发现,笔记编写的页面中,竟然集成了 AI助手 !网易有道可真是低调!毕竟最近AI圈大火,竟然没有蹭一波热度,直接把功能上了,这一波有点深藏功与名那味了。 同为笔记记录软件,最近大火的

    2024年02月08日
    浏览(42)
  • 微信小程序飞机大战游戏步骤及代码

    步骤: 1. 准备游戏资源:准备游戏所需的图片、音效等资源。 2. 创建游戏场景:使用微信小程序的API创建游戏场景,可以使用wx.createCanvasContext()方法创建游戏场景。 3. 加载游戏资源:使用wx.loadImage()方法加载游戏所需的图片资源,使用wx.playBackgroundAudio()方法加载游戏所需的

    2024年02月12日
    浏览(48)
  • python版《羊了个羊》游戏开发第一天

    Python小型项目实战教学课《羊了个羊》 版本1.0:基本开发 课次 内容 技术 第一天 基本游戏地图数据 面向过程 第二天 鼠标点击和移动 面向对象 第三天 消除 设计模式:单例模式 第四天 完整游戏过程 架构:Model-View-ViewModel 第五天 多层重叠的方块 数据结构 (计算机考研数据

    2024年02月13日
    浏览(43)
  • 实现用java做一个简易版《羊了个羊》小游戏(附源代码)

    该项目是跟着这个b站视频一步一步写出来的,初学java有些地方我看不是很明白,但是讲解很仔细,大家可以看原视频,我没有添加背景音乐和背景图片,做出来的效果也勉勉强强。 代码已经上传到github上了,大家可以去github上直接下载代码,附上链接:点击进入github源码链接

    2024年02月04日
    浏览(77)
  • 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了

    效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码,有数据库和关卡。 我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致。本教程有已有两个版本。 本来是想着Fork多一点的时候再开源的,没有想到一个Fork都没有。 现在是 微信小程序 版本。 我就不在这里吐槽微信小

    2024年02月09日
    浏览(53)
  • python——飞机大战小游戏

    目录 1、导入模块 2、窗口操作 3、事件操作 4、长按事件 5、添加游戏背景 6、添加英雄飞机 7、获取飞机的图片矩形 8、基本游戏窗口 9、添加游戏窗口图片 10、英雄飞机登场 11、英雄飞机装备子弹并发射 1、enemy_plane 2、game_main 3、game_map 4、game_score 5、hero_plane 6、plane_bullet 先安

    2024年02月03日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包