godot-tank-test/assets/scripts/vehicles/scout/tank-base.gd
2024-08-03 14:11:47 +03:00

51 lines
1.7 KiB
GDScript

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())