特点经过上面几节课的学习,我们知道Cocos2d-x的内存管理可以交给AutoReleasePool、Vector、Map进行管理,然后这三个都是容器的概念,Cocos2d-x的元素是否可以自己管理自己的内存呢?答案是可以的,那么就是RefPtr,Cocos2d-x中一种类似shared_ptr指针...
和大家一起分享我的总结:Cocos2d-x开发知识点总结1. CCMoveTo动作运行多次,位置会发生诡异的变化,比如变成目标位置的几倍。解决办法,确保每次CCMoveTo之前停止之前的动作。2. 在onEnter()函数中,忘记调用父类的onEnter()函数会导致动画等无效。还有在init()函...
VectorVector是3.x系列之后提出来的新的数据结构,综合了std::vector有很多函数,可以很方便的进行很多数据操作,也融入了Cocos2d-x的内存管理。Vector区别于普通的类型sprite等,Vector是用于存储一组数据的容器,顾名思义也就理应当管理一大块内存。比如可以将5个...
C++的内存管理机制优点:C++使用new在运行时,从堆里给程序分配一块内存空间,开发者可以直接拿到内存的地址进行操作,直接访问内存地址的方式可以提高内存使用的灵活性,当这块内存不再使用的时候使用delete将内存释放。缺点:极易出错,比如出现:野指针:指针指向的内存已经被释放,而其他指针可能仍然指...
cocos2d-x渲染优化左下角显示fps的意思是:第一行代表渲染多少次(感觉是调用了多少次draw),次数越少越好,第二行代表每渲染一次花费的时间,时间越少越好,第三行代表者每秒显示的频率,越大越好。如果直接创建sprite::create(文件名),如果使用同一个文件创建2个sprite,那么会...
构建游戏时,Unity 会保存有关资源的许多元数据(导入设置,其他资源的链接等)。如果想将资源用到不同工程中,有一个具体办法。以下是如何在工程之间轻松移动资源又保留所有这些信息的步骤。在工程视图 (Project View) 中选择想要导出的所有资源文件。在菜单栏中选择资源(Assets)->...
从 Maya 中导入对象Unity 可直接导入 Maya 文件。开始时只需将 .mb 或 .ma 文件放到工程的资源 ( Assets) 文件夹下。 切换回 Unity 时,场景自动导入并显示在工程视图 (Project view) 中。要在 Unity 中查看模型,只需将其从工程视图 (Proje...
热更新介绍什么是热更新?游戏客户端启动时,主动请求服务端检查版本号,并更新资源到本地。应用场景:情况一:游戏客户端已经发布了,但突然发现有个比较严重的bug需要修复。这时需要更新游戏的代码(Lua代码)。情况二:情人节到了,需要搞个活动,在游戏中营造一个节日氛围。这时,需要更新游戏资源或增加一些功能...
我们来想象一个场景。在加载一个模型时,你需要从网上下载,但是你并不知道下载需要花费多少时间。你所知道的是,当下载完成后,就可以把模型放在特定位置上,开始游戏。那么,我们怎样才能判断下载完成呢?一个简单的方法是,在每一帧的时候都判断下载是否完成,完成后就可以继续后面的工作。因此,我们可以这样做,我们告...
UI树构造完成后的一个重要任务是决定UI元素的绘制顺序,本节课将介绍如何通过UI树得到UI元素的绘制顺序以及得到绘制所需的从本地坐标系到世界坐标系变换的变换矩阵。课程笔记 — UI元素的绘制顺序_localZOrder作为UI元素的逻辑深度,_orderOfArrival代表着开发者将UI元素加入U...
今天我们用Unity制作一个简单的NPC人物模型制作一个仿版的NPC人物,教程如下:先看一下教程里面的最终效果。下面是我在自己的工程中实验的结果。中间是游戏角色,两遍两个就是NPC啦。这种技术得到的效果和贴图关系很大,所以如果效果不好再画一张贴图吧2. 实现实现非常简单,一共包含三个部分:改变Mes...
和备忘录篇一样,这篇文章旨在总结Unity开发中的一些设计技巧,当然这里只是我通过所见所闻总结的东西,如果有不对之处欢迎指出。技巧1:把全局常量放到一个单独的脚本中很多时候我们需要一些常量,例如是否输出Log,正式服务器和测试服务器的IP等等,我们可以把这些常量写在同一个脚本里,并设置属性为publ...
课程笔记 — UI树的构成树是一堆节点的组合,每个节点(除了跟节点)都有一个父节点,跟节点没有父节点;每个节点(除了叶子节点)都有一个或多个子结点,叶子节点没有子结点。Cocos2d-x中每个场景都可以看做是一棵独立的树,每个节点都是Node子类的实例化,跟节点是Scene,其父节点为空。Node的...
游戏是由UI构成的,每个UI元素最主要的属性就是位置和样式,本节课讲从Cocos2d-x源码角度介绍如何确定一个UI元素的位置。课程笔记 – UI元素const Vec2& Node::getAnchorPointInPoints() const{return _anchorPointInP...
这篇文章针对上面的问题修改了该Shader,并将各个变量作为Shader面板中的可调节变量,可视化编辑闪光效果。我们来学习LOGO闪光效果。代码Shader “Custom/LogoFlash” {Properties {_MainTex (“Base (RGB)”, 2D) = “white” {...
  好久没有碰过Unity,今天学习Unity的简单贴图动画的应用var frames : Texture[]; //声明一个数组,存放贴图,声明后,在inspector会看到一个frames的数组,数组的长度可以自己填,填1,就代表只有1张图,可以把一张texture拖进去,填2就代表2张,以此类...
今天,我们来讨论了有关unity mathf 函数的知识,上网查了下,下面我给大家 汇总一下Mathf.Abs绝对值计算并返回指定参数 f 绝对值。Mathf.Acos反余弦static function Acos (f : float) : float以弧度为单位计算并返回参数 f 中指定的数字的...
游戏过程中,偶尔需要截图和保存图片,但是Cocos2d-x本身对这方面的支持比较少,所以只能用比较特殊的方法来保存。RenderTextureRenderTexture是一个通用渲染对象,可以通过构建一个RenderTexture对象,进而把要渲染的东西填充进去,在渲染开始前调用call函数,调用c...
Unity自身进行优化Draw Calls,但是对于动态对象,Unity在这方面没有处理,这就需要我们自己去实现,实现的原理就是首先去遍历每个对象的SkinnderMeshRenderer,然后将其所有的动态对象组合成一个大的对象并且将骨骼动画赋值给他,这样,我们就实现了动态对象的优化[C#] 纯文...
这段时间很忙,各种麻烦事弄得头晕脑胀,突然发现已经很久没在论坛上发布教程。这段时间也收到许多朋友的来信,有的朋友问到如何实现一个直升机飞行控制,就这个问题我写了一个简化的直升机飞行控制案例。 创建抽象的直升机模型,其中包括机身,螺旋桨和位于机尾的尾桨。直升机的飞行原理如下:固定翼航空器的飞行升力源...