如何让一个自由落体的 Sprite 节点坐在另一个水平移动的 Sprite 体上?
现在两个 body 都发生了碰撞。但是水平运动的物体偏离了它的路径,自由落体撞击水平物体后下降。如何修复 Sprite 节点的这种不断变化的设置。
我已经为正确发生碰撞设置了给定的碰撞和类别位掩码。
自由落体属性:
- affectedbygravity = YES dynamic = YES allowsrotation = NO usesprecisecollisiondetection = YES restitution = 1 摩擦力 = 1.0 角度阻尼 = 0.0 线性阻尼 = 0.0
水平移动体属性
动态=是 受重力影响 = 否 摩擦力 = 1.0
在这个 body 上进行振荡 Action 。
最佳答案
调整质量有助于不使移动物体偏斜。例如试试这段代码,
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];
关于ios - 如何让一个自由下落的 Sprite 节点坐在另一个水平移动的 Sprite 身上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364791/