-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCreativeMode.gd
More file actions
39 lines (28 loc) · 1.21 KB
/
Copy pathCreativeMode.gd
File metadata and controls
39 lines (28 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
extends CharacterBody3D
const speed: float = 10
@export var cam_sensitivity: int = 100
var relative: Vector2 = Vector2.ZERO
func _input(event):
if event is InputEventMouseMotion:
relative = event.relative
# Called when the node enters the scene tree for the first time.
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
rotate(Vector3.DOWN, deg_to_rad(relative.x * deg_to_rad(cam_sensitivity) * delta))
rotate(transform.basis.x, deg_to_rad(-relative.y * deg_to_rad(cam_sensitivity) * delta))
relative = Vector2.ZERO
var mult = 1
if Input.is_key_pressed(KEY_SHIFT):
mult = 3
var strafe = Input.get_axis("move_left", "move_right")
if abs(strafe) > 0:
position = position + global_transform.basis.x * speed * strafe * mult * delta
# global_translate(global_transform.basis.x * speed * turn * mult * delta)
var move = Input.get_axis("move_up", "move_down")
if abs(move) > 0:
global_translate(global_transform.basis.z * speed * move * mult * delta)
var height = Input.get_axis("ascend", "descend")
if abs(height) > 0:
global_translate(-global_transform.basis.y * speed * height * mult * delta)