
cocos+lua
fengkingj
写博客是很好的学习方法
展开
-
cocos2d+lua绑定关系理解——类型判定
cocos创建一个新的绑定类型的时候会在注册表(Rigister)中进行如下操作1 创建绑定对象对应的元表,例如["cc.ClippingNode"] = {--table: 0x00320220 ["__le"] = "function: 0x00320328", ["tolua_ubox"] = "table: 0x002c86f0" , -- loop table,...原创 2019-03-20 17:25:53 · 596 阅读 · 0 评论 -
cocos2d+lua绑定关系理解——二
全面的理解cocos+Lua的绑定关系需要更加深入理解cocos和lua的交互中所操作的表(table),这些表大多存在于注册表中。首先来看cocos中的对象对应lua中的userdata,绑定的元表以cc.Sprite为例["cc.Sprite"] = {--table: 0x0032c690 ["new"] = "function: 0x00b9b168", ["...原创 2019-03-20 16:54:56 · 1218 阅读 · 0 评论 -
cocos2d+lua绑定关系理解——一
通过lua代码往上层追溯,从整体上理解cocos2d+lua的接口设计思路和整套代码的运行流程。首先来看一句简单的lua代码local spr = cc.Sprite:create()cc是一张表(table),表(table)是lua里面唯一的数据结构,cc存于_G中,_G是lua里面的全局表,cc表中存了所有cocos绑定的常量和“类”。Sprite也是个表(table),S...原创 2019-03-20 16:21:12 · 1740 阅读 · 0 评论 -
cocos2d+lua绑定关系理解——class函数
class函数返回一个具有new函数和create函数的table。调用class函数的时候可以传入function类型或table类型的参数,可以实现类似c++"继承"效果。下面是class函数使用的两个示例示例一local MyLayer=class("MyLayer", function() return cc.Layer:create()end)local ...原创 2019-03-19 16:19:42 · 363 阅读 · 0 评论 -
cocos2d+lua绑定关系理解——性能优化建议
1全局变量local化在lua中使用全局变量都会在全局表(_G)中进行检索,一个函数如果多次使用同一个全局变量应该将其local化存于函数栈中。例如 local cc = cc,后面关于cc的调用会直接在函数栈中直接获取cc表,省去了检索全局表的操作。包括lua提供的库函数例如local tableinsert = table.insert2善用upvalueupda...原创 2019-03-20 20:00:20 · 497 阅读 · 0 评论