我想知道是否有人可以帮助我,并可能指出我正确的方向。
这是我的代码:
- (void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:[touch view]];
point = [[CCDirector sharedDirector] convertToGL:point];
sprite.position = ccp (sprite.x, point.y);
}
这就是我想要做的事情。
我想单击并在Y轴上上下拖动精灵。我希望精灵靠近屏幕的顶部,这是纵向模式。
每次在不同的地方触摸屏幕时,我都不希望“弹出”或“跳过”。
任何指针都会非常感激。
答案 0 :(得分:0)
使用矢量。此代码示例使用目标触摸代理而不是标准代码。使newPos x属性始终相同以实现您的行为。
- (void)panForTranslation:(CGPoint)translation {
if (selSprite) {
CGPoint newPos = ccpAdd(selSprite.position, translation);
selSprite.position = newPos;
}
}
- (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);
[self panForTranslation:translation];
}