add collisions and player gravity

This commit is contained in:
2024-08-02 00:58:22 -03:00
parent b4faa5d35b
commit 0e6540daf5
6 changed files with 15 additions and 7 deletions

View File

@ -3,7 +3,7 @@ extends Node3D
func _ready():
add_child($Dungeon.generate_geometry())
var spawn = $Dungeon.get_spawn()
var spawn: SpaceSpawn.Desc = $Dungeon.get_spawn()
$Player.position = spawn.position
$Player.position.y += 0.5
$Player.rotation = spawn.rotation

View File

@ -6,7 +6,8 @@ extends CharacterBody3D
const VIEW_BOB_FREQUENCY = 8
const VIEW_BOB_AMPLITUDE = 0.03
var speed := 2
var gravity := 20.0
var speed := 2.0
var turn_speed_sec := 0.1
var turn_degrees := 90
var view_bob_time := 0.0 # increased while velocity is not zero
@ -55,8 +56,7 @@ func _process(delta: float) -> void:
func _physics_process(delta: float) -> void:
# TODO
#velocity.y += gravity * delta
velocity.y -= gravity * delta
var final_velocity = _get_input() * speed
velocity.x = final_velocity.x

View File

@ -15,7 +15,7 @@ func generate_geometry() -> Node3D:
for child in get_children():
if child is SpaceRegion:
var geometry = child.generate_geometry(self)
var geometry: MeshInstance3D = child.generate_geometry(self)
root.add_child(geometry)
return root

View File

@ -56,6 +56,7 @@ func _generate_geometry(space: Space, looked_from_inside: bool) -> Node3D:
if child is SpaceRegion:
geometry.add_child(child._generate_geometry(space, not looked_from_inside))
geometry.create_trimesh_collision()
return geometry