周末在家除了看犯罪心里和反恐24小时,啥都没干,为毛在家老是不能安安静静的看书学习敲代码?不知道啊
心好累,感觉学习不下去了。
然后公司上午有半天世界杯决赛假,下午回来更新了svn,没啥工作内容,只好继续学习了。
今天学习了一下在Quick-x中使用Action,之前其实场景转换里面也有这么Action的使用,
但是今天要稍微深入一些,一下是源代码,点击场景然后移动到某点,内容其实是把之前cocos2dx的内容用quick-x实现一遍:
function AnotherScene:onTouch(event, x, y) if self.zombie:getActionByTag() ~= nill then
self.zombie:stopActionByTag()
end if x < self.zombie:getPositionX() then
self.zombie:setScaleX()
else
self.zombie:setScaleX(-)
end local action = CCMoveTo:create(math.random(,), CCPoint(x,y))
action:setTag()
self.zombie:runAction(action)
self.animation:play("anim_walk")
end
点击场景的时候,僵尸叔叔会移动到对应的地方,如果在移动过程中点击了场景其他地方,则会根据tag移除正在执行的移动Action,还有一些转向内容之类的。
刚刚加了状态切换的代码,暂时用的是EnterFrame来判断的,不知道这个EnterFrame消耗大不大,反正在AS里面的时候不是万不得已的时候不会用EnterFrame处理逻辑。
代码如下:
function AnotherScene:onEnterFrame(dt)
if self.zombie:getActionByTag() == 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: