Я разрабатываю 2D-игру с новым набором API Sprite. Проблема в том, что, хотя установка рестрикции узла спрайта на 0, он немного отскакивает. Как я могу полностью отключить подпрыгивание?SKSpriteNode подпрыгивает, когда он не должен
1
A
ответ
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];
1
Я нашел масштабирование массы вниз!
self.ball.physicsbody.mass=0.2;
Используйте небольшое количество, как это, и это не будет отскакивать, вам придется масштабировать гравитацию и импульсы соответственно, а также. Я нашел 0.2
, чтобы работать лучше всего с графом -20
.
По какой-либо причине, даже при реституции 0, объекты среднего размера достаточно тяжелы, чтобы отскочить.
Спасибо, я попробую! –
@DogCoffee Спасибо, но это не полностью решило проблему в моем случае. Я все еще вижу некоторые «дрожь», хотя обе «реституции» установлены на ноль. Аналогично задается здесь (http://stackoverflow.com/questions/24315250/skphysicsbody-with-restitution-0-still-bounces). У вас есть идея, как полностью «отключить» подпрыгивание? – damirstuhec