Я пытаюсь заставить моего игрока показывать один спрайт, когда он прыгает, и показывать анимацию бегущих текстур, когда он находится на земле. Прямо сейчас он только бегает. Моя игра знает, находится ли игрок на земле или нет. Я настроил его на печать, когда он включен или выключен, и он работает правильно. Но я не могу понять, как заставить его показывать другую текстуру при прыжках.
Спасибо!
'' '
func createPlayer() {
var playerTexture = SKTexture(imageNamed: "player-1")
player = SKSpriteNode(texture: playerTexture)
player.zPosition = 10
player.position = CGPoint(x: frame.width / 6, y: frame.height / 3)
addChild(player)
player.physicsBody = SKPhysicsBody(texture: playerTexture, size: playerTexture.size())
player.physicsBody!.contactTestBitMask = player.physicsBody!.collisionBitMask
player.physicsBody?.contactTestBitMask = 3
player.physicsBody?.isDynamic = true
player.physicsBody?.angularVelocity = 0
player.physicsBody?.allowsRotation = false
player.physicsBody?.restitution = 0
player.physicsBody?.collisionBitMask = 1
player.physicsBody?.categoryBitMask = 2
if playerOnGround == true {
player.removeAction(forKey: "Jumping Action")
let frame1 = SKTexture(imageNamed: "player-1")
let frame2 = SKTexture(imageNamed: "player-2")
let frame3 = SKTexture(imageNamed: "player-3")
let frame4 = SKTexture(imageNamed: "player-4")
let frame5 = SKTexture(imageNamed: "player-5")
let frame6 = SKTexture(imageNamed: "player-6")
let frame7 = SKTexture(imageNamed: "player-7")
let frame8 = SKTexture(imageNamed: "player-8")
let frame9 = SKTexture(imageNamed: "player-9")
let frame10 = SKTexture(imageNamed: "player-10")
let animation = SKAction.animate(with: [frame1, frame2, frame3, frame4, frame5, frame6, frame7, frame8, frame9, frame10,], timePerFrame: 0.1)
let runForever = SKAction.repeatForever(animation)
player.run(runForever, withKey: "Running Action")
} else if playerOnGround == false {
player.removeAction(forKey: "Running Action")
playerTexture = SKTexture(imageNamed: "player-jump")
let jumpAnimation = SKAction.animate(with: [playerTexture], timePerFrame: 0.1)
let runJump = SKAction.repeatForever(jumpAnimation)
player.run(runJump, withKey: "Jumping Action")
}
}
' ''