First Commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
extends Node3D
|
||||
|
||||
#variaveis de propriedades
|
||||
@export_group("Properties")
|
||||
@export var target: Node3D
|
||||
|
||||
#variaveis de zoom
|
||||
@export_group("zoom")
|
||||
@export var zoom_minimum = 16
|
||||
@export var zoom_maximum = 4
|
||||
@export var zoom_speed = 10
|
||||
|
||||
#variaveis de rotação
|
||||
@export_group("Rotation")
|
||||
@export var rotation_speed = 120
|
||||
@export var min_rotation_x = -80
|
||||
@export var max_rotation_x = -10
|
||||
|
||||
var camera_rotation:Vector3
|
||||
var zoom = 10
|
||||
|
||||
#atribuição da camera
|
||||
@onready var Camera = $camera
|
||||
|
||||
#função
|
||||
func _ready():
|
||||
camera_rotation = rotation_degrees #inicia a rotação
|
||||
|
||||
func _physics_process(delta):
|
||||
self.position = self.position.lerp(target.position, delta * 4)
|
||||
rotation_degrees = rotation_degrees.lerp(camera_rotation, delta * 6)
|
||||
|
||||
Camera.position = Camera.position.lerp(Vector3(0, 0, zoom), 8 * delta)
|
||||
|
||||
handle_input(delta)
|
||||
|
||||
func handle_input(delta):
|
||||
#rotação
|
||||
var input := Vector3.ZERO
|
||||
|
||||
#seleção de inputs das teclas
|
||||
input.y = Input.get_axis("ui_left", "ui_right")
|
||||
input.x = Input.get_axis("ui_up", "ui_down")
|
||||
|
||||
camera_rotation += input * rotation_speed * delta
|
||||
camera_rotation.x = clamp(camera_rotation.x, min_rotation_x, max_rotation_x)
|
||||
|
||||
zoom += Input.get_axis("zoom_in", "zoom_out") * zoom_speed * delta
|
||||
zoom = clamp(zoom, zoom_maximum, zoom_minimum)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user