Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | MohamedZindha |
func _physics_process(delta):
var fwd_mps = transform.basis.xform_inv(linear_velocity).x
steer_target = Input.get_action_strength("turn_left") - Input.get_action_strength("turn_right")
steer_target *= STEER_LIMIT
if Input.is_action_pressed("turn_left"):
if steer_value > -1:
steer_value -= 0.25
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),0.25)
if Input.is_action_pressed("turn_right"):
if steer_value < 1:
steer_value += 0.25
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),-0.25)
if Input.is_action_just_released("turn_left"):
while(steer_value != 0):
steer_value += 0.25
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),-0.25)
if Input.is_action_just_released("turn_right"):
while(steer_value != 0):
steer_value -= 0.25
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),0.25)
if Input.is_action_pressed("accelerate"):
# Increase engine force at low speeds to make the initial acceleration faster.
var speed = linear_velocity.length()
if speed < 5 and speed != 0:
engine_force = clamp(engine_force_value * 5 / speed, 0, 100)
else:
engine_force = engine_force_value
else:
engine_force = 0
if Input.is_action_pressed("reverse"):
# Increase engine force at low speeds to make the initial acceleration faster.
if fwd_mps >= -1:
var speed = linear_velocity.length()
if speed < 5 and speed != 0:
engine_force = -clamp(engine_force_value * 5 / speed, 0, 100)
else:
engine_force = -engine_force_value
else:
brake = 1
else:
brake = 0.0
steering = move_toward(steering, steer_target, STEER_SPEED * delta)
Hi I am new to Game development.I have been trying to understand the vehiclebody node and code a very simple game.The above code runs as expected when I play the scene but
when I change the values from 1 to 2 and 0.25 to 0.1 like the below code, the debug console runs at first but like after 3 seconds it freezes.I wonder if it has to do with my system’s memory or there is something I should know.if someone knows what’s going on please help me out. Thanks!
if Input.is_action_pressed("turn_left"):
if steer_value > -2:
steer_value -= 0.1
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),0.1)
if Input.is_action_pressed("turn_right"):
if steer_value < 2:
steer_value += 0.1
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),-0.1)
if Input.is_action_just_released("turn_left"):
while(steer_value != 0):
steer_value += 0.1
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),-0.1)
if Input.is_action_just_released("turn_right"):
while(steer_value != 0):
steer_value -= 0.1
$steeringwheel.transform.basis = $steeringwheel.transform.basis.rotated($steeringwheel.transform.basis.y.normalized(),0.1)