Trigger in Halle der Ahnen eingebaut
This commit is contained in:
parent
e7ebb20428
commit
69a5616ae9
3 changed files with 10 additions and 8 deletions
|
|
@ -56,9 +56,9 @@ Alle Skripte und die dazugehörige Logik sollen thematisch in Unterordnern unter
|
|||
|
||||
- **Click-to-Move:** Die Spielerbewegung soll aus Performancegründen über eine AStar-Implementierung (`systems/navigation/`) gesteuert werden.
|
||||
- **GDScript-Konvention: `async`-Schlüsselwort vermeiden:** In GDScript 4 wird jede Funktion, die `await` enthält, automatisch von der Engine als asynchron behandelt. Das `async`-Schlüsselwort in der Funktionssignatur (`async func...`) ist optional und hat in diesem Projekt wiederholt zu schwer diagnostizierbaren Syntaxfehlern geführt.
|
||||
- **Regel:** Das `async`-Schlüsselwort **darf nicht** verwendet werden.
|
||||
- **Korrekt:** `func my_function(): await get_tree().process_frame`
|
||||
- **Falsch:** `async func my_function(): await get_tree().process_frame`
|
||||
- **Regel:** Das `async`-Schlüsselwort **darf nicht** verwendet werden.
|
||||
- **Korrekt:** `func my_function(): await get_tree().process_frame`
|
||||
- **Falsch:** `async func my_function(): await get_tree().process_frame`
|
||||
|
||||
|
||||
## 6. Globale Skripte (Autoloads)
|
||||
|
|
@ -127,4 +127,4 @@ Die Konfiguration des `MultiplayerSynchronizer` für wiederverwendbare Szenen (w
|
|||
### Dynamische Konfiguration des MultiplayerSpawner
|
||||
|
||||
- Handhabt nicht nur originäre Objekterzeugung in den Levels, sondern auch Objektaktualisierungen für "Late Joiner"
|
||||
- Generischer MultiplayerSpawner in Basis Level, von dem alle Level erben, so dass die Spawnliste nur 1x bearbeitet werden muss
|
||||
- Generischer MultiplayerSpawner in Basis Level, von dem alle Level erben, so dass die Spawnliste nur 1x bearbeitet werden muss
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
[gd_scene format=3 uid="uid://bef0tj7n6g8uo"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://coq1j1cdrvqyn" path="res://systems/interaction/portal/portal.tscn" id="1_4r2hu"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_d3jw7"]
|
||||
sky_top_color = Color(0.055328622, 0.3637527, 0.67898166, 1)
|
||||
ground_bottom_color = Color(0.28193337, 0.24096331, 0.19489476, 1)
|
||||
|
|
@ -57,3 +59,7 @@ shape = SubResource("ConcavePolygonShape3D_0hy1c")
|
|||
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="." unique_id=1610787579]
|
||||
_spawnable_scenes = PackedStringArray("uid://bjurf8vfd1fg8")
|
||||
spawn_path = NodePath("../SpawnPoints")
|
||||
|
||||
[node name="Portal" parent="." unique_id=988801188 instance=ExtResource("1_4r2hu")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.1332607, 0.014829755, 8.73144)
|
||||
target_area_key = "keuwin_grasland"
|
||||
|
|
|
|||
|
|
@ -166,10 +166,6 @@ func _spawn_player_in_world(id, spawn_target_node):
|
|||
player.set_multiplayer_authority(1)
|
||||
spawn_target_node.add_child(player, true)
|
||||
|
||||
# SCHRITT 2: Explizit auf den nächsten Frame warten.
|
||||
# Dies gibt Godot die Zeit, die _ready() Funktion des Spielers auszuführen.
|
||||
await get_tree().process_frame
|
||||
|
||||
# SCHRITT 3: Jetzt ist der Spieler garantiert bereit und konfiguriert.
|
||||
# Alle folgenden Operationen sind sicher.
|
||||
var sync = player.get_node("MultiplayerSynchronizer")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue