如何让一个自由落体的 Sprite 节点坐在另一个水平移动的 Sprite 体上?
现在两个物体发生碰撞。但水平运动体偏离其路径,自由落体撞击水平体后下降。如何修复 Sprite 节点的这种变化设置。
我已经为正确发生碰撞提供了给定的碰撞和类别位掩码。
自由落体属性:
- affectedbygravity = YES 动态 = YES 允许旋转 = NO
使用精确碰撞检测 = YES 恢复 = 1 摩擦 = 1.0
角度阻尼 = 0.0 线性阻尼 = 0.0
水平运动体属性
动态 = 是
受重力影响 = 否
摩擦力 = 1.0
在这个 body 上执行一个振荡 Action 。
Best Answer-推荐答案 strong>
调整质量有助于不偏转移动的物体。例如试试这段代码,
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/
|