2013-08-04 53 views
0

嘿,我想知道是否有辦法告訴當前分配給特定精靈幀的名稱。 我想要做的是有一個,如果類似Cocos2d當前精靈幀檢測

if(CGRectIntersectsRect([Player1 boundingBox], [Player2 boundingBox] && Player1.frame == Player2.frame){ 
    //Do something 
}else if(CGRectIntersectsRect([Player1 boundingBox], [Player2 boundingBox] && Player1.frame != Player2.frame{ 
    //Do something else 
} 

聲明不幸的是我不知道該怎麼做到這一點的正確方法是。我可以得到當前精靈幀的實際名稱嗎?即。 @「Frame1.png」,所以我可以將它與它與幀名稱相沖突的精靈進行比較? 也抱歉,如果我使用框架錯誤的術語,我的意思是像精靈表,即精靈的圖像。 spriteWithSpriteFrameName。

回答

0

我不確定它是否是CCSprite的屬性,你將不得不檢查文檔,但是一個簡單的解決方案是使用繼承和繼承CCSprite。

添加你想要的屬性,所以imageName屬性,改變你的CCSprite分配使用新的子類精靈,然後你就可以訪問屬性。不要忘記進口。

此外,您應該使用CGRectEqualToRect (CGRect rect1, CGRect rect2);檢查是否相等。根據你的精靈,你可能需要正確的碰撞檢測,以避免CGRect方法不會執行的透明度碰撞檢測。

希望這會有所幫助。

0
CCSpriteFrame* frame = sprite.displayFrame; 
NSString* frameName = frame.textureFilename; 

我不確定這是否會返回單個幀名稱。如果它只返回阿特拉斯紋理文件名,那麼你運氣不好。您必須修改CCSpriteFrame代碼以包含框架名稱屬性。