在 cocos2d 中平滑拖动一个 Sprite - iPhone

Smoothly drag a Sprite in cocos2d - iPhone(在 cocos2d 中平滑拖动一个 Sprite - iPhone)

本文介绍了在 cocos2d 中平滑拖动一个 Sprite - iPhone的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在精灵对象上实现了如下拖动..

I have implemented a drag on a sprite object as follows..

-(BOOL)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch * touch = [touches anyObject];
CGPoint location = [[Director sharedDirector] convertCoordinate: [touch locationInView:touch.view]];    
[diskSprite setPosition:ccp(location.x , location.y )];
return kEventHandled;
}

但是这种拖动并不顺利.....当我用拇指快速拖动路径左侧的对象时.

but this dragging is not smooth..... when i drag fast with my thumb the object left from the path.

谢谢

推荐答案

可能有点晚了,但我正在寻找类似的东西.我发现这个很棒的教程解释了一切:http://www.raywenderlich.com/2343/how-to-拖放精灵与 cocos2d

Probably a little bit late but I was searching for a similar thing. I found this great Tutorial which explained everything: http://www.raywenderlich.com/2343/how-to-drag-and-drop-sprites-with-cocos2d

- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {       
    CGPoint touchLocation = [self convertTouchToNodeSpace:touch];

    CGPoint oldTouchLocation = [touch previousLocationInView:touch.view];
    oldTouchLocation = [[CCDirector sharedDirector] convertToGL:oldTouchLocation];
    oldTouchLocation = [self convertToNodeSpace:oldTouchLocation];

    CGPoint translation = ccpSub(touchLocation, oldTouchLocation);    
    CGPoint newPos = ccpAdd(mySpriteToMove.position, translation);
    mySpriteToMove.position = newPos;
}

这篇关于在 cocos2d 中平滑拖动一个 Sprite - iPhone的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在 cocos2d 中平滑拖动一个 Sprite - iPhone