2014-03-13 33 views
2

我有以下的精靈降落到屏幕底部:有沒有一種方法可以使用SKSpriteNode和PhysicsBody參數來製作Spritekit的柔體?

// The View 
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; 
self.physicsWorld.contactDelegate = self; 

// The Sprite 
SKSpriteNode *cube = [[SKSpriteNode alloc] initWithImageNamed:@"cube"]; 
[cube setPosition:CGPointMake(160,250); 
[self addChild:cube]; 

// The Physics 
cube.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:cube.frame.size]; 
cube.physicsBody.dynamic = YES; 
cube.physicsBody.affectedByGravity = YES; 
cube.physicsBody.mass = 0.02; 

有沒有辦法讓它所以當它擊中了屏幕下邊框的兩側膨隆?一些會像果凍一樣的東西,或者是一個柔軟的身體,它在某種程度上仍然保持其形狀,但在自己的體重下會凸出來?我希望這是有道理....

+0

這確實是一個棘手的柔體(果凍)解釋和源代碼。根據接觸點處sprite的SKPhysicsBody中的速度和其他參數,您將必須在-didBeginContact和-didEndContact方法之間進行一些認真計算。 – ZeMoon

+0

偉大的問題!也許你可以通過關節來「解決」這個問題(https://developer.apple.com/Library/ios/documentation/SpriteKit/Reference/SKPhysicsJoint_Ref/Reference/Reference.html#//apple_ref/doc/uid/TP40013044)? – AndrewShmig

回答

1

快速簡便的方法,而不數學: 1只使用閃光燈補間你的盒子翹曲。 2將補間幀導出爲精靈圖(紋理圖集) 3在與場景中的邊緣物理物體接觸時爲紋理圖集製作動畫。

你的盒子將下降,在接觸動畫單獨的圖像給人的印象它的翹曲/鼓鼓的兩側。

我用這個方法,它的工作原理 - 換句話說,它提供了預期的效果,這在我的觀點是什麼是重要的 - 你的遊戲玩家不關心你是怎麼做到的,只要它看起來很棒。

相關問題