Cocos Creator 2D摄像机 [Lv.1] 小视图 本系列文章主要实操2D摄像机,在官方Demo的基础上,做了适当的修改,并增加了新的内容。文中对相关知识点进行适当展开,不做深入研究。以实际操作做为出发点,帮助读者快速实现并且掌握2D摄像机。
Cocos Creator JSB [Lv.2] TODO 本文本来是想介绍 JSB自动绑定,但在为 tojs 工具搭建运行环境时,发现对运行环境的要求有些苛刻。python,yaml,cheetah都需要32位的版本,可我机器上装的都是64位的版本。如果重新安装,不确定会对现有的工具有什么影响。故在此只对一些资源、工具以及思路做一些记录,之后如果有心思折腾,再重新整理。
Cocos Creator JSB [Lv.1] (3) 承接上文 Cocos Creator JSB [Lv.1] (2) 在上文中,我们已经跟小姐姐进行了基本的互动。可是光说不练怎么行,本文中我们将要给小姐姐送礼物~
Cocos Creator JSB [Lv.1] (1) 本文主要实操 JSB 的手动绑定,在官方教程的基础上,做了适当的修改,并增加了新的内容。文中对相关知识点进行适当展开,不做深入研究。以实际操作做为出发点,帮助读者快速实现并且掌握 JSB 手动绑定。
Cocos Creator 热更新 [Lv.1] (2) 承接上文 Cocos Creator 热更新 [Lv.1] (1)在上文中对热更新进行了相关的初始化工作,本文在此基础上实现热更新的检测以及更新。
Cocos Creator 热更新 [Lv.1] (1) 本文在官方热更新教程的基础上,做了适当的修改,使得整体的逻辑结构更加清晰。文中对热更新相关的知识点进行适当展开,不做深入研究。以实际操作做为出发点,帮助读者快速实现并且掌握热更新。
快速掌握Lua 5.3 —— 资源管理 Q:Lua的”finalizer”? A:在我们之前看到的使用”userdata”的例子中,我们只关心如何创建并使用”userdata”,从未关心何时以及如何释放我们创建的”userdata”,因为这些事都由Lua的垃圾回收器帮我们处理。然而很多时候,程序并不会这么简单,有可能在其中还会涉及到文件句柄,窗口句柄等,此时这些资源就需要创建者进行管理。 一些面向对象语言提供了析够器用来帮助用户管理
快速掌握Lua 5.3 —— 调试库 (2) Q:如何调试”Closure”的”upvalue”信息? A:--[[ debug.getupvalue(f, up) 返回函数("Closure")"f"的第"up"个"upvalue"的名字和值。 Lua按照"upvalues"在匿名函数中出现的顺序对其编号。如果指定的"up"索引越界,则返回"nil"。 以'('开头的变量名表示没有名字的变量(比如是循
快速掌握Lua 5.3 —— 调试库 (1) Q:什么是活动函数?----------A:程序中被调用但还未执行完成的函数。```function g() --[[ 此时函数"g"被调用但还未执行完成,是活动函数。所以这里获取的是函数"g"的信息。 "debug.getinfo(2)"获取的才是函数"f"的信息。]] local x = debug.getinfo(1, "n") for k, v in pairs(x) d
快速掌握Lua 5.3 —— userdata (2) Q:如何使用"userdata"的"metamethods"?A:我们继续来修改上一节中的例子,这次我们的目标是使用面向对象的方式调用"userdata"的方法。这个目标既可以在Lua中实现,也可以在C库中实现,我们先来看一个比较简单的方式,在Lua中实现。"mylib.c"中代码无需更改,只需要修改"a.lua"中的代码,
快速掌握Lua 5.3 —— userdata (1) Q:什么是"userdata"?A:"userdata"分为两类,"full userdata"和"light userdata"。Lua使用他们来表示C中一些特殊的类型。前面的章节中,我们看到了如何通过C编写新的函数来扩展Lua;使用"userdata",我们将可以通过C编写新的类新来扩展Lua。
快速掌握Lua 5.3 —— 编写提供给Lua使用的C库函数的技巧 (2) Q:什么是”registry”?A:有时候,我们需要在程序中使用一些非局部的变量。在C中我们可以使用全局变量或是静态变量来实现,而在为Lua编写C库的过程中,使用以上类型的变量并不是一个好的方式。首先,这些变量中无法存储Lua的值。其次,这些变量如果在多个Lua状态机中被使用,则很可能造成非预期的结果。 一个替代方案是,将这些值存储在Lua的全局变量中。这种方式解决了上面提到的两个问题,Lua全局
快速掌握Lua 5.3 —— 编写提供给Lua使用的C库函数的技巧 (1) Q:如何在C库函数中灵活的操作Lua的”table”?A:--[[ void lua_settable(lua_State *L, int index); 从虚拟栈中"index"处获得"table",栈顶获得"value", 栈顶下面一个元素获得"key"。相当于在Lua环境中执行"table[key] = value"命令, 设置"table[key]"的过程有可能
快速掌握Lua 5.3 —— 从Lua中调用C函数 Q:Lua调用C函数的两种方式?A:1、程序主体在C中运行,C函数注册到Lua中。C调用Lua,Lua调用C注册的函数,C得到函数的执行结果。2、程序主体在Lua中运行,C函数作为库函数供Lua使用。第一种方式看起来很罗嗦,也很奇怪。既然程序主体运行在C中,而且最终使用的也是C中定义的函数,那么为何要将函数注册给Lua,然后再通过Lua调用函数呢?