【发布时间】:2014-06-25 13:57:32
【问题描述】:
我正在尝试让我的SKSpriteNode 用我的手指平稳移动。我玩过很多游戏,似乎无论我的手指走多快,物体都会跟着我的手指走。但是使用我当前的代码,我会不断失去对对象的控制,提高速度也会失去对它的控制。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
SKSpriteNode *node = (SKSpriteNode *)[self nodeAtPoint:location];
if (node.name != nil) {
if (node.name == p1Name) {
onP1 = true;
}
else if (node.name == p2Name) {
onP2 = true;
}
}
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
CGPoint preLocation = [touch previousLocationInNode:self];
SKSpriteNode *paddle = (SKSpriteNode *)[self nodeAtPoint:location];
if (paddle.name != nil) {
if ((paddle.name == p1Name && onP1) || (paddle.name == p2Name && onP2)) {
int paddleX = paddle.position.x + (location.x - preLocation.x);
paddleX = MAX(paddleX, paddle.size.width/2);
paddleX = MIN(paddleX, self.size.width - paddle.size.width/2);
paddle.position = CGPointMake(paddleX, paddle.position.y);
}
}
}
}
如何让SKSpriteNode在我在屏幕上触摸和移动时用手指平滑移动?
【问题讨论】:
标签: ios sprite-kit