![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Cocos2dx Lua
hello_金吒
这个作者很懒,什么都没留下…
展开
-
Lua 面向对象(class)
(一)class() 定义纯 Lua 类基类:--定义一个名为 Shape 的基础类local Shape = class("Shape") --这是一个纯Lua类--ctor()是类的构造函数,在调用Shape.new()创建Shape对象实例时自动调用function Shape:ctor( shapeName ) self.shapeName = shapeN...原创 2020-03-04 17:07:07 · 1619 阅读 · 1 评论 -
以固定宽度填充ccui.Text,宽度不够时会截取并添加ending(...)
-- 以固定宽度填充ccui.Text,宽度不够时会截取并添加ending-- width可选,默认获取field的宽度-- ending可选,默认使用"..."function ViewUtil.fixedWidthText(field, str, width, ending)--控件、字符串、控件显示文本的宽度、以什么结尾 if type(width) ~= "number" t...原创 2018-04-10 16:13:28 · 312 阅读 · 0 评论 -
Lua 点调用和冒号调用的区别
object.func_name <==> object.func_name(arg1,arg2...)object:func_name <==> object:func_name(self,arg1,arg2...)点定义函数 ->需要显示传递或接收self冒号定义函数 -> 可以省略self参数(冒号的作用:定义时,给函数添加隐藏的第一个参数self;调用...原创 2018-04-10 16:33:30 · 1167 阅读 · 0 评论 -
cocos2dx 如何实现跨平台?
Linux和Android平台cocos2dx程序的入口都是在main.cpp中实现的//Linux平台关键代码int main(int argc,char *argv){ AppDelegate app; return Application::getInstance()->run();}//Android平台关键代码void cocos_android_app_i...原创 2018-04-10 17:31:46 · 2503 阅读 · 0 评论 -
cocos2dx 程序的结束流程
程序运行期间,由mainLoop方法维持运行着游戏之内的各个逻辑,当在弹出最后一个场景,或直接调用CCDirector::end()方法之后,触发游戏的清理工作,执行PurgeDirector()方法,从而结束了CCEGLView运行(注意:不同平台不同封装,PC端使用OpenGL封装,移动端使用OpenGLES封装),调用End()方法,从而直接执行exit(0),退出游戏进程,从而结束整个程序...原创 2018-04-10 17:44:05 · 1156 阅读 · 0 评论 -
cocos2dx 引擎渲染流程
cocos3.x版本的渲染是将所有需要渲染的node先通过各种RenderCommand封装起来,然后引擎将这些RenderCommand添加到一个队列中存了起来,这个队列叫CommandQueue;渲染前根据ID对RenderCommand进行排序,然后再进行渲染,整个渲染流程就是在CCApplication类文件run()方法中开始的cocos2dx整个工程是运行在一个单线程里的,也就是我们通...原创 2018-04-10 18:49:18 · 1882 阅读 · 0 评论 -
Cocos2dx 场景切换 pushScene&popScene、replaceScene
原创 2018-04-10 21:26:40 · 1420 阅读 · 0 评论 -
UserDefault 存储数据
UserDefault 是Cocos2d-x引擎提供的持久化方案,存储所有游戏通用的用户配置信息(例如音乐和音效配置)本质是一个XML文件,它将每个键值对以节点的形式存储在外存中。cocos2dx 3.2 的UserDefault在项目 cocos2d\cocos\base 路径下有:CCUserDefault.cpp -> 除IOS,MAC,Android之外的其他平台调用文件 ->...原创 2018-04-11 14:31:03 · 738 阅读 · 0 评论 -
cocos2dx 内存管理
方法一:引用计数(Reference Count)cocos2dx采用的就是引用计数机制,引擎中抽象了一个基类Ref,需要引用计数管理的类都会public Ref继承这个类。Ref的实例包含一个计数器,当新建一个Ref实例的时候,计数器初始化为1,同时Ref提供了修改计数器的接口:(1)Ref::retain() --计数器加1(2)Ref::release() --计数器减1,假如减1后计数为0...原创 2018-04-11 15:01:45 · 262 阅读 · 0 评论 -
cocos2dx 纹理缓存
缓存(cache)机制的原理是什么? 把新加进内存的资源做一个hashmap存储,每一个资源加一个key。每次加载资源,先从缓存中寻找,如果找到就直接返回,否则加载到内存后再返回。一、自动缓存纹理直接使用display.newSprite(fileName)创建精灵,引擎内部会自动把纹理加载到缓存中二、手动缓存纹理(1)首先,需要获取引擎的纹理缓存实例local textureCache =...原创 2018-04-11 15:33:10 · 892 阅读 · 0 评论 -
cocos2dx 粒子系统理解
1、粒子系统的原理:在引擎中存在一个粒子池,存放着待激活的粒子,发射器每次从粒子池中取出一个粒子,然后计算赋予粒子的初始属性(速度、大小、方向、生存时间等)后,将粒子发射出去,粒子被发射出去后,会不断地刷新来修正它的属性,当粒子的生存时间结束后,粒子就会死亡,然后重新被粒子池回收,等待下一次激活。2、粒子的主要属性:(a)duration 发射器生命时间,单位为秒,-1表示永久原创 2017-07-03 18:54:01 · 1715 阅读 · 0 评论 -
Lua中判断table是否为空
local table_a = {} 判断一:(错误方法) if table_a == {} then --你会发现你怎么也进不来 条件判断始终返回false,为什么会这样呢? --原因:{}->相当于创建了一个表,只不过这个表的名字是匿名的,你看不到,我们假设它叫table_b --你会发现判断条件变成了原创 2016-04-21 13:35:06 · 13912 阅读 · 0 评论 -
游戏背景模糊层
RenderTexture动态创建纹理CCRenderTexture,它允许你来动态创建纹理,并且可以在游戏中重用这些纹理。 使用 CCRenderTexture非常简单 – 你只需要做以下5步就行了:创建一个新的CCRenderTexture. 这里,你可以指定将要创建的纹理的宽度和高度。.调用 CCRenderTexture:begin. 这个方法会启动OpenG原创 2016-03-17 11:04:30 · 718 阅读 · 0 评论 -
我所理解的cocos2dx屏幕适配
首先:先了解几个概念分辨率:分辨率指的是屏幕图像的精密度,即显示器能显示的像素有多少举个例子:分辨率480*320,意思就是水平方向含有的像素为480个,垂直方向的像素为320个。屏幕尺寸不变的情况下,分辨率越高,显示效果就越精密、细腻。同时分辨率也反映了屏幕的长宽比例(3:2)窗口分辨率:在AppDelegate.cpp中有个设置窗口分辨率的函数applicationDidFin原创 2016-03-23 13:24:25 · 827 阅读 · 0 评论 -
cocos2dx 坐标系相关知识总结
Cocos2dx 中涉及的坐标系主要有四种:OpenGL坐标系:Cocos2d以OpenGL、OpenGLES为图形库,所以它使用OpenGL坐标系不足为怪。GL坐标系原点为屏幕左下角,x轴向右,y轴向上。屏幕坐标系:又称为UI坐标系。原点为屏幕左上角,x轴向右,y轴向下。世界坐标系:又称绝对坐标系。与GL坐标系一致,原点在屏幕左下角。本地坐标系:又称物体坐标系。是相对于父原创 2016-03-23 11:40:49 · 355 阅读 · 0 评论 -
Cocos2d-x Lua 单点触摸 多点触摸 触屏事件(1)
--欲知后续如何,且听下次叨逼叨 。。。原创 2016-04-08 15:24:25 · 1737 阅读 · 1 评论 -
Cocos2d-x Lua 触摸事件
原创 2016-04-08 15:39:02 · 518 阅读 · 0 评论 -
Cocostudio使用简介
Cocos Studio是由触控科技引擎团队研发的一款基于Cocos 2d-x的一套专业的永久免费的游戏开发工具集,帮助开发者快速创建游戏资源,将大部分繁琐的游戏开发工作使用编辑器来快速制作,Cocos Studio包含了游戏开发中核心的几个游戏编辑器,UI编辑器、动画编辑器、场景编辑器、数据编辑器,用于处理游戏中的动画资源、UI界面、游戏场景、游戏数据.极大地提高了游戏的开发效率和品质的原创 2016-04-18 18:59:41 · 7139 阅读 · 0 评论 -
Cocos2d-x 容器(一)
Cocos2d-x 容器原创 2016-04-19 17:34:05 · 467 阅读 · 0 评论 -
Cocos2d-x 容器(二) Vector
cocos2d::Vector是一个封装好的动态增长的、顺序访问的容器。下一节:Cocos2d-x 容器(三)Map原创 2016-04-19 18:02:46 · 352 阅读 · 0 评论 -
Cocos2d-x 容器(三) Map
Cocos2d-x 容器 Map原创 2016-04-19 18:37:02 · 354 阅读 · 0 评论 -
【Cocos2dx 3.3 Lua】定时器事件
(1)self:scheduleUpdateWithPriorityLua(update, priority) > 参一:刷新函数 > 参二:刷新优先级 其中 self 为 Node类 的子类。 该方法默认为每帧都刷新一次,无法自定义刷新时间间隔。 (2)scheduler:scheduleScrip原创 2016-03-17 09:59:44 · 932 阅读 · 0 评论