
python游戏开发---飞机大战
使用pygame 的飞机大战实战
fjswcjswzy
主要研究:图像处理、计算机视觉、模式识别
;我的邮箱:fjswcjswzy@126.com
;欢迎一起交流讨论,一起学习进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(十)通过pygame来进行碰撞检测
文章目录什么是碰撞检测方法一:pygame.sprite.groupcollide()方法二: pygame.sprite.spritecollide()什么是碰撞检测pygame提供了两个方法可以实现碰撞检测方法一:pygame.sprite.groupcollide()pygame.sprite.groupcollide()–两个精灵组中所有精灵的碰撞检测groundcollide(group1,group2,dokill1,dokill2,collided = None)解读:若原创 2020-05-13 18:03:46 · 13696 阅读 · 5 评论 -
(九)通过pygame使游戏人物发射子弹
文章目录英雄发射子弹需求所用技巧定义子弹类英雄发射子弹需求英雄每隔0.5s发射一次子弹,每次连发三枚子弹所用技巧因为是每隔0.5秒发射一次子弹,所以可以用pygame中的定时器定义定时器常量—eventid在初始化方法中,调用set_timer方法设置定时器时间在游戏循环中,监听定时器事件定义子弹类**初始化方法:**①指定子弹图片 ②初始速度=-2:子弹需要向上飞行重写update()方法:判断是否飞出屏幕,如果是,从精灵组删除...原创 2020-05-13 17:26:46 · 9193 阅读 · 0 评论 -
(八)通过pygame来操控游戏人物的移动
文章目录需求分析创建英雄人物移动英雄位置在游戏中,如何操控人物??使用pygame.key.get_pressed()来移动英雄人物那移动人物之前,应该先把英雄人物(也就是英雄飞机)绘制到屏幕上。需求分析在写代码之前,先进行需求分析,要分析英雄的需求和子弹的需求英雄需求:游戏启动后,英雄出现在屏幕的水平中间的位置,距离屏幕底部120像素英雄每隔0.5秒发射一次子弹,每次连发三枚子弹英雄默认不会移动,需要通过 左/右 方向键,控制英雄在水平方向上的移动子弹需求子弹从英雄的正上原创 2020-05-12 16:53:58 · 6999 阅读 · 3 评论 -
(七)通过pygame来设置飞机大战中 敌机 的速度、位置等
文章目录定时器设计敌机类设置敌机的初始位置和速度在飞机大战中,敌机的出现是,每隔一秒就出现一架敌机并且每架敌机向屏幕下方飞行,飞行速度各不相同每架敌机出现的水平位置也不相同当敌机从屏幕下方飞出,不会再飞回到屏幕中(把敌机及时从精灵组删除,避免占用内存)这个需要我们怎么操作呢?—使用定时器定时器所谓定时器,就是每隔一段时间,去执行一些操作在pygame中 使用pygame.time.set_timer()来添加计时器set_timer(eventid,milliseconds)原创 2020-05-11 21:15:00 · 3406 阅读 · 2 评论 -
(六)通过pygame让游戏背景图像实现交替滚动
文章目录原理解决办法具体代码原理在游戏中,需要如何将游戏的背景实现交替滚动?利用运动是相对的游戏启动后,背景图像会连续不断地向下方移动,在视觉上就会产生英雄的飞机不断向上方飞行的错觉,这在很多跑酷类游戏中是常见的如果只是单单一张背景图向下移动,如下图所示,可以看到,如果只是一张背景图向下移动的话,那么游戏主界面上方就会出现没有背景图的情况(红色区域)那么要怎么解决这个问题呢??用两张一样的背景图,另一张叠放在屏幕的正上方(如下图)让两张背景图像同时向下移动,那么上文所说的“红色原创 2020-05-10 22:18:27 · 6838 阅读 · 1 评论 -
(五)通过pygame搭建游戏框架
文章目录明确主程序的职责明确文件职责游戏框架的搭建要搭建一个游戏的框架,首先要明确主程序的职责明确主程序的职责由之前的案例可以得知,一个游戏的主程序的职责可以分成两个部分游戏初始化游戏循环现在我们根据明确的职责,设计PlaneGame类如下:明确文件职责plane_main:①封装主游戏类②创建游戏对象③启动游戏plane_sprites:①封装游戏中所有需要使用的精灵子类②提供游戏的相关工具...原创 2020-05-10 20:28:55 · 2268 阅读 · 0 评论 -
(四)详解pygame中的精灵和精灵组
文章目录精灵和精灵组派生精灵子类精灵和精灵组在之前的例子中,对于一个小游戏的图像加载、图像的位置变换、绘制图像都需要程序员编写代码来一个个地处理,但是如果我们的游戏需要处理很多张图像,那么代码内部将会非常复杂 ,因为我们要在每一个游戏循环中,一个图像移动一次就需要写一次代码。那么需要如何解决这个问题呢??—精灵和精灵组为了简化开发游戏的步骤,pygame提供了两个类pygame.sprite.Sprite —储存图像数据image和位置rect的对象pygame.sprite.Group原创 2020-05-09 22:13:25 · 17093 阅读 · 5 评论 -
(三)通过pygame处理用户的鼠标键盘操作(事件和监听)
首先,先的知道什么是事件event就是游戏启动后,用户针对游戏所做的操作例如:点击关闭按钮,点击鼠标,按下键盘再者,要知道什么是监听监听是在游戏循环中,判断用户的具体操作只有捕获到用户具体的操作,才能有针对性的做出响应接下来,就是代码pygame中通过pygame.event.get()可以获得用户当前所做的所用操作的事件列表代码如下:import pygamepygame.init()#创建游戏窗口 大小为480 * 700#绘制背景图像screen = pygam原创 2020-05-09 15:42:23 · 6019 阅读 · 0 评论 -
(二)通过pygame让游戏人物 动起来
利用时钟,设置游戏循环的刷新帧率正常来说,python在进行无限循环的时候, 速度是非常快的,如以下代码:import pygamepygame.init()#创建游戏窗口 大小为480 * 700#绘制背景图像screen = pygame.display.set_mode((480,700))#加载图像数据bg = pygame.image.load(r'.\images\background.png')#通过blit来绘制图像,从游戏窗口screen的(0,0)处开始绘制scre原创 2020-05-09 11:20:57 · 8696 阅读 · 3 评论 -
(一)通过pygame 将自己的图像添加到游戏中
使用pygame创建游戏窗口(就是游戏的主页面),不自行添加任何图片的话,默认是一片黑色的背景,代码如下:import pygamepygame.init()screen = pygame.display.set_mode((480,700))while True: passpygame.quit()但是我们现在想要使用我们自己的图像,需要怎么做?使用pygam...原创 2020-05-07 22:38:15 · 9339 阅读 · 3 评论