周末在家除了看犯罪心里和反恐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: