导出数据在代码中加载-骨骼动画在cocos中加载

导出数据在代码中加载-骨骼动画在cocos中加载,第1张

概述使用cocos v2.x发布的CSB资源更换了加载方式,需要用CSLoader来加载。目前的cocos支持的语言有C++、js、lua, 编辑器默认导出的格式为csb、json,下面来分语言介绍如何在引擎加载编辑器导出的数据: C++(仅能加载csb数据): #include "ui/CocosGUI.h"#include "Cocos Studio/Cocos Studio.h"using

使用cocos v2.x发布的CSB资源更换了加载方式,需要用csloader来加载。目前的cocos支持的语言有C++、Js、lua, 编辑器默认导出的格式为csb、Json,下面来分语言介绍如何在引擎加载编辑器导出的数据:

C++(仅能加载csb数据):

#include "ui/CocosGUI.h"#include "Cocos Studio/Cocos Studio.h"using namespace cocos2d;using namespace Cocos Studio::timeline;voID myScene::initFunc() {      //通过csb创建场景     Node *rootNode = csloader::createNode("MainScene.csb");     this->addChild(rootNode);     //通过csb创建动画      ActionTimeline *action = csloader::createTimeline("MainScene.csb");      rootNode->runAction(action);      //同一个文件创建的节点只能使用同一个文件创建的动画。      //从第0帧循环播放动画     action->gotoFrameAndplay(0,true);}

Lua(仅能加载csb数据和lua文件):

  加载csb:

--相关代码在src\packages\mvc\VIEwBase.lua文件    function VIEwBase:createResoueceNode(resourcefilename)        if self.resourceNode_ then            self.resourceNode_:removeSelf()                self.resourceNode_ = nil        end        -- 通过csb创建场景        self.resourceNode_ = cc.csloader:createNode(resourcefilename)        self:addChild(self.resourceNode_)        -- 通过csb创建动画        local action = cc.csloader:createTimeline(resourcefilename)        self.resourceNode_:runAction(action)        --同一个文件创建的节点只能使用同一个文件创建的动画。         --从第0帧循环播放动画        action:gotoFrameAndplay(0,true)        assert(self.resourceNode_,string.format("VIEwBase:createResoueceNode() - load resouce node from file \"%s\" Failed",resourcefilename))        self:addChild(self.resourceNode_)    end

  加载lua(去商店下载Lua导出插件):

--相关代码在src\app\vIEws\MainScene.lua文件   -- 注:这里 MainScene.lua 为发布出来的 Lua 代码文件。您可以在发布目录中找到它。       MainScene.RESOURCE_filename = "MainScene.csb" 修改为           MainScene.RESOURCE_filename = "MainScene.lua"   --相关代码在src\packages\mvc\VIEwBase.lua文件:       function VIEwBase:createResoueceNode(resourcefilename)       if self.resourceNode_ then            self.resourceNode_:removeSelf()                self.resourceNode_ = nil       end       -- 通过lua创建场景       local scene=require(resourcefilename)       local gameScene=scene.create(nil)       -- 通过lua创建动画       gameScene.root:runAction(gameScene.animation)       --同一个文件创建的节点只能使用同一个文件创建的动画。        --从第0帧循环播放动画       gameScene.animation:gotoFrameAndplay(0,true)       self.resourceNode_=gameScene.root       assert(self.resourceNode_,resourcefilename))       self:addChild(self.resourceNode_)    end

Js(仅能加载Json数据):

//相关代码在src\app.Js文件var HelloWorldLayer = cc.Layer.extend({    sprite:null,ctor:function () {        //////////////////////////////        // 1. super init first        this._super();        /////////////////////////////        // 2. add a menu item with "X" image,which is clicked to quit the program        //    you may modify it.        // ask the window size        var size = cc.winSize;        //通过Json创建场景        var mainscene = ccs.load(res.MainScene_Json);        //获取动画        var action = mainscene.action;        if(action){            //绑定动画            mainscene.node.runAction(action);            //同一个文件创建的节点只能使用同一个文件创建的动画。             //从第0帧循环播放动画            action.gotoFrameAndplay(0,true);        }        this.addChild(mainscene.node);        return true;    }});

注意:

您可以在发布工程目录的res子目录中找到发布出来的csb/Json文件。

2.1及其以上版本的cocos导出的数据,Cocos 2d-x 3.4及其以上版本和Cocos 2d-Js 3.3及其以上的版本均可以加载。

Cocos v2.x假定在编辑器里边的资源目录即游戏的最终的目录结构,因而如果你修改了导出资源的目录则需要编辑器目录也需要跟着修改。也可以用addSearchPath来把你的路径添加到fileUtils中,但要注意文件名冲突。
本文转自:http://www.cocos.com/doc/article/index?type=Cocos%20Studio&url=/doc/cocos-docs-master//manual/studio/v4/chapter3/HowToCode/LoadExportData/zh.md 总结

以上是内存溢出为你收集整理的导出数据在代码中加载-骨骼动画在cocos中加载全部内容,希望文章能够帮你解决导出数据在代码中加载-骨骼动画在cocos中加载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存