好的,我有一个精灵,上面有一个平台。精灵从点(0,scene.frame.size.height/2)开始,平台在(scene.fframe.size.width/2,scene.frame.size.height-10)。所以精灵在左边,平台在屏幕顶部的中心。
我要在精灵身上施加一个强大的脉冲。脉冲的矢量会有一个X,但没有Y。基本上我会把它扔对。
它应该在平台下面,它会的。我想让它做的是遵循一条以平台中心为支点的钟摆路径。更重要的是,我想强行走这条路。不管物体的x动量如何,我希望它必须沿着钟摆的路径摆动,而不是直接从下面经过
如果这有助于描绘从藤蔓上摆动的画面。我希望它在抓住藤蔓之前考虑精灵的速度,但与现实世界不同的是,我希望它能迫使精灵通过钟摆状的路径以一定角度向下俯冲,然后以一定角度向上翻转。
我很难弄清楚如何才能做这样的事情,所以任何帮助都将不胜感激。我知道我可能需要一个关节来连接两者,如果我担心的都是Y动量,我可能只需要一个极限关节就可以逃脱,但它是执行摆锤路径和转换我所坚持的动量部分
提前感谢您的帮助。
以下是如何实现SKPhysicsJointPin:的示例
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
CGPoint location = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
// Create the pendulum's pivot
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithColor:[SKColor whiteColor] size:size];
sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:sprite.size];
sprite.physicsBody.dynamic = NO;
sprite.position = location;
sprite.size = CGSizeMake(8, 8);
[self addChild:sprite];
location = CGPointMake(self.frame.size.width/2-100, self.frame.size.height/2);
size = CGSizeMake(50, 200);
// Create the pendulum's bob
SKSpriteNode *sprite2 = [SKSpriteNode spriteNodeWithColor:[SKColor whiteColor] size:size];
sprite2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:sprite.size];
sprite2.physicsBody.dynamic = YES;
sprite2.physicsBody.affectedByGravity = YES;
sprite2.physicsBody.linearDamping = 0;
sprite2.physicsBody.mass = 0.1;
sprite2.size = CGSizeMake(32, 32);
sprite2.position = location;
[self addChild:sprite2];
CGPoint point = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
// Create a joint that connects the pivot and the bob
SKPhysicsJointPin *pinJoint = [SKPhysicsJointPin jointWithBodyA:sprite.physicsBody
bodyB:sprite2.physicsBody anchor:point];
// Add the joint to the world
[self.physicsWorld addJoint:pinJoint];
}
return self;
}