我如何创建逼真的驾驶体验?
我使用iOS Swift 3和SpriteKit,使用applyForce函数来在点击油门按钮时加速,当刹车时向physicsBody添加摩擦力,但是我无法向右转弯,也不知道该怎么做。
现在,为了转弯,我正在使用左右屏幕分割来实现,但是我正在使用applyForce,这很糟糕,因为它会在汽车停止时以一种非常不真实的方式进行转弯。
当我施加力时,它只能朝上走,因此如果我创建一个转弯机制并进行U形转弯,汽车仍将向上行驶。
另外需要注意的是:多点触控不起作用?
有什么帮助吗?谢谢。
我使用iOS Swift 3和SpriteKit,使用applyForce函数来在点击油门按钮时加速,当刹车时向physicsBody添加摩擦力,但是我无法向右转弯,也不知道该怎么做。
现在,为了转弯,我正在使用左右屏幕分割来实现,但是我正在使用applyForce,这很糟糕,因为它会在汽车停止时以一种非常不真实的方式进行转弯。
当我施加力时,它只能朝上走,因此如果我创建一个转弯机制并进行U形转弯,汽车仍将向上行驶。
另外需要注意的是:多点触控不起作用?
有什么帮助吗?谢谢。
override func didMove(to view: SKView) {
// Multi Touch
self.view?.isMultipleTouchEnabled = true
car.carNode.position = CGPoint(x: 0, y: 0)
car.carNode.physicsBody = SKPhysicsBody(rectangleOf: car.carNode.size)
car.carNode.physicsBody?.affectedByGravity = false
car.carNode.physicsBody?.angularDamping = 0.1
car.carNode.physicsBody?.linearDamping = 0.1
car.carNode.physicsBody?.friction = 0.1
car.carNode.physicsBody?.mass = 1
self.addChild(car.carNode)
// HUD Display
gas.gasButton.position = CGPoint(x: 300, y: -500)
self.addChild(gas.gasButton)
brake.brakeButton.position = CGPoint(x: 150, y: -500)
self.addChild(brake.brakeButton)
}
override func update(_ currentTime: TimeInterval) {
if touching {
car.carNode.physicsBody?.applyForce(CGVector(dx: 0, dy: 180))
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
if location.x < self.frame.size.width / 2 {
// Left side of the screen
car.carNode.physicsBody?.applyForce(CGVector(dx: -100, dy: 0))
} else {
// Right side of the screen
car.carNode.physicsBody?.applyForce(CGVector(dx: 100, dy: 0))
}
// Gas Button
if (gas.gasButton.contains(location)) {
touching = true
}
// Brake Button
else if (brake.brakeButton.contains(location)) {
car.carNode.physicsBody?.friction = 1
}
}
}
let velY = car.carNode.physicsBody?.velocity.dy car.carNode.physicsBody?.applyForce(CGVector(dx: 100 * velY, dy: 0))
。 - Simone Pistecchia