我正在用Objective-C編寫一個簡單的遊戲,使用cocos2d。在這場比賽中,我給了敵人精靈隨機的位置。爲了避免不同敵人的重疊,我寫了一個檢查來確保新的精靈的CGRect與其隨機位置不會與任何其他精靈的CGRect重疊。如何在初始化之前獲取CCSprite的大小?
我的問題是如何在初始化新精靈之前獲得CGRect的大小?如果你使用ccbi文件(cocosbuilder)初始化精靈,你如何做到這一點?
我之前做過的是在初始化新的精靈之前,我用png文件初始化了一個臨時精靈,它顯示了敵人的第一幀(每一幀都有相同的大小)。然後就像這樣使用它的大小:tempSprite.boundingBox。雖然它運行良好,但我認爲在初始化每個新的敵方精靈之前製作tempSprite效率並不高。
現在我試圖用cocosbuilder轉換我的遊戲(因爲使用ccbi文件可以更容易地調整動畫)。如何在初始化之前知道精靈的大小?我想我仍然可以使用[CCBReader nodeGraphFromFile:@「enemySprite.ccbi」]製作tempSprite,並使用tempSprite.boundingBox來獲取它的大小。但是這是否正確嗎?它對CPU和內存資源非常浪費。更新:我嘗試了我的方式不起作用。由於邊界框大小值是(0,0)(位置值是正確的)。
精靈已經批量存儲了嗎?如果是這樣,那麼它將不需要額外的資源來初始化以獲得大小。 –
是的,我可以從例如第一幀的png文件中獲得正確的大小。但是我有另一個問題。由於ccbi文件的大小爲0,我無法觸摸它(觸摸紋理不會被視爲「觸摸」)。 – ArtS