2017-01-21 6 views
1
‚SKTexture‘ eingeben

I definieren ein Array von SKTextures in einer Klasse wie folgt:Wert kann nicht vom Typ ‚Array <SKtexture>‘ zuweisen

var walking: Array<SKTexture> = [] 

Dann habe ich eine Funktion in der gleichen Klasse, die ein Element kehrt von dass Array:

func running() -> SKTexture{ 
    self.counter_run += self.counter_run 
    if (self.counter_run >= 2){ 
     self.counter_run = 0 
    } 
    return self.walking[counter_run] 
} 

Und ich diese Funktion in einem anderen Teil meines Codes verwenden, um meinen Charakter zu animieren:

override func update(_ currentTime: TimeInterval) { 
    player.texture = koopa.walking() 
} 

Aber ich bekomme diese Fehlermeldung:

Cannot assign value of type 'Array<SKtexture>' to type 'SKTexture' 
+1

Wahrscheinlich meinst du 'player.texture = koopa.running()'. Lauf, geh nicht. – vadian

+0

Danke Ich habe nicht bemerkt, dass ich das gemacht habe –

+0

Vadian danke, dass es repariert –

Antwort

2

Sie versuchen, eine der Array walking den Knoten Textur zuweisen, die SKTexture vom Typ ist.

Je nachdem, was man eine Textur von walking an den Knoten gesetzt erreichen wollen:

player.texture = walking[counter_run] 

oder eine Aktion verwenden:

player.runAction(SKAction.animateWithTextures(walking, timePerFrame: 0.5)) 

Edit: Die Textur-Animation Ihrer Ansatz hängt von der Bildrate ab, die Sie höchstwahrscheinlich nicht wollen. Daher empfehle ich den späteren zu verwenden.

+0

@OliverRedeyoff Ich würde mit SKAction in diesem Fall gehen. Warum ein Rad neu erfinden ... – Whirlwind

Verwandte Themen