自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Python——A Star寻路与游戏练手——保护金塔

上一篇实现并演示了A Star寻路算法以及增强了其通用性(可用于不同size的精灵寻路),本文将基于上文,实现一个金塔守护的小游戏。首先,少不了定义敌人和守护者。敌人和守护者有很多的共同特性,都有精灵的基本属性,还包含会自己找路,自己的战斗力和防御能力等。另外一点是所有精灵在抵达目的地的过程中都可能经历8个不同的方向的路径,需要展示精灵各个方向的行走动画。首先来说一下pygame动画通常使用的两种方式。方式一是将每一个方向的没一个动作单独用一个图片,这些图片按照一定的规则进行编号,然后在运动的过程中根据

2020-05-31 12:18:06 922 1

原创 Python游戏之运动物体寻路——A星算法与扩展

上一篇文章主要完成了游戏地图的创建,其中简单为游戏寻路做了一点准备,就是格栅背景地图。游戏场景中的各种山川、河流、楼阁等都都可以视为为某种运动精灵的障碍物,那么精灵如何绕过障碍物运动都自己的目的地呢?目前关于寻路的算法有很多,最常见的就是A-Star算法,也叫A星算法。典型的A-star算法处理的是运动物体和格栅大小一致,如果运动物体比格栅小,自然没有任何问题。如果运动物体比格栅大,典型的A-star算法就不能处理了。那么是不是A-star方法就不能处理了呢?不是,针对这个问题,国外有人提出了叫做 Bru

2020-05-30 11:25:52 2089 1

原创 Pygame——创建游戏地图

记得以前有几款很经典的游戏(红色警戒,命令与征服,英雄无敌),不小心暴漏了自己的年龄,因为知道并玩过这几款游戏的人可能还记得,里面有一个功能,就是自己编辑地图,在自己编辑的地图上玩游戏。当时觉得这个功能很炫酷,因为通常游戏场景都是游戏制作者给出的,玩家没得选。最近学习Python,觉得Pygame可以很轻松就实现这个功能,于是自己实现了一下。供感兴趣的朋友们惭愧,批评指正。废话不多说,说正事。既然是编辑地图,必须要有背景和地图上展示的元素已经元素在地图上的位置等信息。打码开始:地图元素类:cla

2020-05-23 18:41:27 4850 1

原创 Python游戏之Pygame——太空飞机大战(四)

上一篇(Python游戏之Pygame——太空飞机大战(三))完成了英雄战机和星空,那么基本上飞机大战的主要元素都已经完成,该是总结成功玩自己游戏的时候了。哦,差点忘了,Bullet类对于普通子弹和导弹发射来说是通用的,但是对于核弹,发射核弹部分当然也是相同的,但核弹爆炸的效果图以及杀伤情况就完全不同了。下面先给出展示核弹爆炸的方法:# 处理核弹爆炸,由于核弹爆炸属于特殊事件,放在类里处理不合OOP理念。当然也可以单独为核弹做一个类,不放在 Bullet 类中def nuclear_explosiin

2020-05-20 08:31:35 553

原创 Python游戏之Pygame——太空飞机大战(三)

上一篇(Python游戏之Pygame——太空飞机大战(二))完成了敌机类以及敌机坠毁时释放包裹类,这一篇将给出英雄战机类和处理。由于英雄战机是由游戏者操控的,所以要处理操控事件,比如往那个方向飞,发射子弹或者导弹,或者都发射,遇到敌机太多时还可以发射大boss——核弹,遇到很多子弹时通过变形躲子弹等。看起来很炫酷,下面开始打码。class HeroPlane(Sprite): def __init__(self, heroType, position, layerGroup, hPlaneGro

2020-05-19 20:04:07 422

原创 Python游戏之Pygame——太空飞机大战(二)

上一篇(Python游戏之Pygame——太空飞机大战(一))文章简单对游戏进行了说明,给出了部分配置文件以及子弹类。下面给出敌机类和方法。大家直到,飞机必须能非,最好能非直线飞行。因此必须有X_speed和Y_speed。飞机还要能发射子弹或导弹等,飞机有多少个发射位,多久发射一次,还有飞机被子弹击中或者敌机与英雄战机相撞等各种情况都是需要处理的。下面先给出敌机类和方法。class EnemyPlane(Sprite): def __init__(self, flightType, laye

2020-05-19 19:25:32 399

原创 Python游戏之Pygame——太空飞机大战(一)

学习Python,最好的办法是实战,实战!我们知道,有无数的先人和大侠提供了非常多的软件包供我们选用。有时候学习是一件很枯燥的事,玩游戏就不一样了。我们玩的最多的游戏是别人开发的,能不能开发出一款自己的游戏呢?当然大型游戏是不太现实的,用二三天事件写一个飞机大战的游戏还是有可能的。直接上效果图,由于自己一边玩一边抓图,可能抓不出最好的效果,先上两张吧。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519174555107.png?x-oss-process=

2020-05-19 18:57:51 1033

原创 Python:模拟windows命令按钮——一文学习Pygame分层显示

学习Python的最好方法应该是学习一点东西后用一个小项目练练手。在做游戏的过程中,很多时候需要根据场景按照一定的顺序或规则显示,有些图像信息要在最底层,有些图像需要在最上面显示,那么如何控制图像按要求分层显示呢?pygame提供了一个分层显示的类——LayeredUpdates,利用这个类可以非常简单明了的实现显示需求。为了简单而且有意义的展示这个功能,本文利用该类来模拟一下windows命令按钮(缺省、获得焦点、点击)。引入需要的包以及定义全局常量。通常情况下,全局常量应该放在单独的配置文件中,然

2020-05-17 11:02:01 757

原创 Python练手项目之数独(二)——出题

如何利用挖洞法出不同难度的数独题目

2020-05-16 13:21:58 1037 1

原创 Python 练手之数独(一)——生成填充好的数独

很久么有写东西了,最近闲着无聊,想学习Python,光看书和别人的代码挺无聊的,于是想自己找个小项目练练手。九宫格是一个大家都很熟悉也喜欢打发时间的游戏,于是打算用Python来实现一下。九宫格是什么,相信大家都很清楚:在 9 X 9 的格子上填写数字1,2,3,4,5,6,7,8,9,要求:1、每行的数字不能重复2、每列的数字不能重复3、一共九个 3 X 3 的小区域中数字不能重复。目前大多实现方法都是先和拉斯维加斯生成法和深度优解数独。这里也采用这种方法,不过实现细节上有一些区别。由于涉及

2020-05-16 09:36:45 1881

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除