extends VehicleBody # Member variables var shotscene = preload("res://tank-round.tscn") const STEER_SPEED = .25 const STEER_LIMIT = .3 var steer_angle = 0 var steer_target = 0 var view_sensitivity = 0.1; export var engine_force = 20 func _fixed_process(delta): if (Input.is_action_pressed("ui_left")): steer_target = -STEER_LIMIT elif (Input.is_action_pressed("ui_right")): steer_target = STEER_LIMIT else: steer_target = 0 if (Input.is_action_pressed("ui_up")): set_engine_force(engine_force) else: set_engine_force(0) if (Input.is_action_pressed("ui_down")): #set_brake(1) set_engine_force(-engine_force) if (Input.is_action_pressed("driver_break")): set_brake(1.0) else: set_brake(0.0) if (steer_target < steer_angle): steer_angle -= STEER_SPEED*delta if (steer_target > steer_angle): steer_angle = steer_target elif (steer_target > steer_angle): steer_angle += STEER_SPEED*delta if (steer_target < steer_angle): steer_angle = steer_target set_steering(steer_angle) func _enter_tree(): Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED); func _ready(): set_fixed_process(true) set_process_input(true) func _input(ie): if ie.type == InputEvent.MOUSE_MOTION: var turret = get_node("Turret") var cannon = get_node("Turret/Cannon") #var pitch = rad2deg(camera.get_rotation().x) #print(cannon.get_rotation()) var plus_pitch = view_sensitivity * -ie.relative_y var plus_yaw = fmod(view_sensitivity * ie.relative_x,360) var can_rot = cannon.get_rotation() can_rot.z -= deg2rad(plus_pitch) var can_elev = rad2deg(can_rot.z) if can_elev < 7 and can_elev > -30: cannon.set_rotation(can_rot) turret.rotate(Vector3(0,1,0), deg2rad(plus_yaw)) #cannon.rotate(Vector3(0,0,1), deg2rad(plus_pitch)) #print(deg2rad(plus_pitch)) #print(rad2deg(cannon.get_rotation().z)) #print(turret.get_rotation()) elif ie.type == InputEvent.MOUSE_BUTTON: if ie.button_index == BUTTON_LEFT and ie.is_pressed(): print("LEFT CLICK") var shot = shotscene.instance() get_parent().add_child(shot) #shot.set_pos(Vector3(0,0,0)) shot.set_linear_velocity(Vector3(0,0,100))