自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 游戏底层逻辑,运动&&寻路(五)

终于要开始激动人心的Flocking集群行为了,不过在讨论集群行为之前,我们要先来探讨一些很有意思的哲学逻辑。Emergent Behaviors涌现行为这里先安利一本神作《失控》,看了这本书,我相信对整个人工智能,社会学,人类学和分布式理论都会有极大地认知提高。我们先讲一讲蜂巢现象: 一群蜜蜂,他们并没有中枢参与控制,蜜蜂仅仅能做一些基本行为,例如:四处乱飞,找到视野里的花朵,接收一定范围内其

2016-04-20 00:32:36 1308

原创 游戏底层逻辑,运动&&寻路(四)

接着上次的来,我们在群体算法之前把基本的个体运动解决掉。9、WallAvoidance避开墙壁此处的墙被抽象为一条线段,不论你的游戏使用的是一条线段作为墙面的碰撞检测,或者用一个几何形状作为墙面,几何形状我们可以看作多条线段的集合,都可以用此方法。墙类的实现首先是线段类,作为基类,拥有几种几何计算的方法,便于计算平面线段的交点,不多说。struct Seg{ Seg(Point p1, P

2016-04-19 13:17:31 1606

原创 游戏底层逻辑,运动&&寻路(三)

上篇文章我们解释了几种基本的控制力,今天我们会讨论几种较为复杂的行为,涉及了碰撞,以及辅助图形进行运动控制。7、Wander徘徊(巡逻)徘徊(四处巡逻)是一种很常见的行为,但是要得到smoothly平滑的转向行为,并不是特别容易,这里有一种借用辅助圆实现的平滑移动。如图,我们在物体前面构造了一个辅助圆,我们控制目标点,从而用seek方法控制运动行为,如果我们让目标点在圆周上运动,就可以产生一个力,他

2016-04-16 10:42:07 4396

原创 游戏底层逻辑,运动&&寻路(二)

目标驱动产生控制力我们知道一个合理的物理世界的运动不是自发的,也不能是突发的。我们不能突然的moveTo。我们首先知道,由牛顿定理可知,物体的变速需要力的作用,而在游戏世界里,力不是由其他物体施加的,而是由目标驱动的,这一原则将是接下来运动的基本哲学。运动物体我们先抛开实体的详细设计,在控制力实现过程中逐步添加实体属性。 这里有一个简单的可运动物体的设计(省略了ctor&set&get):Movi

2016-04-12 09:32:36 892

原创 游戏底层逻辑,运动&&寻路(一)

从今往后的项目,由于需要图形化界面,所以建立在cocos2d 3.4引擎基础之上。 说到运动,不得不复习一下平面向量的有关知识(忘完了,尴尬 ^_^;) 这里我就不多做讲解了,向量方面需要用到点乘,内积,外积,矩阵变换,转角之类的,还好基本的引擎都带有matrix和vector2d的库。先给大家展示一下《游戏人工智能编程》中的例子(自己的还没写好) 此例子中呈现了

2016-04-07 21:07:15 1201

原创 游戏底层逻辑,MainLoop&&FSM&&MSG(四)

Entity–实体今天我们把游戏逻辑集成起来,看一下状态机和消息分发具体的引用过程。 BaseEntity.hclass BaseEntity{public: BaseEntity(int IDcount) { setID(IDcount); } ~BaseEntity(){}; int ID() const {

2016-04-06 21:02:32 682

原创 游戏逻辑底层,MainLoop&&FSM&&MSG(三)

FSM–有限状态机今天我们来探讨一下Finite State Machine,有限状态机,简称FSM,有兴趣的同学可以看一下《游戏编程中的人工智能》这本书,写得很经典(无论从代码上来说还是思维上来说),此次的例子基本是在此书的思想结构上来编程的。FSM的基本思想我不多赘述,我们只关注代码的实现。首先是State基类 State.htemplate<class Type>class State{

2016-04-06 09:49:29 599

原创 游戏底层逻辑,MainLoop&&FSM&&MSG(二)

MSG消息机制准备写一个有关游戏底层算法物理算法以及AI重点是机器学习在游戏中的应用的长篇博客欢迎大家指正交流MSG–消息机制学过操作系统的同学们都知道,windows底层的数据传递有一个完善的消息机制(当时读书的时候也是烦透了PeekMsg这种东西,不过不得不说现在想起来其实操作系统是一门很有用的软件架构设计的书,操作系统基本包含了所有的基本软件体系架构),好了,闲谈无多,我们来看看代码。 首

2016-04-06 09:07:00 558

原创 游戏逻辑底层,MainLoop&&FSM&&MSG(一)

MainLoop–游戏主循环简单的程序主要分为两个线程,一个线程负责处理界面刷新(一般需要较高FPS),另一个线程负责处理程序逻辑(刷新频率较低),此篇文章主要介绍游戏的逻辑线程,我称之为GameMainLoop(以下简称ML)。 基本的ML很简单,定义逻辑刷新频率,定义刷新执行事件,我们直接来看代码MainLoop.h//headers...typedef std::function<void(

2016-04-06 00:47:34 909

空空如也

空空如也

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

TA关注的人

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