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:
Hier ist der Ausdruck. Hier
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")
}
}
}