2016-12-22 2 views
0

In meinem Programm, das ich mache, versuche ich, zwei verschiedene Arten von Stücken mit unterschiedlichen Texturen, die von der gleichen Klasse sind.Klassen Texturen ändern, aber nicht angezeigt

Da diese Klasse eine Unterklasse ist, muss ich die Textur auf eine Standardtextur in der super.init setzen. Ich ändere die Textur, aber nur die Standardtextur erscheint, wenn das Programm ausgeführt wird.

Ich habe versucht, die Textur zu drucken, und es heißt, die Textur wurde geändert. Was ist los?

Hinweis: Ich benutze Checker Stücke wie in Stücken stehen. Das rote Checkerstück ist der Stand in einem (und der für das rote Team). Das Bild sollte ein schwarzes Kontrolleur Stück Anzeigen

Hier ist das Problem:

enter image description here

Hier ist der Ausdruck. Hier

enter image description here

ist der Code für das Laichen und für die Rifleman Klasse:

func spawnBlueRiflemen(at: CGPoint) { 
     let newBlueRifle = rifleman() 
     newBlueRifle.texture = textureBlueRifle 
     newBlueRifle.position = at 
     newBlueRifle.team = "Blue" 
     print("\(newBlueRifle.texture)") 
     self.addChild(newBlueRifle) 
    } 

class rifleman: Character, pTargetable{ 
    var health = 10 
    init() { 
     super.init(tag: 0, team: "generic", currentAction: 0, texture: textureRedRifle) 
     var xSize = texture.size().width   // Create The texture for the top (visible sprite) 
     var ySize = texture.size().height 
     var size = CGSize(width: xSize, height: ySize) 
     self.physicsBody = SKPhysicsBody(texture: texture, size: size) 
     self.physicsBody?.isDynamic = false 
     self.physicsBody?.affectedByGravity = false   // (physical body stuff) 
     self.physicsBody?.mass = 1.0 
     self.name = "\(tag)" 
     var top = SKSpriteNode(texture: texture, size: size) 
     top.zPosition = layers.characters 
     top.color = SKColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) 
     top.colorBlendFactor = 1.0 
     self.addChild(top) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    func takeDamage(damage: Int) { 
     health -= damage 
     print("\(tag) lost \(damage) hit points") 

     if health <= 0 { 
      die() 
      print("\(tag) is dead now") 
     } 
    } 

} 

Antwort

0

Sie haben „Textur“ innerhalb der Unterklasse „riflemen“ zu initialisieren, um die Textur veränderbar zu machen.

z.

....

class rifleman: Character, pTargetable{ 
    var health = 10 
    init(texture: SKTexture) { 
     super.init(tag: 0, team: "generic", currentAction: 0, texture: texture) 

....

Verwandte Themen