如何让一个自由下落的精灵节点坐在另一个水平移动的精灵上 body
How to make a free falling sprite node sit on another horizontaly moving sprite body
如何让一个自由下落的精灵节点坐在另一个水平移动的精灵上body?
现在两个身体相撞了。但是水平移动body偏离了它的路径,自由落体body在达到水平body后下降。如何修复精灵节点的这种更改设置。
我已经为正确发生碰撞设置了给定的碰撞和类别位掩码。
自由落体 body 属性:
- 受重力影响=是动态=是允许旋转=否
usesprecisecollisiondetection = YES restitution = 1 摩擦力 = 1.0
角度阻尼 = 0.0 线性阻尼 = 0.0
水平移动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];
如何让一个自由下落的精灵节点坐在另一个水平移动的精灵上body?
现在两个身体相撞了。但是水平移动body偏离了它的路径,自由落体body在达到水平body后下降。如何修复精灵节点的这种更改设置。
我已经为正确发生碰撞设置了给定的碰撞和类别位掩码。
自由落体 body 属性:
- 受重力影响=是动态=是允许旋转=否 usesprecisecollisiondetection = YES restitution = 1 摩擦力 = 1.0 角度阻尼 = 0.0 线性阻尼 = 0.0
水平移动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];