
Pygame游戏实战
买的第一本python基础教程的实战部分,很认真的一行行代码敲出来的
beyond_LH
接纳自己,并快乐地生活
展开
-
Pygame实战之外星人入侵NO.2——左右移动飞船
继续我们的小游戏,上一篇是搭建我们的基础平台,包括屏幕和放置飞船,现在我要实现的功能是左右移动飞船,为了以后的工作更加清晰,可以对代码进行重构,使得功能模块各司其职,利于扩展。还是上全部代码吧,其实更改的不多,只是这样更易查看:先看主程序:import pygamefrom settings import Settingsfrom ship import Shipimport g原创 2018-04-16 22:36:14 · 6737 阅读 · 6 评论 -
Pygame实战之外星人入侵NO.10——结束游戏
这个阶段就要结束了,现在我们要结束游戏了,按常规操作来说,当外星人撞到飞船或是屏幕底端时便结束游戏,更进一步,我们会给玩家三次机会,对,就像小时候玩的游戏一样我们有三条命,ok,开始操作:首先我们要创建一个新类,他负责跟踪游戏统计信息,先看一下:class GameSta(): def __init__(self,ai_settings): self.ai_settings...原创 2018-05-23 23:40:58 · 2677 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.11——设置开始按钮
目前的状态是当我们打开游戏时便自动运行了,这样显然不符合逻辑,那我们就设置一个开始按钮,当我们点击它是游戏才开始,这次我们先将这个开始按钮搞出来,后续操作下篇见……首先我们要将游戏的初始状态设置为非活动状态:self.game_active=False在game_sta中将活动状态改为False,这样在主程序中开始时外星人将处于静止状态,接下来我们就要创建一个按钮了,我们在button.py中创建...原创 2018-05-27 17:23:41 · 7515 阅读 · 7 评论 -
Pygame实战之外星人入侵NO.9——消灭外星人
万事俱备,只欠子弹和外星人同归于尽……我们将使用sprite.groupcollide()来检测子弹和外星人的碰撞,也就是查看二者是否重叠在一起~~在game_functions.py中的update_bullets(bullets,aliens)方法内加入一行代码:collisions=pygame.sprite.groupcollide(bullets,aliens,True,True)对,就...原创 2018-05-19 12:27:13 · 3789 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.5——操作子弹
上一篇我们可以发射子弹了,也可以清晰地看到子弹“消失”在了屏幕上段,其实这是个假象,它只是消失在我们的视野中,但仍在内存中,消耗着宝贵的资源,我们要彻底消灭它……在game_functions.py中我们添加新的函数update_bullets:def update_bullets(bullets): bullets.update() #将为组bullets中的每一颗子弹调用bul...原创 2018-04-26 20:36:15 · 4560 阅读 · 3 评论 -
Pygame实战之外星人入侵NO.8——动起来,外星人
成群的外星人已经出现了,是时候发起进攻了,接下来就让他们动起来。首先在settings.py中添加对于外星人移动速度和方向的设置: self.alien_speed=1 #设置外星人的步长 self.aliens_down_speed=5 #外星人向下的速度 self.aliens_x=1 #该属性为外星人左右移动的方向,1代表往右,-1代表往左为了方便就不按步骤一点点来了,第一个属性是外星人...原创 2018-05-16 22:41:26 · 1911 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.6——外星人登场
飞船和子弹都整好了,外星人该登场了,首先建一个表示外星人的模块alien.py:import pygamefrom pygame.sprite import Spriteclass Alien(Sprite): #该类用于存储外星人信息 def __init__(self,ai_settings,screen): #初始化外星人并设置其位置 super(Alien,s...原创 2018-05-03 21:34:24 · 6645 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.7——大批外星人来袭
上次我们创建了一个外星人,现在要大批量生产了……首先我们要创建外星人群,在game_functions.py中增加一个函数creat_aliens,由于后期进行了代码重构,所以呈上最终结果吧:def get_nuber_alien_x(ai_settings,alien_width): '''屏幕每一行可容纳外星人的数量''' space_x=ai_settings.s原创 2018-05-09 19:18:01 · 3586 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.4——射击
飞船已经创建好了,接下来就要装填弹药了。(本想将修改的代码涂红显示,但系统问题导致无法正常显示,只能尽量只贴出修改的代码了)在setting.py中设定子弹类Bullet所需的参数:#设置子弹属性 self.bullet_width=2 self.bullet_height=10 self.bullet_speed=1 self.bu...原创 2018-04-25 14:05:51 · 5255 阅读 · 4 评论 -
Pygame实战之外星人入侵NO.1——搭建基础平台
这一块内容是之前的python自学之路的延伸版,开始进入实战了,巩固之前的知识点,卡姆昂……小时候大家应该都玩过“飞行射击”类的游戏吧,现在想起来都是慢慢的童年啊,今天就要踏出制作小游戏的第一步了,详细注释和说明都在代码里了,有些东西还得慢慢消化,感觉形式有点混乱,另外就是退出时总是显示异常,不能正常结束程序,应该是sys.exit()的问题,但目前还没有找到解决方案~~~上主程序:import ...原创 2018-04-13 20:28:31 · 3789 阅读 · 2 评论 -
Pygame实战之外星人入侵NO.3——设定飞船的速率and活动范围
这次主要是设定飞船的运动速率,之前每按一次左右箭头飞船运动值为1,现在改变其值,如2.5,这样便能实现飞船以不同速率左右移动,可以在游戏中分等级或者难度大小来选择不同的模式;还有就是限定飞船的移动范围,保证其在屏幕以内运动,这里用到了self.rect.right<self.screen_rect.right和self.rect.left>0,因为屏幕的原点在左上角,所以rect的左边...原创 2018-04-17 22:22:56 · 3150 阅读 · 0 评论 -
Pygame实战之外星人入侵NO.12——点击按钮开始游戏
上次将开始按钮“GO”设置好了,现在要发挥其功效了,当玩家点击按钮时开始游戏:在game_functions.py中定义新的事件MOUSEBUTTONDOWN,也就是鼠标点击事件,在check_events()中添加: elif event.type==pygame.MOUSEBUTTONDOWN:#检测鼠标点击事件 mouse_x,mouse_y=pygame.m...原创 2018-06-11 22:29:39 · 5753 阅读 · 0 评论