2014-09-05 71 views
0

我正在使用加速計移動屏幕周圍的精靈,但我不想離開屏幕。如何停止離開屏幕的精靈

我嘗試用這個

self.physicsWorld.contactDelegate = self; 
     self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; 
     self.physicsBody.categoryBitMask = edgeCategory; 


sprite.physicsBody.collisionBitMask = edgeCategory; 

但精靈還是離開屏幕

我也改變場景錨點

self.anchorPoint = CGPointMake(0.5, 0.5); 
+0

我相信你必須在兩個身體上設置位詢問。 – Fogmeister 2014-09-05 20:09:21

+0

我已經建議。我不認爲他設置了精靈categoryBitMask。 – meisenman 2014-09-05 20:13:32

+0

我建議你發佈創建你的精靈的代碼。 – 0x141E 2014-09-05 20:40:08

回答

-1

嘗試創建4個長方形SpriteNodes,使它們非常薄,構成你的邊界的長線。給他們所有相同的CategoryBitMask等

這樣,您可以設置屋頂和地板使用self.size.width作爲長度和大約1或2作爲厚度。對面的對面。

這將忽略問題,我認爲你有場景physicsBody矩形沒有居中到屏幕中間。

如果你以前不這樣做,使用方法:

設置sprite.categorybBitMask = spriteCategory; Set self.collsionBitMask = spriteCategory;

其中一個節點必須是動態的!爲了碰撞工作。

+0

什麼都沒有發生,但我注意到邊界是製作的,但不是圍繞着屏幕,也許是因爲我改變了場景的錨點,但是如何設置這個錨點的邊框 – clear 2014-09-05 19:52:24

+0

啓用ShowPhysics以及檢查邊界被創建的位置 – meisenman 2014-09-05 20:06:19

+0

我啓用ShowPhysics,但精靈不接觸邊界。也許是因爲精靈是另一個sknode的孩子 – clear 2014-09-05 20:17:57