1

我正在尝试通过触摸拖动以等距曲线方式移动精灵位置,但没有运气。到目前为止,我使用以下代码没有运气

-(BOOL) ccTouchBegan:(UITouch*)touch withEvent:(UIEvent *)event
{
lastTouchLocation = [MultiLayer locationFromTouch:touch];   
return YES;
}

-(void) ccTouchMoved:(UITouch*)touch withEvent:(UIEvent *)event
{
CGPoint currentTouchLocation = [MultiLayer locationFromTouch:touch];
moveTo = ccpSub(lastTouchLocation, currentTouchLocation);
lastTouchLocation = currentTouchLocation;
} 

-(void) update:(ccTime)delta 
{       
CCSprite* sprite = [sprites objectAtIndex:1];
if (moveTo.x != 0){
    float X = sprite.position.x + moveTo.x;
    float Y =  sprite.position.y + (pow(X,2));
    sprite.position = CGPointMake(X, Y);
}
}

我试图模拟的曲线方式是 y=x^2。这可能吗?提前致谢!

4

1 回答 1

1

是的,这是可能的。您可以在尝试时手动执行此操作,但最好使用内置解决方案。cocos2d 引擎中有一个 CCJumpTo 和 CCJumpBy 动作。它们是为抛物线运动而创建的。使用它们

于 2011-03-19T08:23:46.103 回答