Кривое движение спрайта COCOS2D - PullRequest
1 голос
/ 18 марта 2011

Я безуспешно пытаюсь переместить положение спрайта симметричной кривой с помощью перетаскивания. Пока что я использую следующий код без удачи

-(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. Это возможно? Заранее спасибо!

1 Ответ

1 голос
/ 19 марта 2011

Да, это возможно. Вы можете сделать это вручную, как пытаетесь, но лучше использовать встроенное решение. В движке cocos2d есть действия CCJumpTo и CCJumpBy. Они созданы для параболических движений. Используйте их

...