【COCOS2DX-LUA 脚本开发之六】利用LUA强转函数解决使用CCNODE报错或无法正常使用以及简单介绍 QUICK-COCOS2D-X 与 OPENQUICK 两款LUA免费开源框架

简介:
本站文章均为  李华明Himi  原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/iphone-cocos2dx/1289.html

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

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

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

 

在Lua中代码如下:

如上的代码一对比很多童鞋就看出来了,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更适合一些,而且也是当前开发者使用居多的一款,  当然这大家可以更深入的去研究。

相关文章
|
12月前
|
缓存 NoSQL 搜索推荐
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
648 6
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
768 13
|
监控 安全
公司用什么软件监控电脑:Lua 脚本在监控软件扩展功能的应用
在企业环境中,电脑监控软件对保障信息安全、提升效率至关重要。Lua 脚本在此类软件中用于扩展功能,如收集系统信息、监控软件使用时长及文件操作,向指定服务器发送数据,支持企业管理和运营。
218 6
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
Lua的面向对象编程、协同线程与协同函数的概念和使用,以及Lua文件I/O操作的基本方法。
212 4
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
196 2
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
787 1
|
存储 NoSQL Redis
Redis的Lua脚本有什么作用?
Redis Lua脚本用于减少网络开销、实现原子操作及扩展指令集。它能合并操作降低网络延迟,保证原子性,替代不支持回滚的事务。通过脚本,代码复用率提高,且可自定义指令,如实现分布式锁,增强Redis功能和灵活性。
558 1
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
668 0
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
|
JSON 监控 数据格式
使用Lua代码扩展上网行为管理软件的脚本功能
本文介绍了如何使用Lua脚本增强上网行为管理,包括过滤URL、记录用户访问日志、控制带宽和自动提交监控数据到网站。Lua是一种轻量级语言,适合编写扩展脚本。文中提供多个示例代码,如URL过滤器、用户活动日志记录器和带宽控制器,帮助用户根据需求定制网络管理功能。通过这些示例,用户可以快速掌握Lua在上网行为管理中的应用。
343 4