我有一个精灵,我想用手指在屏幕上移动〜拖动来移动它。
我希望我的精灵以速度移动,这意味着不要像我的手指一样快。
看起来像这样的视频:http://www.youtube.com/watch?v=Vair3CIxZEw(从0:12到0:53)
这是我的ccTouch代码。我该如何修复以使其移动看起来更平滑?
谢谢!!! :)
只需返回TRUE
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
return TRUE;
}
和
-(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);
if (CGRectContainsPoint(_car.boundingBox, touchLocation)) {
CGPoint newPos = ccpAdd(_car.position, translation);
_car.position = newPos;
}
}
最佳答案
尝试使用CCMoveTo动作平稳移动
CGPoint translation = ccpSub(touchLocation, oldTouchLocation);
if (CGRectContainsPoint(_car.boundingBox, touchLocation)) {
CGPoint newPos = ccpAdd(_car.position, translation);
id moveAction = [CCMoveTo actionWithDuration:0.5f position:newPos];
[_car runAction:moveAction];
}