Cocos2d-X与游戏开发cocos2d-Luacocos2d

cocos2d-x lua 程序中加载 动画

2017-12-14  本文已影响5人  亮亮同学

cocos2d-x技术群新群:117871561
c++技术交流群:593010226

function GameViewLayer:showStart()

     self._isStartShowing = true
--读取cocostudio导出的动画文件
      local startshow = cc.CSLoader:createNode(cmd.RES_PATH.."game/beginAction.csb")
     :addTo(self)
     :setPosition(cc.p(627,450))
--读取动画的Timeline
     local startshowAnction = cc.CSLoader:createTimeline(cmd.RES_PATH.."game/beginAction.csb")
--播放动画函数
      startshow:runAction(startshowAnction)
--播放到70帧结束
      startshowAnction:gotoFrameAndPlay(0,70,false)
    
end


另外的

--在lua里面没法设置结束回调。。。但是你可以在结束的那一帧设置一个帧事件  字符串 你随便,用上面的函---数判断下你设置的最后一帧的字符串,就知道是不是最后一帧了。

--给动画设置帧事件的回调
startshowAnction :setFrameEventCallFunc( function( event )
local eventName = event:getEvent();
-- eventName 得到的就是在编辑器里设置的帧事件字符串
print( "eventName = " .. tostring( eventName  ) );
end);

--c++几个播放函数
C++里面有很多的播放函数
/** Goto the specified frame index, and start playing from this index.
     * @param startIndex The animation will play from this index.
     */
--从某一帧开始播放
    virtual void gotoFrameAndPlay(int startIndex);


    /** Goto the specified frame index, and start playing from this index.
     * @param startIndex The animation will play from this index.
     * @param loop Whether or not the animation need loop. 
     */
--从某一帧开始播放,是否循环播放
    virtual void gotoFrameAndPlay(int startIndex, bool loop);


    /** Goto the specified frame index, and start playing from start index, end at end index.
     * @param startIndex The animation will play from this index.
     * @param endIndex The animation will end at this index.
     * @param loop Whether or not the animation need loop. 
     */
--从某一帧开始播放,在某一帧结束,是否循环播放
    virtual void gotoFrameAndPlay(int startIndex, int endIndex, bool loop);


    /** Goto the specified frame index, and start playing from start index, end at end index.
     * @param startIndex The animation will play from this index.
     * @param endIndex The animation will end at this index.
     * @param currentFrameIndex set current frame index. 
     * @param loop Whether or not the animation need loop. 
     */
    virtual void gotoFrameAndPlay(int startIndex, int endIndex, int currentFrameIndex, bool loop);
--  上面的都是通过帧播放,
  virtual void play(std::string animationName, bool loop);
--  这个函数是通过名字播放

--在lua里可以扩展这个播放函数

上一篇下一篇

猜你喜欢

热点阅读