diff --git a/base/scenes/enemies/test_enemy.tscn b/base/scenes/enemies/test_enemy.tscn index 50d7454..c103c9a 100644 --- a/base/scenes/enemies/test_enemy.tscn +++ b/base/scenes/enemies/test_enemy.tscn @@ -15,7 +15,7 @@ [node name="RotationalSprite" type="Sprite3D" parent="."] billboard = 2 texture_filter = 0 -texture = ExtResource("1_7qny8") +texture = ExtResource("8_snoby") script = ExtResource("2_hmq60") rotations = Dictionary[float, Texture2D]({ 0.0: ExtResource("6_d1vpv"), diff --git a/base/scenes/game.tscn b/base/scenes/game.tscn index 806701a..a49fcbc 100644 --- a/base/scenes/game.tscn +++ b/base/scenes/game.tscn @@ -1,11 +1,15 @@ -[gd_scene load_steps=3 format=3 uid="uid://d23028pr0jahr"] +[gd_scene load_steps=4 format=3 uid="uid://d23028pr0jahr"] [ext_resource type="PackedScene" uid="uid://bgnb01j1nphhi" path="res://base/scenes/rooms/test.tscn" id="1_sjeh3"] [ext_resource type="PackedScene" uid="uid://dwx5tcatj35gu" path="res://base/scenes/player.tscn" id="2_uxs03"] +[ext_resource type="PackedScene" uid="uid://twqkevpn0q1a" path="res://base/scenes/enemies/test_enemy.tscn" id="3_tk4w0"] [node name="Game" type="Node3D"] [node name="Test Room" parent="." instance=ExtResource("1_sjeh3")] [node name="Player" parent="." instance=ExtResource("2_uxs03")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.208048, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.208048, 1.61008) + +[node name="TestEnemy" parent="." instance=ExtResource("3_tk4w0")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.695979) diff --git a/base/scripts/player/player.gd b/base/scripts/player/player.gd index eec896d..af1cfdb 100644 --- a/base/scripts/player/player.gd +++ b/base/scripts/player/player.gd @@ -2,14 +2,18 @@ extends CharacterBody3D @export var speed = 100.0 @export var fall_acceleration = 75.0 +@export var vertical_sensivity = 0.005 +@export var horizontal_sensivity = 0.005 var stack: CommandStack = CommandStack.new() +@onready var camera: Camera3D = $"Camera" @onready var weapon_player: AnimationPlayer = $"HUD/Weapon/AnimationPlayer" # Called when the node enters the scene tree for the first time. func _ready() -> void: weapon_player.current_animation = "static" + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -17,11 +21,20 @@ func _physics_process(delta: float) -> void: var direction = Vector3.ZERO direction.z = Input.get_axis("move_forward", "move_backward") direction.x = Input.get_axis("move_left", "move_right") - - var target_velocity = direction * speed * delta + var target_velocity = (transform.basis * direction).normalized() * speed * delta if not is_on_floor(): target_velocity.y -= fall_acceleration * delta velocity = target_velocity move_and_slide() + +func _input(event): + if event is InputEventMouseMotion: + var new_rotation = clamp( + camera.rotation.x - event.relative.y * vertical_sensivity, + -PI/2, + PI/2 + ) + camera.rotation.x = new_rotation + rotation.y -= event.relative.x * horizontal_sensivity