如何让一个自由下落的精灵节点坐在另一个水平移动的精灵上 body

How to make a free falling sprite node sit on another horizontaly moving sprite body

如何让一个自由下落的精灵节点坐在另一个水平移动的精灵上body?

现在两个身体相撞了。但是水平移动body偏离了它的路径,自由落体body在达到水平body后下降。如何修复精灵节点的这种更改设置。

我已经为正确发生碰撞设置了给定的碰撞和类别位掩码。


自由落体 body 属性:


水平移动body属性

动态=是 受重力影响 = 否 摩擦力 = 1.0

对这个body进行振荡动作。

调整质量有助于不使移动物体偏转。例如试试这段代码,

SKSpriteNode *fallNode = [[SKSpriteNode alloc] initWithColor:[UIColor redColor] size:CGSizeMake(25, 25)];
fallNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:fallNode.size];
fallNode.position = CGPointMake(100, 400);
fallNode.physicsBody.mass = 1;
fallNode.physicsBody.allowsRotation = NO;
fallNode.physicsBody.restitution = 0.0;
fallNode.physicsBody.friction = 1.0;
[self addChild : fallNode];

SKSpriteNode *moveNode = [[SKSpriteNode alloc] initWithColor:[UIColor greenColor] size:CGSizeMake(25, 25)];

moveNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:moveNode.size];
moveNode.position = CGPointMake(50, 100);
moveNode.physicsBody.mass = 100000;
moveNode.physicsBody.affectedByGravity = false;
moveNode.physicsBody.friction = 1.0;
moveNode.physicsBody.velocity = CGVectorMake(90, 0);

[self addChild : moveNode];