怀疑发现了BUG:
quick cocos2dx 2.2.5 获取C++对象返回为CCPoint/CCSize时不好使
例如SoldierAnimation是CCSprite的派生类
SoldierAnimation = class("SoldierAnimation", function(artId, category)
display.addSpriteFramesWithFile(artId .. ".plist", artId .. ".pvr.ccz")
local frameSprite = display.newSprite("#"..artId .. "_wait_1.png")
return frameSprite
end)
```
结果直接对SoldierAnimation 对象调用getPosition会返回nil,而改成这样才生效
function SoldierAnimation:getPosition()
local x = self:getPositionX()
local y = self:getPositionY()
return ccp(x,y)
end
```
CCSize对象也有类似的问题
self.virtualSize = self:boundingBox().size
```
如果在sprite 上播放动画的话,这个virtualSize 在后面使用的时候居然会变化,好像是个指针一样...
所以必须如此实现
local size = self:boundingBox().size
self.virtualSize = CCSize(size.width, size.height)
```
当然也有可能是我的代码里面混用了CocoStudio和quick的newSprite对象,导致必须添加的奇葩代码之二?
最后:根据经验,怀疑CCRect可能也有类似的问题,还请一并看看?