如何执行摆路径



好的,我有一个精灵,上面有一个平台。精灵从点(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;
}

相关内容

  • 没有找到相关文章

最新更新