【COCOS2DX-LUA 脚本开发之六】Lua强转函数解决报错及介绍两款框架

简介:

Him 的Cocos2dx-Lua群中有童鞋出现一个问题,问题是当他在Lua项目中利用Lua创建一个局部变量CCSprite或者CCLayer等CCNode,然后在其他的函数中通过其索引取出之前创建过的CCSprite或CCLayer等,取出后进行设置设置透明、坐标、缩放、runAction等大部分几率都出现无法正常缩放、透明等这些操作。群友尝试了很多方式,都没有解决掉。

其实对于此种问题很多刚接触Lua开发cocos2dx的开发者都很容易遇到,其实就是个强转的问题,例如:

在 cpp中利用getChildByTag 函数获取目标tag的ccnode:

1
2
CCSprite* sp =  (CCSprite*)node->getChildByTag(x);
CCLayer* layer =  (CCLayer*)node->getChildByTag(x)

 

在Lua中代码如下:

1
2
local sp = node:getChildByTag(x)
local layer =node:getChildByTag(x)

如上的代码一对比很多童鞋就看出来了,Lua形式的并没有强转类型!是的,就是因为没有强转造成。

还有一些童鞋该疑惑了“为什么cocos2dx引擎示例中就没有使用强转呢?”

原因是由于示例基本都是采用成员变量进行的,局部变量还是有强转的操作的。

那么Lua中强转一个类型函数如下:

   tolua.cast(object,”CCSprite”)  

    第一个参数是需要强转的对象  ,  第二个参数是强转的目标类型

例如我们将x 强转 CCSprite,则: tolua.cast(x,”CCSprite”)

 

quick-cocos2d-x 与 OpenQuick 

OpenQuick:

OpenQuick 首页及下载地址:  https://github.com/marmalade/OpenQuick

quick-cocos2d-x :

quick-cocos2d-x 首页及下载地址 : https://github.com/dualface/quick-cocos2d-x
简单的说: OpenQuick 与 quick-cocos2d-x 都是针对 2D游戏 基于 Lua 的免费开源框架,且都支持c2dx。

OpenQuick :主要是将所有的C2dx的类的基础上进行了再次封装成Q开头文件,开发者需在此基础上进行使用开发。

quick-cocos2d-x  : 及时与cocos2dx版本匹配更新,另外它框架比较清晰,便于理解和使用。它所做的不是再次封装,然后尽可能契合cocos2dx,在此基础上做Lua的扩展。

Himi认为quick-cocos2d-x更适合一些,而且也是当前开发者使用居多的一款,  当然这大家可以更深入的去研究。









本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/1174063,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 C语言 图形学
C 函数中如何保存 Lua 的数据(1)
C 函数中如何保存 Lua 的数据(1)
33 0
|
1月前
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
56 0
|
12天前
|
NoSQL Java Redis
lua脚本做redis的锁
这段内容是关于使用Redis实现分布式锁的Java代码示例。`RedisLock`类包含`lock`和`unlock`方法,使用`StringRedisTemplate`和Lua脚本进行操作。代码展示了两种加锁方式:一种带有过期时间,另一种不带。还提到了在加锁和解锁过程中的异常处理,并提供了相关参考资料链接。
17 3
|
14天前
|
存储 NoSQL 数据处理
Redis Lua脚本:赋予Redis更强大的逻辑与功能
Redis Lua脚本:赋予Redis更强大的逻辑与功能
|
28天前
|
监控
通过Lua脚本实现禁止员工上班玩游戏的软件的自动化任务管理
使用Lua脚本,企业可以自动化管理员工行为,防止上班时间玩游戏。Lua是一种轻量级脚本语言,适合编写监控任务。示例脚本展示了如何检测工作时间内员工是否玩游戏,并在发现时执行相应操作,如关闭游戏或发送警告。此外,另一脚本演示了如何将监控数据通过HTTP POST自动提交到网站,以实现有效的行为管理。这种解决方案灵活且可定制,有助于提升工作效率。
96 1
|
1月前
|
NoSQL Java 数据库
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
|
1月前
|
Java API Maven
|
1月前
|
C语言 C++ 索引
C 函数中如何保存 Lua 的数据(2)
C 函数中如何保存 Lua 的数据(2)
21 1
|
3月前
|
存储 NoSQL 关系型数据库
使用lua脚本操作redis
使用lua脚本操作redis
48 0
|
3月前
|
NoSQL Java Redis
Redis进阶-lua脚本
Redis进阶-lua脚本
56 0