2016-03-20 6 views
0

Ich erstelle mein erstes Sprite-Kit-Spiel und habe Schwierigkeiten, die Bewegungen meines Helden zu codieren. Hier ist, wie ich die Bewegung meines Helden in objective-c in einer einzigen Ansichtsapplikation unter Verwendung von Touch-Down und Touch-Up innerhalb von IBactions codierte. Ich versuche, die gleichen Ergebnisse in einem Sprite-Kit-Spiel in Swift zu wiederholen.Was ist der beste Weg, um die kontinuierliche X- und Y-Bewegung eines Sprite-Knotens in swift zu kodieren?

-(IBAction)LeftArrowTapped:(id)sender; { 

[self heroMovementTimerMethodLeft]; 

} 
-(IBAction)RightArrowTapped:(id)sender; { 

[self heroMovementTimerMethodRight]; 

} 
-(IBAction)TouchEndedLeft:(id)sender; { 

[heroMovementTimerLeft invalidate]; 

} 
-(IBAction)TouchEndedRight:(id)sender; { 

[heroMovementTimerRight invalidate]; 

} 
-(void)heroMovementTimerMethodLeft { 

heroMovementTimerLeft = [NSTimer 
scheduledTimerWithTimeInterval:speedOfhero target:self 
selector:@selector(heroMovementLeft) userInfo:nil repeats:YES]; 
} 
-(void)heroMovementTimerMethodRight { 

heroMovementTimerRight = 
[NSTimerscheduledTimerWithTimeInterval:speedOfhero target:self 
selector:@selector(heroMovementRight) userInfo:nil repeats:YES]; 
} 

-(void)heroMovementLeft{ 

hero.center = CGPointMake(hero.center.x -.5, hero.center.y); 
} 

-(void)heroMovementRight{ 

hero.center = CGPointMake(hero.center.x +.5, hero.center.y); 
} 

-(void)enemyMovementTimerMethod { 

enemyMovementTimer = 
[NSTimerscheduledTimerWithTimeInterval:speedOfEnemy target:self 
selector:@selector(enemyMovement) userInfo:nil repeats:YES]; 

} 

Ich verstehe, dass in Sprite-Kit muss ich meine IBactions mit touchesBegan und touchesEnded Methoden ersetzen, aber wie ich wiederhole die codierten Ergebnisse in schnell. Hier ist, wie ich jetzt

let heroMovementLeft = SKAction.moveToX(self.size.width - 5, 
duration: 3) 

versuchen Aber ich erhalte eine Fehlermeldung, habe ich auch versucht,

let heroMovementLeft = CGPointMake(hero.position.x -5 , 
hero.position.y) 

Ich entschuldige mich, ich bin sehr neu für schnelle und Sprite-Kits

+0

Vielleicht ist die Einstellung der Geschwindigkeit, was Sie suchen? Du brauchst einen Physikkörper ohne Schwerkraft und ein paar andere Dinge, die ausgeschaltet sind. – Gliderman

+0

@gliderman können Sie mir ein Beispiel geben? und was genau muss ich abschalten? –

Antwort

0

Mit SKActions wie Sie Versuchen ist in Ordnung. Laufen Sie tatsächlich die Aktion, weil es aus Ihrem Code scheint, dass Sie nicht sind.

let heroMovementLeft = SKAction.moveToX(self.size.width - 5,duration: 3) 
hero.runAction(heroMovementLeft) // This is missing in your code example