我遇到了與確定CCSprite父節點的比例值有關的問題。Cocos2d精靈的父母沒有反映真實的比例值
在我的遊戲中,我有一個擴展CCLayer類並基於遊戲觸發器擴展自己的類。該CCLayer的某些子精靈的數學計算在我縮放父CCLayer時會變得不準確。例如,我有一個坦克精靈,需要確定它的父節點內的觸發點。
每當我縮放圖層並詢問圖層的縮放值時,它們都是準確的。但是,當我針對其父級的比例值對該圖層中包含的精靈進行輪詢時,它們總是顯示爲一個。
// From within the sprite
CCLOG(@"ChildSprite-> Parent's scale values are scaleX: %f, scaleY: %f",
self.parent.scaleX, self.parent.scaleY); // Outputs 1.0,1.0
// From within the layer
CCLOG(@"Layer-> ScaleX : %f, ScaleY: %f , SCALE: %f",
self.scaleX, self.scaleY, self.scale); // Output is 0.80,0.80
任何人都可以向我解釋爲什麼會出現這種情況嗎?我不明白爲什麼這些值是不同的。也許我完全不理解Cocos2d的內部設計。任何幫助表示讚賞。
編輯:這是我使用插入一個精靈到層
EarthTank * earthTank = [[EarthTank alloc] initWithWorld:self->world
atLocation:spawnPointRight withID:pid];
earthTank.tankShaft = shaft;
[earthTank createInitialArsenal:tempPlayer];
[earthTank addAndAlignTankShaft];
[spriteBatchNode addChild:earthTank z:2];
的代碼,所以這個問題是self.parent(稱爲精靈之內)引用SpriteBatchNode而不是層本身。如果您將調用更改爲self.parent.parent,則可以找到圖層的真實比例值。
感謝您的回覆。這可能與我使用spritBatchNode的事實有關嗎?這將意味着父母是spriteBatchNode,其規模將爲1 –
好吧,將調用更改爲self.parent.parent,並且精確地反映了量表。感謝您指點我正確的方向。 –