게임에서 내 캐릭터의 최대 속도를 제어하려고합니다.스프라이트 키트의 최대 속도 제어
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];
SKSpriteNode *touchedNode = (SKSpriteNode *)[self nodeAtPoint:positionInScene];
CGPoint posicionHero = [self childNodeWithName:@"hero"].position;
SKSpriteNode *touchHero = (SKSpriteNode *)[self nodeAtPoint:posicionHero];
if((touchedNode !=touchHero) //jump forward
&& (positionInScene.x > [self childNodeWithName:@"Hero"].position.x)
&& (positionInScene.y > [self childNodeWithName:@"Hero"].position.y)
)
{
[[self childNodeWithName:@"Hero"].physicsBody applyImpulse:CGVectorMake(5,0)];
[[self childNodeWithName:@"Hero"].physicsBody applyImpulse:CGVectorMake(0, 10)];
NSLog(@"jump forward done");
}
그러나 문제는 속도가 제한되지 않고, 그리고 내가이 두 개 또는 세 번 할 때 문자는 매우 빠르게 진행 : 내가 그를 이동하면 나는이 사용합니다. 나는 많은 특성 (속도, 각속도 등)을 가지고 시험해 보았고 만족스런 것을 찾지 못했습니다. 캐릭터의 최대 속도를 제어하기 위해 속도 제한 또는 "트릭"을 설정하는 방법을 아는 사람이 있습니까?
팁 : 업데이트 또는 didEvaluateActions에서 더 잘 수행하십시오. ** 물리 신체 위치가 업데이트되기 전에 ** 속도가 제한됩니다 ** – LearnCocos2D
velocity.x> MAX_SPEED_X인지 확인하는 것이 좋습니다. 그렇지 않으면 항상 얻을 수 있습니다. 최대 속도 – Andy