我正在开发一个游戏,我的角色从陆地跳到陆地。除了剩余的问题,我已经把所有的东西都做下来并完成了,如果你继续点击屏幕,他可以继续跳跃。我想要它,所以他必须在他再次跳跃之前将其击倒。斯威夫特:如何让我的角色在我的游戏中只能在他击中地面时跳跃?
import SpriteKit
import GameplayKit
class GameScene: SKScene, SKPhysicsContactDelegate {
struct PhysicsCatagory {
static let Knight : UInt32 = 0x1 << 1
static let land : UInt32 = 0x1 << 2
}
var Knight = SKSpriteNode()
var land = SKSpriteNode(imageNamed: "CJLand4")
这是我当前的代码,让他跳:
Knight.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
Knight.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 325))
我有这个touchesBegan
下,并将其添加重力和冲动也让他跳。但是我只希望他每次击中土地都能跳一次。如果可以的话请帮忙。
您可以用布尔值跟踪与陆地的碰撞,并在跳跃发生后将其设置为假。 – the4kman
@ the4kman所以东西沿着touchLand = false?你能给我一个例子代码 – Luyer