Quick Cocos2dx Action相关

周末在家除了看犯罪心里和反恐24小时,啥都没干,为毛在家老是不能安安静静的看书学习敲代码?不知道啊

心好累,感觉学习不下去了。

然后公司上午有半天世界杯决赛假,下午回来更新了svn,没啥工作内容,只好继续学习了。

今天学习了一下在Quick-x中使用Action,之前其实场景转换里面也有这么Action的使用,

但是今天要稍微深入一些,一下是源代码,点击场景然后移动到某点,内容其实是把之前cocos2dx的内容用quick-x实现一遍:

function AnotherScene:onTouch(event, x, y)

    if self.zombie:getActionByTag(100) ~= nill then
        self.zombie:stopActionByTag(100)
    end

    if x < self.zombie:getPositionX() then
        self.zombie:setScaleX(1)
    else
        self.zombie:setScaleX(-1)
    end

    local action = CCMoveTo:create(math.random(1,5), CCPoint(x,y))
    action:setTag(100)
    self.zombie:runAction(action)
    self.animation:play("anim_walk")
end

点击场景的时候,僵尸叔叔会移动到对应的地方,如果在移动过程中点击了场景其他地方,则会根据tag移除正在执行的移动Action,还有一些转向内容之类的。

刚刚加了状态切换的代码,暂时用的是EnterFrame来判断的,不知道这个EnterFrame消耗大不大,反正在AS里面的时候不是万不得已的时候不会用EnterFrame处理逻辑。

代码如下:

function AnotherScene:onEnterFrame(dt)
    if self.zombie:getActionByTag(100) == nil and self.state ~= "idle" then
        self.animation:play("anim_idle")
        self.state = "idle"
    end
end

 

参考了samples里面的nightclub和api文档:

http://quick.cocoachina.com/wiki/doku.php?id=zh_cn:api:ccnode

 完整代码可以参考我的git:

https://github.com/AdoBeatTheWorld/waytomobile/blob/master/projects/game003/scripts/app/scenes/AnotherScene.lua

posted @ 2014-07-14 16:10  Ado_On  阅读(444)  评论(0编辑  收藏  举报