cocos2dx
文章平均质量分 62
PureDesigner
这个作者很懒,什么都没留下…
展开
-
cocos2dX 3.x获取渲染Image
cocos2dx 3.x开始采用了异步渲染机制,以前在2.x版本采用重绘获取图片Image对象的放法会出现一点小bug,最近查找资料解决了这个问题,有一点思考:bool ControllerLayer::getNewImg(Sprite* img){ img->retain(); RenderTexture* pRender = RenderTexture::create(img-原创 2015-10-03 14:56:55 · 2699 阅读 · 0 评论 -
Qiuck_Cocos实战(一)
我们之前说了要做飞机大战的项目,就从这篇开始吧。Bullet类子弹类是这样一种类,它由飞机发出,直线运动,撞到物体后消失,超出地图后也会消失。-- Bullet-- 构造函数里面有很多参数,根据这些参数,我们可以实现不同样式的子弹local Bullet=class("Bullet", function(filename,poX,poY,style,parentNode原创 2016-07-16 20:41:39 · 329 阅读 · 0 评论 -
Quick_Cocos基础(三)
前言这个系列的前面几篇我不准备系统地讲,我们先写一写小例子,然后再从体系结构上来分析cocos lua自动滚动地图我们新建一个场景,把它作为游戏的主场景。local MainScene = class("MainScene", function() return display.newScene("MainScene")end)function MainScene:ctor() --原创 2016-07-15 16:58:33 · 323 阅读 · 0 评论 -
Qiuck_Cocos基础(二)
前言上一篇文章我们讲了一点无聊的东西,今天我们来讲easy的东西,关于cocos的常用类,为了配合这一点,我们讲一个实际项目:飞机大战 此项目已经在github上开源https://github.com/YoungForLong/WXDFJ场景场景是一个游戏的基本结构,所有的内容都附着于场景local StartScene=class("StartScene",function() ret原创 2016-07-13 01:54:59 · 441 阅读 · 0 评论 -
Qiuck_Cocos基础(一)
前言最近学校和触控科技合作,组织了一次qiuck_cocos的教学(非常感谢触控科技的小强老师,笔者暂时不知道他的博客,以后会告知大家),笔者有幸参与其中,领略了脚本语言lua的实用性和cocos引擎的便捷开发流程,在此把一些感悟想和大家分享。此篇文章不会太过详细地向读者讲解lua语言的基本特性,由于lua语言特别简单,有任何面向对象基础的人和c语言基础的人都可以很快上手();如果大家想了解quic原创 2016-07-13 00:57:40 · 500 阅读 · 0 评论 -
GeoHash补充
最近在逛cocoa的时候发现有一些小细节可以优化的 - 我们在设定二分精度时可以设置精度为个体的影响范围为精度,这样我们在搜索的时候可以直接用“==”而非“like” - 我们可以不用进行base32编码,直接将其转化为unsinged long,可以大大减少计算,数据库使用字符串是因为很多数据库对字符串类型有很好的支持,c上面用字符串效率低得可以 - 之前那个写得仓促,有很多错误没整理,这次原创 2016-05-09 16:03:31 · 564 阅读 · 0 评论 -
游戏底层逻辑,空间划分
前言 不知道大家注意到之前有一个寻找相邻个体的方法叫做getNeighbors没有,该方法的实现如下: - 遍历所有个体,计算距离是否小于一定范围,确定邻居 我们可以预知,该方法在个体总数较小的时候效率较高,一旦个体数突破上百个,就很容易造成极大的cpu开销,所以此处我们需要研究出另外的索引方案来得到邻居。空间划分的方案主流的有很多,例如四叉树,八叉树,bsp树,四叉树主要用于原创 2016-05-07 14:17:54 · 2822 阅读 · 0 评论 -
游戏底层逻辑,运动&&寻路(五)
终于要开始激动人心的Flocking集群行为了,不过在讨论集群行为之前,我们要先来探讨一些很有意思的哲学逻辑。Emergent Behaviors涌现行为这里先安利一本神作《失控》,看了这本书,我相信对整个人工智能,社会学,人类学和分布式理论都会有极大地认知提高。我们先讲一讲蜂巢现象: 一群蜜蜂,他们并没有中枢参与控制,蜜蜂仅仅能做一些基本行为,例如:四处乱飞,找到视野里的花朵,接收一定范围内其原创 2016-04-20 00:32:36 · 1308 阅读 · 0 评论 -
游戏底层逻辑,运动&&寻路(四)
接着上次的来,我们在群体算法之前把基本的个体运动解决掉。9、WallAvoidance避开墙壁此处的墙被抽象为一条线段,不论你的游戏使用的是一条线段作为墙面的碰撞检测,或者用一个几何形状作为墙面,几何形状我们可以看作多条线段的集合,都可以用此方法。墙类的实现首先是线段类,作为基类,拥有几种几何计算的方法,便于计算平面线段的交点,不多说。struct Seg{ Seg(Point p1, P原创 2016-04-19 13:17:31 · 1607 阅读 · 0 评论 -
游戏AI--决策(1)
机器学习的引入机器学习最近由于AlphaGo和数据挖掘的大热而变得流行起来,然而我们可以让它变得更加cool,在接下来的模块中,我将讲述我对游戏中应用机器学习的理解以及我的现有成果。应用机器学习的意义游戏进行中,尤其是网络游戏,会积累大量的数据,数据赋予了计算机行为意识,而我们如果能“告诉”计算机数据归纳总结的方法,那计算机可能会产生惊人的思维能力,而机器学习就是这样的一种神奇的工具。前景目前的游戏原创 2016-05-26 12:00:51 · 1522 阅读 · 0 评论 -
游戏底层逻辑,运动&&寻路(三)
上篇文章我们解释了几种基本的控制力,今天我们会讨论几种较为复杂的行为,涉及了碰撞,以及辅助图形进行运动控制。7、Wander徘徊(巡逻)徘徊(四处巡逻)是一种很常见的行为,但是要得到smoothly平滑的转向行为,并不是特别容易,这里有一种借用辅助圆实现的平滑移动。如图,我们在物体前面构造了一个辅助圆,我们控制目标点,从而用seek方法控制运动行为,如果我们让目标点在圆周上运动,就可以产生一个力,他原创 2016-04-16 10:42:07 · 4397 阅读 · 0 评论 -
游戏底层逻辑,运动&&寻路(二)
目标驱动产生控制力我们知道一个合理的物理世界的运动不是自发的,也不能是突发的。我们不能突然的moveTo。我们首先知道,由牛顿定理可知,物体的变速需要力的作用,而在游戏世界里,力不是由其他物体施加的,而是由目标驱动的,这一原则将是接下来运动的基本哲学。运动物体我们先抛开实体的详细设计,在控制力实现过程中逐步添加实体属性。 这里有一个简单的可运动物体的设计(省略了ctor&set&get):Movi原创 2016-04-12 09:32:36 · 892 阅读 · 0 评论 -
游戏底层逻辑,运动&&寻路(一)
从今往后的项目,由于需要图形化界面,所以建立在cocos2d 3.4引擎基础之上。 说到运动,不得不复习一下平面向量的有关知识(忘完了,尴尬 ^_^;) 这里我就不多做讲解了,向量方面需要用到点乘,内积,外积,矩阵变换,转角之类的,还好基本的引擎都带有matrix和vector2d的库。先给大家展示一下《游戏人工智能编程》中的例子(自己的还没写好) 此例子中呈现了原创 2016-04-07 21:07:15 · 1203 阅读 · 0 评论 -
cocos2d-x大型地图实现(续)
上次向大家介绍了底层的地图逻辑,这次来看看视觉层面,也就是地图图片的绘制。大型地图肯定不能一次绘制,我的方法是运用缓存然后绘制出“看得到”的地图部分。· 地图分为很多张屏幕大小的图片,在我这里是1000*500,每次只需要绘制四张图片必然能包括屏幕的所有范围,如图: 中间的黑色线框为屏幕,黑白色的方块为地图图片下面是具体实现:#ifndef _VISION_MAP_H_#define _VISI原创 2015-11-23 16:27:27 · 1335 阅读 · 0 评论 -
cocos2d-x大型地图的实现
所谓大型地图,是指类似于pc端沙盒游戏那样的地图。需要加载大量的图片资源。而cocos并不是针对这样的游戏设计(现目前手机端很少有2d的类似游戏)。笔者最近再开发一款类似《饥荒》的生存类游戏,所以涉及到大型地图的实现,下面来和大家聊一聊我自己的实现方式。· 首先是底层地图实体的逻辑,要实现物体的碰撞,我使用了方格数组来储存地图的相应信息:struct MapRect{ LandType l原创 2015-11-23 15:33:27 · 1399 阅读 · 0 评论 -
Cocos2dx解决VS无法加载pdb符号库问题
首先禁用windows远程符号服务器,工具->选项->调试->符号,吧Microsoft符号服务器的勾取消。然后去下载windows开发者调试符号包:http://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/Windows_Win7SP1.7601.17514.101119-1850.AM原创 2015-10-25 22:02:02 · 603 阅读 · 0 评论 -
cocos场景替换顺序(坑)
填坑最近在写一个投篮的游戏,由于自己写了一个简单的物理模块,实体内存管理没有使用cocos的内存池,然后在场景替换时遇到了一些坑。onEnter和onExit1、cocos的onEnter是在init函数执行之后执行的,所以常常把一些逻辑放到onEnter中开始执行,比如schedule,这样可以避免cocos的node还没加载就进行逻辑判断。 2、在执行replaceScene时,cocos先加原创 2016-11-07 14:58:51 · 736 阅读 · 0 评论