extends VehicleBody3D # Member variables var shotscene = preload("res://tank-round.tscn") @export var STEER_SPEED = 2.5 @export var STEER_LIMIT = .8 var steer_angle = 0 var steer_target = 0 var view_sensitivity = 0.1; func _process(delta): steering = move_toward(steering, Input.get_axis("ui_left", "ui_right") * STEER_LIMIT, delta * STEER_SPEED) engine_force = Input.get_axis("ui_down", "ui_up") * 300 func _enter_tree(): #Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED); pass func _ready(): set_process_input(true) 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_cshape/cannon_mesh.get_rotation() can_rot.z -= deg_to_rad(plus_pitch) var can_elev = rad_to_deg(can_rot.z) #if can_elev < 7 and can_elev > -30: $turret_cshape/cannon_mesh.set_rotation(can_rot) #print(cannon.get_global_transform().get_rotation()) $turret_cshape.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) 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())