我不能解決如何通過觸摸觸摸位置開始進入我的方法,當觸摸開始時運行。鑄造和參數移動精靈cocos2d
-(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,我不能使用velocity來讓sprite慢慢增加它的速度嗎?我如何將精靈移動到觸點增加速度?我猜測它與delta有關。
是什麼'自schedule'嗎?直接調用「moveSprite:」方法,傳遞UITouch事件,然後調用它的'locationInView:'方法? – 2012-06-19 17:18:56
我認爲它的cocos2d相當於NSTimer,但我不確定它是否像這樣不斷調用,或者我需要添加一個區間。我不確定這是否會持續更新位置和輪換? locationInView部分將如何工作?我想我也可能需要delta來更新速度? – dev6546