python(pygame)滑稽大战(类似飞机大战) 教程

基于pygame实现类似飞机大战小游戏(滑稽大战)

成品已录制视频投稿B站,点击观看动画

项目稽忽悠不(github)地址(目前只上传了素材,代码还在整理中):
https://github.com/BigShuang/From-simple-to-Huaji
本文首发于本人简书

初始准备工作

  • 本项目使用的python3版本(如果你用python2,我不知会怎么样)
  • Ide推荐大家选择pycharm(不同ide应该没影响)
  • 需要安装第三方库pygame,

pygame安装方法(windows电脑,mac系统本人实测与pygame不兼容,强行运行本项目卡成ppt)

电脑打开cmd命令窗口,输入

pip3 install pygame

补充说明:
由于众所周知的原因,安装过程中下载可能十分缓慢,甚至由此导致安装失败
此时建议大家尝试使用镜像下载

---国内源---
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/ 
豆瓣:http://pypi.douban.com/simple/

使用办法 pip install xxxx -i jinxiangurl
具体到pygame,则是:pip install pygame - i https://pypi.tuna.tsinghua.edu.cn/simple

一、实现基础窗口

0 - 新建app.py文件,内容如下

import pygame

WINWIDTH = 600  # 窗口宽度
WINHEIGHT = 900  # 窗口高度

pygame.init() # pygame初始化,必须有,且必须在开头
# 创建主窗体
win=pygame.display.set_mode((WINWIDTH,WINHEIGHT))

此时运行app.py,会发现一个一闪而逝的窗口

1 - 进一步,我们自然而然的就要思考这些问题

  • 怎么维持住这个窗口?

通过while循环去实现

  • 但是简单的循环只是单纯的将界面卡住,怎么实现刷新?

在循环体内使用pygame.display.update()语句进行界面的更新

  • 循环的刷新频率不做节制的话,界面会飞速刷新导致卡死,怎么办?

pygame有专门的对象pygame.time.Clock用于去控制循环刷新的频率,创建pygame.time.Clock对象后,调用该对象的tick()方法,函数参数为每秒刷新次数,就可以设置循环每秒刷新频率,术语叫做帧率

可前往官方文档观看pygame.time.Clock的更多细节,

https://www.pygame.org/docs/ref/time.html#pygame.time.Clock

根据上面的思路,修改app.py后如下

import pygame

FPS=60 # 游戏帧率
WINWIDTH = 600  # 窗口宽度
WINHEIGHT = 900  # 窗口高度

pygame.init() # pygame初始化,必须有,且必须在开头
# 创建主窗体
clock=pygame.time.Clock() # 用于控制循环刷新频率的对象
win=pygame.display.set_mode((WINWIDTH,WINHEIGHT))

while True:
    clock.tick(FPS) # 控制循环刷新频率,每秒刷新FPS对应的值的次数
    pygame.display.update()

此时运行app.py,就可以得到一个最最最基础的窗口了,

原文地址:https://www.cnblogs.com/BigShuang/p/10739705.html

时间: 2024-07-31 23:01:04

python(pygame)滑稽大战(类似飞机大战) 教程的相关文章

Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?

目录 pygame如何实现"切歌"以及多曲重奏? 一.pygame实现切歌 初始化路径 尝试一 尝试二 尝试三 成功 总结 二.如何在python多线程顺序执行的情况下实现音乐和音效同时播放? 尝试一 尝试二 尝试三 尝试四 成功 总结 pygame如何实现"切歌"以及多曲重奏? 昨天晚上研究了好久pygame的音乐混合器mixer,出了很多问题后最终成功,不过学习本来也不可能一帆风顺的吗,下面我就来讲一讲我遇到的问题. 一.pygame实现切歌 初始化路径 # 导

小甲鱼python基础教程飞机大战源码及素材

百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载 原文地址:https://www.cnblogs.com/144823836yj/p/10162920.html

500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手. 帮助蹲厕族.YP族.饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是-- 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 plan_game.py-- 先

pyinstaller相关问题 & pygame文件打包成exe文件 & 武装飞船 & 飞机大战

自己照书写了一个飞机大战游戏的python程序,想把它打包成一个exe文件,在查阅相关教程并经过数次尝试后终于成功. 安装打包应用 pyinstaller 在cmd命令窗口下pip install pyinstaller,安装完成. 但是由于外国的网站比较慢所以可以利用镜像来进行安装 pip install pyinstaller -i https://pypi.douban.com/simple 注意是使用https,不是http.因为https才是安全信任的网站 在cmd中输入pyinsta

Cocos2d-x 3.0final 终结者系列教程16-《微信飞机大战》实现

看到cocos2d-x推出了3.1版本,真是每月一次新版本,速度, 还有一个好消息就是http://cn.cocos2d-x.org/上线了,祝贺!啥时候把我的视频和教程放上去呢?!!! 本文介绍一款纵版射击游戏的实现,开发环境: win7 vs2012 cocos2d-x3.0final android adt android ndk r9 首先看下最后的效果: (图1,微信飞机大战运行效果) 源码下载地址:http://download.csdn.net/detail/sdhjob/7513

Python版飞机大战

前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下. 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的喜欢的图片,敌机可以分为敌机和奖励,enemy为普通敌人的父类,award为奖励敌机的父类. 各个类的基本属性 主类的大概逻辑 具体的代码: settings配置 import pygame class Settings(object): """设置常用的属性"&quo

python学习——飞机大战之初期

在开始正式编写飞机大战游戏之前,对pygame所提供的模块进行学习,以下代码只是验证了一些功能,并不能进行飞机大战游戏. 在开始正式的编写代码之前一定一定要先调用pygame.init()方法,并相应的调用pygame.quit()方法,这里要养成好的习惯,把成对出现的代码一并写好,以免最后忘记写,而导致错误,然后在pygame.init()与pygame.quit()之间写游戏代码. import pygame #导入pygame模块,pygame是专门设计用来设计游戏的python模块. f

【python】步骤四 第二课、实现飞机大战

第二课.实现飞机大战 一.项目介绍 项目实战:飞机大战 课程目标 掌握面向对象分析和开发的思想 能对项目进行拆分,进行模块化开发 了解项目开发的基本流程 理解并运用python的包.模块相关知识 理解并运用文件读写,函数式编程 理解简单2D游戏开发的基本思路 能独立开发简单的2D游戏项目 掌握IDE的调试技巧 项目功能模块 我方飞机 敌方小型飞机 敌方中型飞机 图片资源 音效资源 游戏历史 子弹 游戏展示结果 所需技能点 python的基础,包括变量.字符串.分支.条件控制.循环等 python

python开发飞机大战

1.使用pygame包,使用Python3.5版本2.达到的效果是: 出现一个窗口,显示一张背景图片,出现一架敌机和一架自己的飞机 敌机在最上面,左右移动,随机发子弹,自己的飞机使用键盘左右键左右移动,使用空格键发子弹 当自己的飞机发出的子弹碰到敌机发出的子弹时,敌机的子弹消失 当自己的飞机发出的子弹碰到敌机时,敌机原地摧毁后,再次出现开始游戏 当敌机发出的子弹碰到自己的飞机时,飞机原地摧毁,并退出游戏 3.主要涉及,飞机运动,子弹检测,子弹碰撞检测等,使用面向对象的思路 import pyga