Python编写微信打飞机小游戏
Python编写微信打飞机全程教程,解释详细,通俗易懂
山在岭就在
天道酬勤
展开
-
Python编写微信打飞机小游戏(十二)
在这篇博客里,我们为游戏添加最后一个功能:GameOver画面的绘制。 在当我方飞机的三条命全部挂掉之后,程序会进入结束程序,我们的设计时当程序结束时显示用户的目前得分以及历史最高分,仅此而已。 1、加载图片资源 在这里我们特意重做了一个游戏结束的画面,其实就是在背景图片上加了一些文字而已,首先在main()函数中加载它: gameover_image原创 2015-11-18 15:18:06 · 10864 阅读 · 8 评论 -
Python编写微信打飞机小游戏(十一)
在这篇博文中,我们准备为打飞机小游戏添加一个暂停的功能,即用户在游戏过程中随时可以通过单击屏幕右上方的一个暂停按钮来暂停和恢复游戏。这个功能看似比较简单,但其中涉及了鼠标操作、图片切换、代码结构的重置等等,接下来我们一一进行介绍。 1、加载暂停按钮图标 在image文件夹下一共有四张暂停按钮的图片,分别为深色和浅色两组,首先在main()函数中加载相关图片资源并初始化暂停/开始原创 2015-11-18 11:17:03 · 8044 阅读 · 3 评论 -
Python编写微信打飞机小游戏(十)
在这篇博文里,我们将为我方飞机添加三条生命。 1、加载相关资源 在目前的游戏中,我方飞机是拥有不死生命的,损毁了就在下方复活,这显然不合逻辑,因此需要为我放飞机增加生命数,并在屏幕右下方显示对应图标。首先在main()函数中设置初始化生命数并加载小飞机图片: life_image = pygame.image.load("image/life.png").conv原创 2015-11-17 21:43:31 · 5571 阅读 · 0 评论 -
Python编写微信打飞机小游戏(九)
在之前的博文中我们为游戏添加了随分数累加的难度递增机制,这就带来一个问题:当到达后面的难度等级后,敌方飞机铺天盖地而来,我方小飞机根本应付不过来,因此在这篇博文中我们为我方飞机赋予必杀技——随机补给全屏炸弹和超级子弹。 首先来简单描述这两个必杀技,全屏炸弹是指在游戏过程中,当用户按下空格键时,就触发一枚全屏炸弹(如果当前有的话),此时屏幕上的所有敌机立即销毁。超级子弹是指玩家在接收到指定原创 2015-11-17 17:42:21 · 5701 阅读 · 2 评论 -
Python编写微信打飞机小游戏(八)
现在飞机已经能够带着血条突突突飞下来让玩家虐,于是我们给用户一点打飞机的成就感——计分系统以及难度递增机制。 1、计分系统 首先,我们在main()函数中添加全局变量(score)并初始化为零用以统计当前用户的打飞机得分:score = 0 # 统计用户得分 接下来只需要在敌机销毁时对score进行累加就可以了,我们在这里先给敌机标个价:小型敌机一架值5原创 2015-11-16 21:30:55 · 6949 阅读 · 1 评论 -
Python编写微信打飞机小游戏(七)
这边博客我们为大型敌机和中型敌机设置血量并以血槽的形式显示出来,同时解决之前遇到的声道阻塞的BUG(声道阻塞的问题详见之前的博文)。 1、为敌机添加表示血量的成员变量 所谓敌机血量,就是指敌机在挂掉之前能够挨几发子弹,这是敌机对象的一个成员属性,因此我们在中型敌机(MidEnemy)和大型敌机(BigEnemy)中添加energy成员变量:class MidEnemy(原创 2015-11-14 10:40:34 · 5888 阅读 · 0 评论 -
Python编写微信打飞机小游戏(六)
接下来,我们为我方飞机添加武器——发射子弹。 考虑到Python语言的模块化,我们同样将子弹封装为一个模块,bullet.py。新建py文件,导入Pygame,编程开始。 1、定义子弹类——Bullet1 强调这里之所谓命名为Bullet1,是因为游戏中我方飞机射出的子弹是有两种形式,一种是普通子弹,另外一种是超级子弹。其中超级子弹(Bullet2)将在之后的补给发放原创 2015-11-13 21:34:54 · 7049 阅读 · 0 评论 -
Python编写微信打飞机小游戏(五)
在完成敌方敌机的初步设置后,运行程序我们发现在屏幕上我方飞机和敌方飞机能够友好共存,互不干涉,这显然不符合游戏的宗旨,在这篇文章中我们为游戏添加我方飞机和敌机之间的碰撞损毁机制。 1、碰撞检测 碰撞检测是游戏设计中的最基本的部分,几乎任何游戏中的主角都具有发射一些飞行道具的能力,如何准备判断主角射出的子弹、飞镖、能量球、龟派气功是否准确命中目标,就是碰撞检测所要实现的功能。对于原创 2015-11-11 20:50:38 · 7061 阅读 · 0 评论 -
Python编写微信打飞机小游戏(四)
之前的工作已经基本上将我方飞机的图形显示工作做的差不多了,这篇博客中我们将开始添加敌方飞机——小型敌机、中型敌机(直升机)和大型敌机(坦克)。新建一个enemy.py文件,导入pygame和random模块,开始编写吧(还是要注意文件编码问题,以后就不再啰嗦了)。 敌方飞机类与我方飞机模块有一定的相似性,但不会左右移动,不会发射子弹等等。小型敌机是敌方飞机中最基本的类型,一击毙命,没有血原创 2015-11-10 22:11:20 · 7498 阅读 · 2 评论 -
Python编写微信打飞机小游戏(三)
通过之前的任务,我们已经能够实现小飞机在屏幕上自由移动了,这次博客的任务是是的我们的小飞机看起来更有灵性——尾部喷气特效的绘制。 1、帧率 说道帧率,玩游戏的人可能并不陌生。如果你是一个lol的玩家,那你肯定最关心两件事,一是帧率(FPS),二是延迟。延迟取决于网络性能,而帧率则取决于电脑的硬件配置,自然是帧率越高游戏画面就越流畅。帧率,简单老理解就是游戏在一秒钟进行多少次画面原创 2015-11-09 21:16:00 · 6430 阅读 · 0 评论 -
Python编写微信打飞机小游戏(二)
通过之前的准备,已经成功加载了程序资源并使得程序能够顺利运行,接下来开始编写我方小飞机的模块。在工程目录下创建一个名为myplane.py的文件,导入pygame模块(注意文件编码问题) 1、精灵 Pygame中所有移动对象都可看做是一个精灵(sprite),精灵之间能够进行相互的交互通信,例如碰撞检测等等,对于pygame模块中精灵的介绍网上有很多资源,例如《Pygame之精原创 2015-11-08 22:01:24 · 12100 阅读 · 1 评论 -
Python编写微信打飞机小游戏(一)
最近开始学习Python语言,发现Python有一个神奇的Pygame模块,在编写小游戏时显得非常方便,于是参照教学视频编写了一个微信打飞机的小游戏,网上有很多相关的博客,但都不是很详细,大都是直接贴代码,于是决定沉下心来把编写程序的过程记录下来,与大家分享。 首先声明一点,这篇博客完全参照了小甲鱼的《零基础入门学习Python》教学视频,为了尊重原创,特将原作者的视频地址公布如下:《零原创 2015-11-07 21:13:45 · 38485 阅读 · 13 评论