diff options
| author | realtradam <[email protected]> | 2020-03-14 17:47:27 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2020-03-14 17:47:27 -0400 |
| commit | ace8100600de99aed17c5de718b582749f126168 (patch) | |
| tree | 28caece492919039b26167bf61026618dc17688c /Racing-Game/BackWheel.gd | |
| parent | f435ce10e93d7798ad4fe43be33cd01a4edd3dfb (diff) | |
| download | optimal-direction-ace8100600de99aed17c5de718b582749f126168.tar.gz optimal-direction-ace8100600de99aed17c5de718b582749f126168.zip | |
Some file refactoring was completed.
Diffstat (limited to 'Racing-Game/BackWheel.gd')
| -rw-r--r-- | Racing-Game/BackWheel.gd | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/Racing-Game/BackWheel.gd b/Racing-Game/BackWheel.gd deleted file mode 100644 index b5d8297..0000000 --- a/Racing-Game/BackWheel.gd +++ /dev/null @@ -1,121 +0,0 @@ -extends RigidBody2D - -#Accelerating -var hp = 4.0 -var acceleration = 5 -var isForward = true - -var velocity - -var lastLoc = 0; - -var wheelSlip = Vector2(0,0); -var isSkid = false; - -signal slip -signal end -var elapsed = 0 -# -var gripDelay = 0 -var carAngle -var carVector -var velVector - -# Called when the node enters the scene tree for the first time. -func _ready(): - lastLoc = get_position_in_parent() - pass # Replace with function body. - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - carAngle = get_node("../../../CarBody").get_transform().get_rotation() - carVector = Vector2(cos(carAngle + PI/2),sin(carAngle + PI/2)) - velVector = get_node("../../../CarBody").get_linear_velocity() - velocity = measure_velocity() - isForward = is_forward() - set_rotation(carAngle) - isSlip(delta) - -# gripDelay = has_grip(0.4,delta) - - isSkid = Input.is_action_pressed("grip") - - if Input.is_action_pressed("grip") || Input.is_action_pressed("break"): - null_slide(max(5,velocity/7),delta) - else: - null_slide(1,delta) - #Braking - if Input.is_action_pressed("break"): - if velocity > 20: - linear_damp = 2 - else: - linear_damp = 5 - else: - linear_damp = 0.01 - -# createLine(lastLoc, get_position_in_parent()) -# lastLoc = get_position_in_parent() - - if Input.is_action_pressed("forward"): - if !Input.is_action_pressed("break"): - apply_central_impulse(Vector2(0,-gear(velocity, hp, acceleration)).rotated(carAngle)*delta*5000) - else: - pass - elif Input.is_action_pressed("backward"): - if !Input.is_action_pressed("break"): - apply_central_impulse(Vector2(0,(1)).rotated(carAngle)*delta*5000) - else: - pass - -func null_slide(var strength, var delta): - #strength is how strong you would like the nullify to be - #higher is less sliding/drifting - var movementUnitVector = get_linear_velocity().normalized()#the direction of the velocity - var directionAngle = carAngle + (PI/2.0)#the angle the car is facing(relative to the world) - var directionUnitVector = Vector2(cos(directionAngle),sin(directionAngle)).normalized()#the direction the car is facing - var nullify = directionUnitVector * movementUnitVector.dot(directionUnitVector) - wheelSlip = (-(movementUnitVector - nullify))*strength - apply_central_impulse(wheelSlip*delta*5000) - -func isSlip(time): - if (wheelSlip.length() > 0.2): - emit_signal("slip") - else: - emit_signal("end") - -#func createLine(from, to): -# var tires = get_node("./MyLine") -# tires.add_point(from) -# tires.add_point(to) - -#func has_grip(var tractionDelay, var delta): -# var movementUnitVector = get_linear_velocity().normalized()#the direction of the velocity -# var directionAngle = carAngle#the angle the car is facing(relative to the world) -# var directionUnitVector = Vector2(cos(directionAngle),sin(directionAngle)).normalized()#the direction the car is facing -# if velocity > 10: -# if Input.is_action_pressed("grip"):##if pressing shift -# gripDelay = tractionDelay -# elif (gripDelay <= 0 && abs(movementUnitVector.dot(directionUnitVector)) > 0.4):#if not drifting but past steering point -# gripDelay = tractionDelay -# elif gripDelay > 0 && abs(movementUnitVector.dot(directionUnitVector)) > 0.3:#if drifting and past steering point -# gripDelay = tractionDelay -# elif gripDelay > 0:#if at recovery point and drifting -# gripDelay -= delta -# else: -# gripDelay = 0 -# return gripDelay - -func measure_velocity(): - return sqrt(get_linear_velocity().dot(get_linear_velocity()))/12 - -func is_forward():#determines if the car is driving forward, or backward - var carVector = Vector2(cos(carAngle + PI/2),sin(carAngle + PI/2)) - if velVector == Vector2(0,0) || carVector == Vector2(0,0): - return true - if velVector.dot(carVector) <= 0: - return true - else: - return false - -func gear(var rpm, var maxPower, var topSpeed): - return max(-pow((rpm/((1000/topSpeed)/sqrt(maxPower)))-sqrt(maxPower),2)+(maxPower+1),0) |
