2013-10-05 25 views

回答

6

您需要在兩個將遇到的對象上設置恢復。

self.world = [SKNode node]; 
    [self addChild:self.world]; 

    self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0]; 

    self.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointZero toPoint:CGPointMake(500, 0)]; 
    self.physicsBody.restitution = 0.0; 

    self.ball = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(40, 40)]; 
    self.ball.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 40)]; 
    self.ball.physicsBody.density = 100; 
    self.ball.physicsBody.restitution = 0.0; 
    self.ball.position = CGPointMake(200, 300); 
    [self.world addChild:self.ball]; 
+0

謝謝!我會試試! –

+0

@DogCoffee謝謝,但這並沒有完全解決我的問題。即使兩個「恢復原狀」都設置爲零,我仍然可以看到一些「顫抖」。類似的問題在這裏(http://stackoverflow.com/questions/24315250/skphysicsbody-with-restitution-0-still-bounces)。你有什麼想法如何完全「禁用」反彈? – damirstuhec

1

我發現縮放大規模的作品!

self.ball.physicsbody.mass=0.2; 

使用這樣的少數,它不會反彈,你將不得不擴展您的重力和衝動相應爲好。我發現0.2最好使用-20的grav。

無論出於何種原因,即使在0恢復時,平均尺寸的物體也足夠大以反彈。