Checkpoint-System irgendwie komplett verschissen
This commit is contained in:
parent
52da27c158
commit
c2d39d71b2
16 changed files with 154 additions and 35 deletions
BIN
Exports/Linux/2025-05-04(viewportscaling)/ProjektLuzid.apk
Normal file
BIN
Exports/Linux/2025-05-04(viewportscaling)/ProjektLuzid.apk
Normal file
Binary file not shown.
BIN
Exports/Linux/2025-05-04(viewportscaling)/ProjektLuzid.apk.idsig
Normal file
BIN
Exports/Linux/2025-05-04(viewportscaling)/ProjektLuzid.apk.idsig
Normal file
Binary file not shown.
Binary file not shown.
1
Level_Core.gd
Normal file
1
Level_Core.gd
Normal file
|
@ -0,0 +1 @@
|
||||||
|
extends Node3D
|
1
Level_Core.gd.uid
Normal file
1
Level_Core.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cypbow1nrmn5a
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=23 format=3 uid="uid://bn20cqfwvm2oe"]
|
[gd_scene load_steps=24 format=3 uid="uid://bn20cqfwvm2oe"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://wr38f8q1w7yq" path="res://pause_menu.gd" id="1_fwt2i"]
|
[ext_resource type="Script" uid="uid://wr38f8q1w7yq" path="res://main.gd" id="1_fwt2i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bs6yq6gy7k2sb" path="res://player.tscn" id="1_lsi31"]
|
[ext_resource type="PackedScene" uid="uid://bs6yq6gy7k2sb" path="res://player.tscn" id="1_lsi31"]
|
||||||
[ext_resource type="Shape3D" uid="uid://30um6cm5oj6q" path="res://wall_cwt.tres" id="2_7sds5"]
|
[ext_resource type="Shape3D" uid="uid://30um6cm5oj6q" path="res://wall_cwt.tres" id="2_7sds5"]
|
||||||
[ext_resource type="FontFile" uid="uid://rswq6vrwr2nx" path="res://InstrumentSans-VariableFont_wdth,wght.ttf" id="2_fq2vn"]
|
[ext_resource type="FontFile" uid="uid://rswq6vrwr2nx" path="res://InstrumentSans-VariableFont_wdth,wght.ttf" id="2_fq2vn"]
|
||||||
|
@ -30,6 +30,10 @@ albedo_texture = ExtResource("2_gp22r")
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_rv2mx"]
|
[sub_resource type="PlaneMesh" id="PlaneMesh_rv2mx"]
|
||||||
size = Vector2(10, 10)
|
size = Vector2(10, 10)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_33ny2"]
|
||||||
|
transparency = 1
|
||||||
|
albedo_color = Color(0.618889, 0.459095, 1, 1)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o66vw"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o66vw"]
|
||||||
albedo_texture = ExtResource("5_r3eyv")
|
albedo_texture = ExtResource("5_r3eyv")
|
||||||
|
|
||||||
|
@ -101,10 +105,11 @@ shape = ExtResource("3_n0qnv")
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.5, -27.5, 10, 12.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.5, -27.5, 10, 12.5)
|
||||||
mesh = SubResource("PlaneMesh_rv2mx")
|
mesh = SubResource("PlaneMesh_rv2mx")
|
||||||
skeleton = NodePath("../MeshInstance3D")
|
skeleton = NodePath("../MeshInstance3D")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_33ny2")
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D14"]
|
[node name="StaticBody3D_S1" type="StaticBody3D" parent="MeshInstance3D14"]
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D14/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D14/StaticBody3D_S1"]
|
||||||
shape = ExtResource("3_n0qnv")
|
shape = ExtResource("3_n0qnv")
|
||||||
|
|
||||||
[node name="MeshInstance3D25" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D25" type="MeshInstance3D" parent="."]
|
||||||
|
@ -121,12 +126,19 @@ shape = ExtResource("3_n0qnv")
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.5, -27.5, 10, 7.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.5, -27.5, 10, 7.5)
|
||||||
mesh = SubResource("PlaneMesh_rv2mx")
|
mesh = SubResource("PlaneMesh_rv2mx")
|
||||||
skeleton = NodePath("../MeshInstance3D")
|
skeleton = NodePath("../MeshInstance3D")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_33ny2")
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D24"]
|
[node name="StaticBody3D_S1" type="StaticBody3D" parent="MeshInstance3D24"]
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D24/StaticBody3D"]
|
[node name="CollisionShape3D_S1" type="CollisionShape3D" parent="MeshInstance3D24/StaticBody3D_S1"]
|
||||||
shape = ExtResource("3_n0qnv")
|
shape = ExtResource("3_n0qnv")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D49" type="MeshInstance3D" parent="."]
|
||||||
|
transform = Transform3D(-3.49691e-08, -1, -1.31134e-08, 0, -4.37114e-08, 0.3, -0.8, 4.37114e-08, 5.73206e-16, -30.8179, 12, 10.0294)
|
||||||
|
mesh = SubResource("PlaneMesh_rv2mx")
|
||||||
|
skeleton = NodePath("../MeshInstance3D")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_33ny2")
|
||||||
|
|
||||||
[node name="MeshInstance3D26" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D26" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.353553, 0, -0.707107, 0.353553, -12.5, 10, 12.5)
|
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.353553, 0, -0.707107, 0.353553, -12.5, 10, 12.5)
|
||||||
mesh = SubResource("PlaneMesh_rv2mx")
|
mesh = SubResource("PlaneMesh_rv2mx")
|
||||||
|
@ -280,7 +292,7 @@ skeleton = NodePath("../MeshInstance3D")
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D48"]
|
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D48"]
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D48/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D48/StaticBody3D"]
|
||||||
shape = ExtResource("3_n0qnv")
|
shape = ExtResource("2_7sds5")
|
||||||
|
|
||||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D6" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -10)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -10)
|
||||||
|
@ -493,6 +505,7 @@ mesh = SubResource("PlaneMesh_rv2mx")
|
||||||
shape = ExtResource("3_n0qnv")
|
shape = ExtResource("3_n0qnv")
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("1_lsi31")]
|
[node name="Player" parent="." instance=ExtResource("1_lsi31")]
|
||||||
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 1.3736)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 1.3736)
|
||||||
top_level = true
|
top_level = true
|
||||||
linear_damp = 3.0
|
linear_damp = 3.0
|
||||||
|
@ -553,7 +566,7 @@ transform = Transform3D(-4.37113e-08, 0, -1, 0, 1, 0, 0.999999, 0, -4.37115e-08,
|
||||||
offset = Vector2(1, 0)
|
offset = Vector2(1, 0)
|
||||||
modulate = Color(0.943031, 0.787658, 0.994854, 1)
|
modulate = Color(0.943031, 0.787658, 0.994854, 1)
|
||||||
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
|
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
|
||||||
text = "In this sattion, you need to solve some mathematical
|
text = "In this station, you need to solve some mathematical
|
||||||
equations (I know, boring) and get the answer right.
|
equations (I know, boring) and get the answer right.
|
||||||
If you end up answering even one wrong, you'll have
|
If you end up answering even one wrong, you'll have
|
||||||
to restart this entire station. this section also
|
to restart this entire station. this section also
|
||||||
|
|
6
checkpoints.gd
Normal file
6
checkpoints.gd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var reachedCheckpoint = 0
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
print("owo");
|
1
checkpoints.gd.uid
Normal file
1
checkpoints.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://tfbssbkoeg6p
|
|
@ -162,7 +162,7 @@ custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path=""
|
export_path="Exports/Linux/2025-05-04(viewportscaling)/ProjektLuzid.apk"
|
||||||
patches=PackedStringArray()
|
patches=PackedStringArray()
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
|
@ -182,10 +182,10 @@ gradle_build/compress_native_libraries=false
|
||||||
gradle_build/export_format=0
|
gradle_build/export_format=0
|
||||||
gradle_build/min_sdk=""
|
gradle_build/min_sdk=""
|
||||||
gradle_build/target_sdk=""
|
gradle_build/target_sdk=""
|
||||||
architectures/armeabi-v7a=false
|
architectures/armeabi-v7a=true
|
||||||
architectures/arm64-v8a=true
|
architectures/arm64-v8a=true
|
||||||
architectures/x86=false
|
architectures/x86=false
|
||||||
architectures/x86_64=false
|
architectures/x86_64=true
|
||||||
version/code=1
|
version/code=1
|
||||||
version/name=""
|
version/name=""
|
||||||
package/unique_name="com.example.$genname"
|
package/unique_name="com.example.$genname"
|
||||||
|
|
|
@ -14,3 +14,18 @@ background_color = Color(0.6242, 0.697431, 1, 1)
|
||||||
environment = SubResource("Environment_v4kxd")
|
environment = SubResource("Environment_v4kxd")
|
||||||
camera_attributes = SubResource("CameraAttributesPhysical_em7y1")
|
camera_attributes = SubResource("CameraAttributesPhysical_em7y1")
|
||||||
compositor = SubResource("Compositor_dpk2q")
|
compositor = SubResource("Compositor_dpk2q")
|
||||||
|
|
||||||
|
[node name="Label3D" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.409805, 0.488044, 0)
|
||||||
|
text = "This is a label"
|
||||||
|
|
||||||
|
[node name="Label3D2" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.208084, 0.488044, -0.544811)
|
||||||
|
text = "This is also a label,
|
||||||
|
just further away"
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="."]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
49
main.gd
Normal file
49
main.gd
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
extends Node3D
|
||||||
|
@onready var pause_menu = $PauseMenu
|
||||||
|
|
||||||
|
var paused = false
|
||||||
|
#var showpaused = false
|
||||||
|
var checkpoint = "checkpoint0"
|
||||||
|
var checkpoint0 = Vector3(0, 2, 1.374)
|
||||||
|
var checkpoint1 = Vector3(-27.5, 13, 12.5)
|
||||||
|
var checkpoint2 = Vector3(0, 22, 1.374)
|
||||||
|
var time_accum = 0.0 # Timer accumulator
|
||||||
|
@onready var player = get_node("Player")
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var player = get_node("Player")
|
||||||
|
# while true:
|
||||||
|
# wait(5)
|
||||||
|
# print(player.checkpoint)
|
||||||
|
|
||||||
|
|
||||||
|
# DEBUG SECTION: Testing whether checkpoint value is accessible by printing it every 4 seconds
|
||||||
|
#func _process(delta: float) -> void:
|
||||||
|
# var player = get_node("Player")
|
||||||
|
# time_accum += delta
|
||||||
|
# if time_accum >= 4.0:
|
||||||
|
# print("Checkpoint:", player.checkpoint)
|
||||||
|
# time_accum = 0.0
|
||||||
|
|
||||||
|
func wait(seconds: float) -> void:
|
||||||
|
await get_tree().create_timer(seconds).timeout
|
||||||
|
|
||||||
|
func _process(delta: float):
|
||||||
|
if Input.is_action_just_pressed("ui_cancel"):
|
||||||
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||||
|
pauseMenu()
|
||||||
|
elif Input.is_action_just_pressed("proluz_ui_respawn"):
|
||||||
|
player.teleport_to_checkpoint
|
||||||
|
|
||||||
|
func pauseMenu():
|
||||||
|
if paused:
|
||||||
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
|
pause_menu.hide()
|
||||||
|
Engine.time_scale = 1
|
||||||
|
else:
|
||||||
|
pause_menu.show()
|
||||||
|
Engine.time_scale = 0.00001
|
||||||
|
# Engine.time_scale = -1
|
||||||
|
|
||||||
|
paused = !paused
|
|
@ -1,21 +0,0 @@
|
||||||
extends Node3D
|
|
||||||
@onready var pause_menu = $PauseMenu
|
|
||||||
|
|
||||||
var paused = false
|
|
||||||
#var showpaused = false
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
if Input.is_action_just_pressed("ui_cancel"):
|
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
|
||||||
pauseMenu()
|
|
||||||
func pauseMenu():
|
|
||||||
if paused:
|
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
|
||||||
pause_menu.hide()
|
|
||||||
Engine.time_scale = 1
|
|
||||||
else:
|
|
||||||
pause_menu.show()
|
|
||||||
Engine.time_scale = 0.00001
|
|
||||||
# Engine.time_scale = -1
|
|
||||||
|
|
||||||
paused = !paused
|
|
52
player.gd
52
player.gd
|
@ -4,13 +4,61 @@ extends RigidBody3D
|
||||||
var mouse_sensitivity := 0.001
|
var mouse_sensitivity := 0.001
|
||||||
var twist_input := 0.0
|
var twist_input := 0.0
|
||||||
var pitch_input := 0.0
|
var pitch_input := 0.0
|
||||||
|
#@onready var levelcore = get_node("/root/Level_Core/LevelCore")
|
||||||
|
|
||||||
@onready var twist_pivot := $TwistPivot
|
|
||||||
@onready var pitch_pivot := $TwistPivot/PitchPivot
|
|
||||||
|
|
||||||
# Do not touch this part of the code
|
# Do not touch this part of the code
|
||||||
|
@onready var twist_pivot := $TwistPivot
|
||||||
|
@onready var pitch_pivot := $TwistPivot/PitchPivot
|
||||||
|
var levelcore: Node
|
||||||
|
var checkpoint: Vector3
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
|
while not get_node_or_null("/Level_Core/LevelCore"):
|
||||||
|
await get_tree().process_frame # Yield until the next frame
|
||||||
|
levelcore = get_node("/Level_Core/LevelCore")
|
||||||
|
checkpoint = levelcore.checkpoint
|
||||||
|
var player = get_node("/player/Player")
|
||||||
|
|
||||||
|
# If touches object
|
||||||
|
var touched = false
|
||||||
|
|
||||||
|
func teleport_to_checkpoint():
|
||||||
|
if levelcore.has_variable(checkpoint):
|
||||||
|
var target_position = levelcore.checkpoint
|
||||||
|
global_transform.origin = target_position
|
||||||
|
print("teleport to ", target_position, " successful")
|
||||||
|
else:
|
||||||
|
print("checkpoint ", checkpoint, " does not exist")
|
||||||
|
|
||||||
|
func _integrate_forces(state):
|
||||||
|
while not get_node_or_null("/root/Level_Core/LevelCore"):
|
||||||
|
await get_tree().process_frame
|
||||||
|
levelcore = get_node("/root/Level_Core/LevelCore")
|
||||||
|
print("levelcore set!")
|
||||||
|
for i in range(state.get_contact_count()):
|
||||||
|
var collider = state.get_contact_collider_object(i)
|
||||||
|
if collider is StaticBody3D and collider.name == "StaticBody3D_S1":
|
||||||
|
checkpoint = levelcore.checkpoint1
|
||||||
|
print("chat we hit the checkpoint one")
|
||||||
|
|
||||||
|
#func _integrate_forces(state):
|
||||||
|
# for i in range(state.get_contact_count()):
|
||||||
|
# var collider = state.get_contact_collider_object(i)
|
||||||
|
# print("Collided with: ", collider)
|
||||||
|
# print("Name: ", collider.name)
|
||||||
|
# if collider is StaticBody3D and collider.name == "StaticBody3D_S1":
|
||||||
|
# touched = true
|
||||||
|
# print(">>> MATCH! <<<")
|
||||||
|
|
||||||
|
#func _integrate_forces(state):
|
||||||
|
# for i in range(state.get_contact_count()):
|
||||||
|
# var collider = state.get_contact_collider_object(i)
|
||||||
|
# print("Collision with: ", collider)
|
||||||
|
# if collider:
|
||||||
|
# print("Name: ", collider.name)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
var input := Vector3.ZERO
|
var input := Vector3.ZERO
|
||||||
|
|
|
@ -9,6 +9,8 @@ points = PackedVector3Array(-0.125207, -0.532801, -0.480507, 0.0227831, 0.47607,
|
||||||
|
|
||||||
[node name="Player" type="RigidBody3D"]
|
[node name="Player" type="RigidBody3D"]
|
||||||
lock_rotation = true
|
lock_rotation = true
|
||||||
|
contact_monitor = true
|
||||||
|
max_contacts_reported = 4
|
||||||
script = ExtResource("1_4flbx")
|
script = ExtResource("1_4flbx")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
|
|
|
@ -27,7 +27,6 @@ DiscordRPCLoader="*res://addons/discord-rpc-gd/nodes/discord_autoload.gd"
|
||||||
window/size/viewport_width=1920
|
window/size/viewport_width=1920
|
||||||
window/size/viewport_height=1080
|
window/size/viewport_height=1080
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
window/stretch/aspect="ignore"
|
|
||||||
|
|
||||||
[editor_plugins]
|
[editor_plugins]
|
||||||
|
|
||||||
|
@ -65,6 +64,11 @@ proluz_ui_pause={
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
proluz_ui_respawn={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue