Swift - SpriteKitÄndern collisionBitMask nach y-Wert auf- oder absteigend
Ich mache mein erstes Spiel und ich habe meine var Player = SKSpriteNode()
und auch var platform = SKNode()
ich erkennen soll, wenn der Spieler in wächst Y-Richtung, so kann ich collisionBitMask
ausschalten. Dadurch wird es möglich, beim Springen durch Plattformen hochzuspringen und wenn er fällt, wird er auf den Plattformen landen.
So kann ich so etwas wie:
if player.position.y = increasing {
Player.physicsBody?.collisionBitMask = nil
}else{
Player.physicsBody?.collisionBitMask = PhysicsCategory.Platform
}
ich um ausgesehen haben und nicht finden können, was ich bin nach, es sei denn, ich bin für die falsche Sache suchen.
Vielen Dank.
Bearbeiten: Gelöst check EmilioPelaez Antwort, zeigt nur, wie ich es hier leicht geändert habe.
Deklariert var lastY: CGFloat?
außerhalb der Funktionen mit allen anderen Variablen.
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
// Checking y direction
if Player.position.y > lastY {
// Player increasing in y direction
Player.physicsBody?.collisionBitMask = PhysicsCategory.Ground
} else {
// Player decreasing in y direction
Player.physicsBody?.collisionBitMask = PhysicsCategory.Ground | PhysicsCategory.Platform
}
lastY = Player.position.y
}
erstaunlich, funktioniert perfekt. Ich änderte es sehr leicht, so schlecht es in meine Frage zu bearbeiten. Danke vielmals! – Steve