Gravity done!

This commit is contained in:
cow 2024-06-19 22:16:10 -04:00
parent 02d3f976de
commit 8e2ada0cbe
7 changed files with 60 additions and 12 deletions

@ -1,6 +1,7 @@
extends Node
var global_down = Vector3(0,0,0)
# Random inital value to avoid divisions by 0
var global_down = Vector3(0.01,0,0)
var sensitivity = 0.004
var fov = 75
@ -8,11 +9,12 @@ var fov = 75
func _ready():
set_global_down(Vector3(0,-1,0))
func set_global_down(newDown: Vector3):
global_down = newDown.normalized()
func set_global_down(new_down: Vector3):
var old_down = global_down
global_down = new_down.normalized()
if global_down.dot(Vector3.UP) == 1 || global_down.dot(Vector3.DOWN) == 1:
# Applies jitter
global_down += Vector3(0.01,0,0)
global_down += old_down * 0.01
# REMINDER:
# Layer 1 : everything

@ -60,3 +60,6 @@ texture = ExtResource("4_fuh05")
[node name="MeshInstance3D" type="MeshInstance3D" parent="level"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("CapsuleMesh_1nqfw")
[node name="true_level" type="Node3D" parent="level"]
top_level = true

@ -1,5 +1,6 @@
extends Node3D
var alpha = 0.2
# Called when the node enters the scene tree for the first time.
func _ready():
@ -7,6 +8,8 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
func _process(delta):
#rotation=Globals.global_rotate
look_at(position + Globals.global_down)
$true_level.look_at($true_level.position + Globals.global_down)
quaternion = quaternion.slerp($true_level.quaternion, 1 - alpha ** delta)

@ -0,0 +1,13 @@
extends Area3D
@export var down = Vector3(0, -1, 0)
# Called when the node enters the scene tree for the first time.
func _ready():
body_entered.connect(_on_area_entered)
func _on_area_entered(body : Node3D) -> void:
var new_down = quaternion * down
print ("Changing gravity to: ", new_down)
Globals.set_global_down(new_down)

@ -0,0 +1,12 @@
[gd_scene load_steps=3 format=3 uid="uid://bnsyxg7xsjri1"]
[ext_resource type="Script" path="res://primitives/gravity_changer/gravity_changer.gd" id="1_oxv17"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hwemw"]
[node name="gravity_changer" type="Area3D"]
collision_mask = 4
script = ExtResource("1_oxv17")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_hwemw")

@ -1,8 +1,9 @@
[gd_scene load_steps=9 format=3 uid="uid://bjs6r15h7ge62"]
[gd_scene load_steps=10 format=3 uid="uid://bjs6r15h7ge62"]
[ext_resource type="Material" uid="uid://c2bppsuxirk3j" path="res://rooms/yellow/wall_yellow.tres" id="1_r5s2i"]
[ext_resource type="Material" uid="uid://bk5bvrignm0qk" path="res://rooms/blue/emissive_lights.tres" id="3_36idt"]
[ext_resource type="PackedScene" uid="uid://bcsejkg5vcjgl" path="res://primitives/skybox/skybox.blend" id="3_75x0b"]
[ext_resource type="PackedScene" uid="uid://bnsyxg7xsjri1" path="res://primitives/gravity_changer/gravity_changer.tscn" id="4_l8ock"]
[sub_resource type="BoxShape3D" id="BoxShape3D_sn4y7"]
size = Vector3(100, 100, 100)
@ -185,3 +186,21 @@ ambient_color_energy = 11.43
[node name="skybox" parent="." instance=ExtResource("3_75x0b")]
transform = Transform3D(800, 0, 0, 0, 800, 0, 0, 0, 800, 0, 0, 0)
[node name="GravityChanger" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(100, 0, 0, 0, 1, 0, 0, 0, 100, 0, -50, 0)
[node name="GravityChanger6" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(100, 0, 0, 0, -4.37114e-08, -100, 0, 1, -4.37114e-06, 0, 0, -50)
[node name="GravityChanger5" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(100, 0, 0, 0, -4.37114e-08, 100, 0, -1, -4.37114e-06, 0, 0, 50)
[node name="GravityChanger4" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(-4.37114e-06, -1, 0, 100, -4.37114e-08, 0, 0, 0, 100, 50, 0, 0)
[node name="GravityChanger3" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(-4.37114e-06, 1, 0, -100, -4.37114e-08, 0, 0, 0, 100, -50, 0, 0)
[node name="GravityChanger2" parent="." instance=ExtResource("4_l8ock")]
transform = Transform3D(-100, 8.74228e-08, 0, -8.74228e-06, -1, 0, 0, 0, 100, 0, 50, 0)

@ -1,8 +1,7 @@
[gd_scene load_steps=11 format=3 uid="uid://dosqj5u034nai"]
[gd_scene load_steps=10 format=3 uid="uid://dosqj5u034nai"]
[ext_resource type="PackedScene" uid="uid://pyhlicd4a0ec" path="res://player/player_node.tscn" id="1_6ggf4"]
[ext_resource type="PackedScene" uid="uid://bjs6r15h7ge62" path="res://rooms/yellow/room_yellow_floor.tscn" id="3_1isy3"]
[ext_resource type="PackedScene" uid="uid://ccbxd6724rlfj" path="res://rooms/blue/room_blue_floor.tscn" id="3_ql6ir"]
[ext_resource type="PackedScene" uid="uid://5pnqeh3rmtel" path="res://ui/main_menu.tscn" id="4_7iuiw"]
[ext_resource type="PackedScene" uid="uid://tdcxcrg6ktpl" path="res://objectives/objective.tscn" id="5_r66y3"]
[ext_resource type="PackedScene" uid="uid://bkgacevpcgbtj" path="res://audio/music/music_engine.tscn" id="6_8a4j4"]
@ -22,8 +21,6 @@ points = PackedVector3Array(-0.5, -0.5, -0.5, 0.5, -0.5, -0.5, -0.5, 0.5, -0.5,
[node name="player" parent="." instance=ExtResource("1_6ggf4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.3796, 0)
[node name="room_blue_floor" parent="." instance=ExtResource("3_ql6ir")]
[node name="s" type="RigidBody3D" parent="."]
mass = 0.25
physics_material_override = SubResource("PhysicsMaterial_8njux")
@ -40,7 +37,6 @@ transform = Transform3D(3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_3iv3b")
[node name="StaticBody3D" parent="." instance=ExtResource("3_1isy3")]
visible = false
[node name="objective" parent="." instance=ExtResource("5_r66y3")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.1414, -48.7976, 15.7991)