我无法弄清楚如何将触摸开始时的触摸位置传递给我在触摸开始时运行的方法。
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
[self schedule:@selector(moveSprite:)];
return TRUE;
}
-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
[self unschedule:@selector(moveSprite:)];
}
-(void)moveSprite:(ccTime) delta
{
CGPoint spriteCenter = CGPointMake(player.contentSize.width /2,player.contentSize.height /2);
CGPoint touchPoint; //how to get this touch began?
float distanceX = touchPoint.x - spriteCenter.x;
float distanceY = touchPoint.y - spriteCenter.y;
float angle = atan2f(distanceY,distanceX); // returns angle in radians
player.rotation = angle;
}
我还有一个关于[self schedule:@selector:
这会不断调用我的移动精灵方法的问题吗?因为我希望精灵在按住触摸并且精灵位置发生变化时相应地不断移动和改变旋转。
我的最后一个问题是将精灵移动到触摸的 x 坐标。如果我使用 ccmoveto 我不能使用速度来使精灵慢慢增加它的速度,可以吗?如何将精灵移动到触摸点以增加速度?我猜它与三角洲有关。