extends VehicleBody3D # Member variables var s#hotscene = preload("res://tank-round.tscn") @export var _steer_speed = 2.5 @export var _steer_limit = .8 @export var _engine_force = 1000.0 var steer_angle = 0 var steer_target = 0 var view_sensitivity = 0.1; func _process(delta): steering = move_toward(steering, Input.get_axis("vehicle_right", "vehicle_left") * _steer_limit, delta * _steer_speed) engine_force = Input.get_axis("vehicle_decel", "vehicle_accel") * _engine_force func _ready(): Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED); func _input(ie): if ie is InputEventMouseMotion: var plus_pitch = view_sensitivity * -ie.relative.y var plus_yaw = fmod(view_sensitivity * -ie.relative.x,360) var can_rot = $turret/cannon.get_rotation() print(plus_pitch) can_rot.x -= deg_to_rad(plus_pitch) var can_elev = rad_to_deg(can_rot.x) print(can_elev) #if can_elev < 7 and can_elev > -30: $turret/cannon.set_rotation(can_rot) #print(cannon.get_global_transform().get_rotation()) $turret.rotate(Vector3(0,1,0), deg_to_rad(plus_yaw)) #elif ie is InputEventMouseButton: # if ie.button_index == MOUSE_BUTTON_LEFT and ie.is_pressed(): # var shot = shotscene.instantiate() # get_parent().add_child(shot) # $turret_cshape/cannon_mesh/RayCast3D. # var shot_dir = $turret_cshape/cannon_mesh/Aimpoint.get_global_transform().origin - $turret_cshape/cannon_mesh.get_global_transform().origin # shot.set_transform($turret_cshape/cannon_mesh/Aimpoint.get_global_transform()) # shot.set_linear_velocity(shot_dir.normalized() * 100.0) #shot.set_linear_velocity(shot.get_rotation().normalized() * 10) #shot.connect("body_enter", self, "shot_hit") func shot_hit(obj): print ("Own shot hit obj: " + obj.get_name())