Quick-Cocos2d-x,Cocos

Quick-Cocos2dx 社区版 3.6.1 beta1发布

Quick-Cocos2dx-Community 是由泰然网负责开发维护

基于 Quick-Cocos2d-x 引擎的社区Lua增强版。

我们认为:一切导致崩溃,损失流畅度,增加包体积 的行为,都是耍流氓

1450076255464398.png

Quick-Cocos2dx 社区版

版本号:3.6.1 Beta1

首个支持 Luajit 64 的版本

本次更新关键字:第三方库升级

阅读全文»

Quick 社区版 spine 新增 sp.SkeletonData 对象使用说明

自社区版引擎 Quick-Cocos2dx-Community 3.6 Beta1更新以来,就更新 Spine runtime 到了 2.3。

Quick 引擎中也新增了 sp.SkeletonData 对象用于创建 SkeletonAnimation,好东西要分享,所以这里我们就来说说 sp.SkeletonData 的好处和用法。

要知道,创建 Spine 动画有两种方法,一种是直接通过文件创建,另一种则是通过预加载的数据来创建。前者通过加载动作数据马上进行创建,如果 Spine 动画中的 json 文件大小超过一定范围时,会出现卡顿现象,如果动画文件偏小,可以使用这个方法来创建动画。

后者是通过预加载,保存动画数据在 Spine 的 C++ runtime 的spSkeletonData结构中,然后通过这个数据来实现创建动画,这个方法可以在 Spine 动画偏大的情况下使用,以便开发者可以用数据缓存提升Spine的加载速度。

阅读全文»

[BugReport]在quick事件的began中执行带特效的场景切换,第二个场景的第一次触摸事件将无效

重现bug的测试用例

第一个场景代码:

local MainScene = class("MainScene", function()
    return display.newScene("MainScene")
end)

function MainScene:ctor()
    local label = cc.ui.UILabel.new({
            UILabelType = 2, text = "Hello, World", size = 64})
        :align(display.CENTER, display.cx, display.cy)
        :addTo(self)

    label:setTouchEnabled(true)
    label:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
        if event.name == "began" then
            print("replace")
            local scene = require("app.scenes.SecondScene").new()
            display.replaceScene(scene, "splitRows", 0.5)
        end
        return true
    end)
end

function MainScene:onEnter()
end

function MainScene:onExit()
end

return MainScene

第二个场景代码

local SecondScene = class("SecondScene", function() 
    return display.newScene("SecondScene")
end)

function SecondScene:ctor()
    local label = cc.ui.UILabel.new({
            UILabelType = 2, text = "fuck", size = 64})
        :align(display.CENTER, display.cx, display.cy)
        :addTo(self)

    label:setTouchEnabled(true)
    label:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event) 
        print("clicked!!!!!!")
        label:setString("Hello")
    end)
end

return SecondScene

切换到第二个界面后,要点击两次才能打印出 clicked!!!!!!

阅读全文»

[BugReport]LuaJIT 2.1.0-beta1 在 Mac 上已知的 BUG

当在Lua中有一个很长的中文字符串,并且这个字符串需要转换到引擎C++接口去掉用,会触发tolua_tostring的转换掉用。

如下面的测试案例:

cc.ui.UILabel.new({
    UILabelType = 1,
    text = "-游戏规则-\n玩家需要坚持守住自己的堡垒,在堡垒被攻破之前击杀当前关卡所\n有的僵尸。\n玩家可以触摸屏幕进行射击,点击技能图标进行技能的释放。\n如果生命值过低,可以支付少量钻石启用紧急救助,回满生命值。\n\n-游戏技巧-\n炎爆弹会攻击玩家前方区域,大量敌人包围堡垒时使用效果最好。\n急冻弹会困住所有敌人一定时间,尽快提升等级以延长持续时间是\n生存的不二法门。\n兴奋剂不但会提升攻击速度,而且攻击时子弹会进行弯折去跟踪敌\n人,适合地形复杂的关卡。\n绿色变异的敌人将拥有更高的生命值和攻击力。值得庆幸的是他们\n的速度回慢很多。\n红变异的敌人将拥有更高的速度和攻击力,但是他们的防御力非常\n低。\n科学怪人在被攻击后传送到玩家身边,需要注意。\nAPILAS是科学怪人的专属武器,你懂的。\n及时更新武器,升级技能,才能更好的往前走。\n偶尔会有背着宝箱的僵尸,一定要第一时间击杀。会有好东西哟。",
    font = "help/helpTxt.fnt"
})

这时候,在Mac上tolua_tocppstring调用Luajit的tolua_tostring会转换失败。

目前仅在Mac上发现这个问题,其它平台测试正常。

暂时可通过缩短字符串来解决 Mac Player 的调试,或使用win32 player来开发。

[bugfix] Quick 在 Android 5.0下运行提示" cannot locate symbol "MD5_Init" referenced by "libcocos2dlua.so""

存在 bug 的版本

Quick 3.3 与 3.6

bug 将在 Quick-Cocos2dx-Community 3.6.1 中修正。

bug 描述

Quick提供的 proj.android_no_anysdk 工程,默认没启用 CURL 支持,由于 MD5 集成在 CURL 中,在 Android 5系统上会运行会报告下面的错误:

failed: dlopen failed: cannot locate symbol "MD5_Init" referenced by "libcocos2dlua.so"...

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "MD5_Init" referenced by "libcocos2dlua.so"...

阅读全文»

[Bugfix]cc.CardinalSplineTo:create缺失

存在 bug 的版本

Quick-Cocos2dx-Community 3.6 Release。

bug 将在 Quick-Cocos2dx-Community 3.6.1 中修正。

bug 描述

Quick-Cocos2dx-Community 3.6 Release中创建一个样条曲线轨迹动作的时候,调用cc.CardinalSplineTo:create方法提示如下错误:

attempt to call method 'create'(a nil value)

即代码中调用 cc.CardinalSplineTo 的 create 方法会报空值错。
然而CardinalSplineTo::create()方法在c++端是存在的,且调用 cc.CardinalSplineBy:create 方法都能正常创建样条曲线轨迹动作。

阅读全文»

[Bugfix]ccui.Helper 接口获取组件lua_bindings代码出错

存在 bug 的版本

Quick-Cocos2dx-Community 3.6 Release。

bug 将在 Quick-Cocos2dx-Community 3.6.1 中修正。

bug 描述

按理来说,quick 中获取CocoStudio组件的方法应该有3种。

1: 使用传统的getChildByXXX(name/tag) 方法获取。这种方法较麻烦,要一层一层的获取子控件,不能越级获取。

2: 使用 C++ 绑定到 lua 的 ccui.Helper 接口来获取。但 Here is a bug!

阅读全文»

[Bugfix]Quick-Cocos2dx-Community 3.6 release 在Android上不能解密 encrypt_res 加密的资源文件

存在 bug 的版本

Quick-Cocos2dx-Community 3.6 Release。

bug 将在 Quick-Cocos2dx-Community 3.6.1 中修正。

bug 描述

在 3.6 中加入了encrypt_res进行资源加密,
在 FileUtils 中读取文件时会自动判断加密的文件并进行解密。

然而由于 Cocos2d-x 3.3 糟糕的移植层代码,加上我的粗心,没有测试Android上的解密,从到引入了这个bug。

Cocos2d-x 3.3 文件这块的移植层代码存在于cocos/platform下,Android与win32对应的porting代码,错误的override了父类的getStringFromFilegetDataFromFile函数。从而导致解密逻辑被错误的重写。

阅读全文»

?>