2015-05-11 23 views
5

我試圖製作一個iOS應用程序,其中包含兩個物理機構之間的一些碰撞檢測。我希望其中一個物理機構成爲我正在使用的圖像的形狀,但是當我嘗試使用紋理來做到這一點時,它會極大地減慢我的應用程序並最終導致它完全凍結。這些是兩行代碼所造成的:Swift SpriteKit從圖像紋理中製作物理效果太慢我的應用程序太慢

let texture = SKTexture(imageNamed: "image.png") 
physicsBody = SKPhysicsBody(texture: texture, size: size) 

但是,如果我這兩行更改爲類似

physicsBody = SKPhysicsBody(rectangleOfSize: size) 

然後一切都運行完美的罰款。有沒有其他人有這個問題和/或找到解決方案?

+0

這是發生在移動身體,碰撞或者......時發生的嗎?我只是測試了這一點,我無法產生你在說什麼。從紋理創建物理體是昂貴的,但它不應該僅僅因爲一個物理體而減慢你的應用。 ?嘗試使用空白的項目,並一步一步來。首先從紋理和檢查做一個物理機構會減慢應用程序的速度。如果沒有,繼續往前走,通過沖動來移動身體。如果一切正常,嘗試進行碰撞。等等。這樣你就可以確定是什麼造成了問題,因爲你正在做的事情應該起作用。祝你好運! – Whirlwind

+0

我也遇到過同樣的問題,當我在場景中添加了大約10個三角形尖刺時。 –

回答

5

這可能是由於您的紋理的複雜性質,但很難說沒有看到它。正如Whirlwind所說,它可能不會導致如此顯着的放緩,但如果沒有進一步的信息就很難解決。

解決從紋理中創建SKPhysicsBody的方法是使用在線工具從路徑構建主體。我個人使用this tool。這可能是一個體面的工作。