У меня есть изображение автомобиля в середине моего экрана. Поэтому, когда я нажимаю на экран, я хочу, чтобы он изменился с автомобиля на плоское изображение, и когда я отпустил экран, я хочу, чтобы он вернулся к изображению автомобиля. Код, который у меня есть, продолжает воспроизводить изображения снова и снова, и они не переключаются между двумя изображениями. Вот код, который у меня есть:Как бы переключаться между изображениями в Swift?
func addCar() {
let redCar = SKSpriteNode(imageNamed: "redC")
redCar.position = CGPointMake(self.size.width/2, self.size.height/7)
redCar.zPosition = 42
addChild(redCar)
redCar.physicsBody = SKPhysicsBody(circleOfRadius: 20)
redCar.physicsBody?.allowsRotation = false
redCar.physicsBody?.affectedByGravity = false
redCar.physicsBody?.contactTestBitMask = RedCategory | RedCarCategory
redCar.physicsBody?.categoryBitMask = RedCarCategory
redCar.physicsBody?.collisionBitMask = RedCarCategory
}
func addBluePlane() {
let bluePlane = SKSpriteNode(imageNamed: "blueC")
bluePlane.position = CGPointMake(self.size.width/2, self.size.height/7)
bluePlane.zPosition = 43
addChild(bluePlane)
bluePlane.physicsBody = SKPhysicsBody(circleOfRadius: 20)
bluePlane.physicsBody?.allowsRotation = false
bluePlane.physicsBody?.affectedByGravity = false
bluePlane.physicsBody?.contactTestBitMask = GreenCategory | BluePlaneCategory
bluePlane.physicsBody?.categoryBitMask = BluePlaneCategory
bluePlane.physicsBody?.collisionBitMask = BluePlaneCategory
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
for touch in touches {
if let touch = touches.first {
let location = touch.locationInNode(self)
let node = self.nodeAtPoint(location)
addCar()
}
}
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?)
{
addBluePlane()
}
Вы можете использовать один SKSpriteNode и просто переключать его текстуру между автомобилем/самолетом. Или вы можете заменить два узла спрайтов. – jtbandes
Итак, я бы поставил redCar.texture = SKTexture (imageNamed: "")? – coding22
Да, это опция (хотя вы хотите «imageNamed:« blueC »). Тебе решать. – jtbandes