如何在特定方向上对花栗鼠身体施加冲动?

时间:2013-07-31 12:05:49

标签: objective-c cocos2d-iphone chipmunk vimpulse

我正在使用:

 cpVect vector1=cpv(angle, 400);

 [body applyForce:vector1 offset:vector1];

但是根据需要使用触摸屏设置正确的角度,效果不佳 下面用于获取角度的代码行

-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    for( UITouch *touch in touches )
    {
        CGPoint location = [touch locationInView: [touch view]];
        location = [[CCDirector sharedDirector] convertToGL: location];
        float angleRadians = atanf((float)location.y/ (float)location.x-1);
        float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
        float cocosAngle = -1 * angleDegrees;
       angle = angleDegrees + 30;
    }
}

1 个答案:

答案 0 :(得分:1)

感谢你们所有宝贵的时间来为此付出代价。 最后,我找到了在特定方向上对花栗鼠身体实现冲动的方法。 现在我使用下面的代码。

 **angle = angle-90;                  //angle from cctouchesMoved function
 float magnitude=shootPower;        // magnitude range between 200 to 1000
 cpVect impulse = cpv((cos(angle) * magnitude) , -(sin(angle) * magnitude));

 [body applyImpulse:impulse offset:cpvzero];**

// applyImpulse使用上面的sin和cos theta值给出了根据需要放置脉冲的正确方法。