Version 1.0 finished.
parent
ffcacb8fd7
commit
fc109e0ed9
22
level.tscn
22
level.tscn
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=146 format=4 uid="uid://dv2iwxsd3rqha"]
|
[gd_scene load_steps=149 format=4 uid="uid://dv2iwxsd3rqha"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="1_8b0r0"]
|
[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="1_8b0r0"]
|
||||||
[ext_resource type="AudioStream" uid="uid://de8rodemmcmg1" path="res://How German Sounds To Non-Germans (mp3cut.net).mp3" id="1_fj6e6"]
|
[ext_resource type="AudioStream" uid="uid://de8rodemmcmg1" path="res://How German Sounds To Non-Germans (mp3cut.net).mp3" id="1_fj6e6"]
|
||||||
|
|
@ -46,6 +46,8 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://d1bmffs5q85hn" path="res://addons/godot-xr-tools/objects/paper.tscn" id="42_k1ecl"]
|
[ext_resource type="PackedScene" uid="uid://d1bmffs5q85hn" path="res://addons/godot-xr-tools/objects/paper.tscn" id="42_k1ecl"]
|
||||||
[ext_resource type="Texture2D" uid="uid://byroxl3ej812v" path="res://111.png" id="44_td4uw"]
|
[ext_resource type="Texture2D" uid="uid://byroxl3ej812v" path="res://111.png" id="44_td4uw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c0bfv7taawf0l" path="res://222.png" id="45_r5f7e"]
|
[ext_resource type="Texture2D" uid="uid://c0bfv7taawf0l" path="res://222.png" id="45_r5f7e"]
|
||||||
|
[ext_resource type="Script" uid="uid://chtlkg6lvxdwh" path="res://victory_zone.gd" id="47_na3no"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://capgoevf35pnj" path="res://victory-nomination-winner-champion-music-249655.mp3" id="47_wp8k7"]
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_h6smj"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_h6smj"]
|
||||||
sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
|
sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
|
||||||
|
|
@ -519,6 +521,9 @@ points = PackedVector3Array(0.008628573, 0.7075936, -0.500077, -0.032590475, 0.6
|
||||||
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_s7ylq"]
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_s7ylq"]
|
||||||
points = PackedVector3Array(-0.032590475, 0.63890195, -0.4313853, 0.008628573, 0.7075869, -0.40391266, 0.008628573, 0.7075869, -0.41765907, 0.008628573, 0.63890195, -0.40391266, -0.018848103, 0.7075869, -0.40391266, -0.018848103, 0.7075869, -0.44513172, -0.005117834, 0.63890195, -0.4313853, -0.018848103, 0.63890195, -0.40391266, -0.032590475, 0.7075869, -0.41765907, -0.032590475, 0.65264434, -0.44513172, -0.032590475, 0.7075869, -0.44513172, 0.008628573, 0.63890195, -0.41765907, -0.032590475, 0.63890195, -0.41765907, -0.018848103, 0.65264434, -0.44513172)
|
points = PackedVector3Array(-0.032590475, 0.63890195, -0.4313853, 0.008628573, 0.7075869, -0.40391266, 0.008628573, 0.7075869, -0.41765907, 0.008628573, 0.63890195, -0.40391266, -0.018848103, 0.7075869, -0.40391266, -0.018848103, 0.7075869, -0.44513172, -0.005117834, 0.63890195, -0.4313853, -0.018848103, 0.63890195, -0.40391266, -0.032590475, 0.7075869, -0.41765907, -0.032590475, 0.65264434, -0.44513172, -0.032590475, 0.7075869, -0.44513172, 0.008628573, 0.63890195, -0.41765907, -0.032590475, 0.63890195, -0.41765907, -0.018848103, 0.65264434, -0.44513172)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_r5f7e"]
|
||||||
|
size = Vector3(0.33154297, 2.4052734, 1.053772)
|
||||||
|
|
||||||
[node name="Level" type="Node3D"]
|
[node name="Level" type="Node3D"]
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
|
@ -1296,6 +1301,21 @@ linear_damp = 0.4
|
||||||
texture_baby = ExtResource("44_td4uw")
|
texture_baby = ExtResource("44_td4uw")
|
||||||
texture_teen = ExtResource("45_r5f7e")
|
texture_teen = ExtResource("45_r5f7e")
|
||||||
|
|
||||||
|
[node name="VictoryZone" type="Area3D" parent="." node_paths=PackedStringArray("fade_mesh", "victory_label", "victory_label2", "victory_music")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.311865, 1.1331652, 0.37483346)
|
||||||
|
script = ExtResource("47_na3no")
|
||||||
|
fade_mesh = NodePath("../Player/Camera/FadeScreen")
|
||||||
|
victory_label = NodePath("../Player/Camera/FadeScreen/Label3D")
|
||||||
|
victory_label2 = NodePath("../Player/Camera/FadeScreen/Label3D2")
|
||||||
|
victory_music = NodePath("AudioStreamPlayer")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="VictoryZone"]
|
||||||
|
shape = SubResource("BoxShape3D_r5f7e")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="VictoryZone"]
|
||||||
|
stream = ExtResource("47_wp8k7")
|
||||||
|
volume_db = -10.0
|
||||||
|
|
||||||
[editable path="Player"]
|
[editable path="Player"]
|
||||||
[editable path="WheelSpace"]
|
[editable path="WheelSpace"]
|
||||||
[editable path="Desk/DrawerSpace"]
|
[editable path="Desk/DrawerSpace"]
|
||||||
|
|
|
||||||
30
player.tscn
30
player.tscn
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://srkkei4i3bwx"]
|
[gd_scene load_steps=11 format=3 uid="uid://srkkei4i3bwx"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://njx823gyk04n" path="res://addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn" id="2_hqtel"]
|
[ext_resource type="PackedScene" uid="uid://njx823gyk04n" path="res://addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn" id="2_hqtel"]
|
||||||
[ext_resource type="PackedScene" uid="uid://raeeicvvindd" path="res://addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn" id="2_i3pqv"]
|
[ext_resource type="PackedScene" uid="uid://raeeicvvindd" path="res://addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn" id="2_i3pqv"]
|
||||||
|
|
@ -9,10 +9,37 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://buevt1k3wgtq6" path="res://watch.tscn" id="6_1jxqw"]
|
[ext_resource type="PackedScene" uid="uid://buevt1k3wgtq6" path="res://watch.tscn" id="6_1jxqw"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="7_dw050"]
|
[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="7_dw050"]
|
||||||
|
|
||||||
|
[sub_resource type="QuadMesh" id="QuadMesh_dw050"]
|
||||||
|
size = Vector2(2, 2)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_b26j0"]
|
||||||
|
transparency = 1
|
||||||
|
depth_draw_mode = 1
|
||||||
|
shading_mode = 0
|
||||||
|
albedo_color = Color(0, 0, 0, 0)
|
||||||
|
|
||||||
[node name="Player" type="XROrigin3D" groups=["Baby"]]
|
[node name="Player" type="XROrigin3D" groups=["Baby"]]
|
||||||
|
|
||||||
[node name="Camera" type="XRCamera3D" parent="."]
|
[node name="Camera" type="XRCamera3D" parent="."]
|
||||||
|
|
||||||
|
[node name="FadeScreen" type="MeshInstance3D" parent="Camera"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.6)
|
||||||
|
mesh = SubResource("QuadMesh_dw050")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_b26j0")
|
||||||
|
|
||||||
|
[node name="Label3D" type="Label3D" parent="Camera/FadeScreen"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.110438704, 0.018422484)
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
outline_modulate = Color(0, 0, 0, 0)
|
||||||
|
text = "YEARS APART"
|
||||||
|
|
||||||
|
[node name="Label3D2" type="Label3D" parent="Camera/FadeScreen"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.10656129, 0.014999986)
|
||||||
|
pixel_size = 0.0025
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
outline_modulate = Color(0, 0, 0, 0)
|
||||||
|
text = "by Lukas, Daniel & Selim"
|
||||||
|
|
||||||
[node name="LeftController" type="XRController3D" parent="."]
|
[node name="LeftController" type="XRController3D" parent="."]
|
||||||
tracker = &"left_hand"
|
tracker = &"left_hand"
|
||||||
|
|
||||||
|
|
@ -53,5 +80,6 @@ camera = NodePath("../../Camera")
|
||||||
transform = Transform3D(0.00025759128, -0.0019833425, 0, 0.0018915471, 0.00024566916, -0.0006014116, 0.00059640256, 7.745919e-05, 0.001907434, 0, -0.034, 0.108)
|
transform = Transform3D(0.00025759128, -0.0019833425, 0, 0.0018915471, 0.00024566916, -0.0006014116, 0.00059640256, 7.745919e-05, 0.001907434, 0, -0.034, 0.108)
|
||||||
|
|
||||||
[node name="PlayerBody" parent="." instance=ExtResource("4_2hs0m")]
|
[node name="PlayerBody" parent="." instance=ExtResource("4_2hs0m")]
|
||||||
|
collision_layer = 524289
|
||||||
player_height_rate = 20.0
|
player_height_rate = 20.0
|
||||||
head_behavior_mode = 2
|
head_behavior_mode = 2
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://capgoevf35pnj"
|
||||||
|
path="res://.godot/imported/victory-nomination-winner-champion-music-249655.mp3-9490f8650742a132348c4afaf3897f0c.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://victory-nomination-winner-champion-music-249655.mp3"
|
||||||
|
dest_files=["res://.godot/imported/victory-nomination-winner-champion-music-249655.mp3-9490f8650742a132348c4afaf3897f0c.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
extends Area3D
|
||||||
|
|
||||||
|
# Referenzen (müssen wir gleich zuweisen)
|
||||||
|
@export var fade_mesh : MeshInstance3D
|
||||||
|
@export var victory_label : Label3D
|
||||||
|
@export var victory_label2 : Label3D
|
||||||
|
@export var victory_music : AudioStreamPlayer
|
||||||
|
|
||||||
|
var is_triggered = false
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
body_entered.connect(_on_finish_line)
|
||||||
|
|
||||||
|
func _on_finish_line(body):
|
||||||
|
# Wir prüfen, ob der PlayerBody (vom XRToolsPlayerBody) durchläuft
|
||||||
|
# Oder der "CharacterBody3D" name. Meistens heißt er "PlayerBody"
|
||||||
|
if not is_triggered and (body.name == "PlayerBody" or body is CharacterBody3D):
|
||||||
|
finish_game()
|
||||||
|
|
||||||
|
func finish_game():
|
||||||
|
is_triggered = true
|
||||||
|
print("VICTORY!")
|
||||||
|
|
||||||
|
# 1. Musik starten
|
||||||
|
if victory_music:
|
||||||
|
victory_music.play()
|
||||||
|
|
||||||
|
# 2. Visuelles Fading (Tweening)
|
||||||
|
var tween = create_tween()
|
||||||
|
tween.set_parallel(true) # Alles gleichzeitig
|
||||||
|
|
||||||
|
# A. Bildschirm Schwarz machen (Alpha von 0 auf 1)
|
||||||
|
if fade_mesh:
|
||||||
|
# Wir holen das Material
|
||||||
|
var mat = fade_mesh.get_surface_override_material(0)
|
||||||
|
if mat:
|
||||||
|
tween.tween_property(mat, "albedo_color:a", 1.0, 3.0) # 3 Sekunden Fade
|
||||||
|
|
||||||
|
# B. Text einblenden
|
||||||
|
if victory_label:
|
||||||
|
tween.tween_property(victory_label, "modulate:a", 1.0, 3.0)
|
||||||
|
tween.tween_property(victory_label, "outline_modulate:a", 1.0, 3.0)
|
||||||
|
|
||||||
|
if victory_label2:
|
||||||
|
tween.tween_property(victory_label2, "modulate:a", 1.0, 3.0)
|
||||||
|
tween.tween_property(victory_label2, "outline_modulate:a", 1.0, 3.0)
|
||||||
|
|
||||||
|
# C. Optional: Nach 5 Sekunden Spiel beenden?
|
||||||
|
await get_tree().create_timer(50.0).timeout
|
||||||
|
get_tree().quit()
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://chtlkg6lvxdwh
|
||||||
Loading…
Reference in New Issue