0
斯威夫特更改collisionBitMask - SpriteKit根據Y值升序或降序
:我將我的第一場比賽,我有我的var Player = SKSpriteNode()
也var platform = SKNode()
我想檢測當玩家正在增加y方向,所以我可以關閉collisionBitMask
。因此,當跳躍和跌倒時能夠跳躍穿過平臺,他將登陸平臺。
所以我可以有這樣的:
if player.position.y = increasing {
Player.physicsBody?.collisionBitMask = nil
}else{
Player.physicsBody?.collisionBitMask = PhysicsCategory.Platform
}
我已經看了看周圍,並不能找到我所追求的,除非我找錯了東西。
非常感謝。
編輯:解決檢查EmilioPelaez回答,只是顯示我如何在這裏稍微改變它。
聲明var lastY: CGFloat?
以外的所有其他變量的函數。
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
}
驚人,完美的作品。我改變了它非常輕微,所以生病編輯我的問題。非常感謝! – Steve