]> Untitled Git - lightcycles.git/commitdiff
Added map split screen
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 25 Dec 2024 13:52:00 +0000 (15:52 +0200)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 25 Dec 2024 13:52:00 +0000 (15:52 +0200)
map/split_screen_container.gd
map/world.gd
map/world.tscn
player/player_wall.tscn

index b5fc1bcf4e8f3b4096073f400be67b0f96f1abe0..6d8a1c27358a57f1bb631d8701c0555b88e8de88 100644 (file)
@@ -2,13 +2,20 @@ class_name SplitScreenContainer
 extends GridContainer
 
 
-@onready var viewport1: SubViewport = $SubViewportContainer/SubViewport
-@onready var viewport2: SubViewport = $SubViewportContainer2/SubViewport2
+@onready var _viewport1: SubViewport = %SubViewport_Player1
+@onready var _viewport2: SubViewport = %SubViewport_Player2
+@onready var _viewport_map: SubViewport = %SubViewport_map
 
 
 func set_splitscreen(players: Array[Player]) -> void:
-       var viewports = [viewport1, viewport2]
+       var viewports = [_viewport1, _viewport2]
        for player in players:
                var camera_rid = player.get_camera_rid()
                var viewport_rid = viewports.pop_front().get_viewport_rid()
                RenderingServer.viewport_attach_camera(viewport_rid, camera_rid)
+
+
+func set_map(camera: Camera3D) -> void:
+       var camera_rid = camera.get_camera_rid()
+       var viewport_rid = _viewport_map.get_viewport_rid()
+       RenderingServer.viewport_attach_camera(viewport_rid, camera_rid)
index 6429a3c3df3f1d0a4610e3b2020b8dc1cd80fdc3..27a9208fe79ecabb6ded8a39339a6cb585bbb334 100644 (file)
@@ -2,6 +2,7 @@ extends Node3D
 
 
 @onready var _screen: SplitScreenContainer = $SplitScreenContainer
+@onready var _topdown_camera: Camera3D = $topdown_camera
 
 var _player_wall_tscn = preload("res://player/player_wall.tscn")
 var _player_wall_map = {}
@@ -24,6 +25,7 @@ func _ready() -> void:
        var players: Array[Player] = [$Player1, $Player2]
        
        _screen.set_splitscreen(players)
+       _screen.set_map(_topdown_camera)
        
        for player in players:
                player.set_input_map(_input_map.pop_front())
index cb74967703bcbb06d495fb15eb11dacf3e495f37..f86ca94d0c35885158461c8f63304af976e74dbf 100644 (file)
@@ -1,4 +1,4 @@
-[gd_scene load_steps=10 format=3 uid="uid://6tmryoxhs3yq"]
+[gd_scene load_steps=11 format=3 uid="uid://6tmryoxhs3yq"]
 
 [ext_resource type="PackedScene" uid="uid://dysxftv7xniv0" path="res://player/player.tscn" id="1_3tqxd"]
 [ext_resource type="Script" path="res://map/world.gd" id="1_mjcfj"]
@@ -26,6 +26,8 @@ size = Vector2(10, 50)
 [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qttgn"]
 data = PackedVector3Array(5, 0, 25, -5, 0, 25, 5, 0, -25, -5, 0, 25, -5, 0, -25, 5, 0, -25)
 
+[sub_resource type="Environment" id="Environment_h5n2a"]
+
 [node name="World" type="Node3D"]
 script = ExtResource("1_mjcfj")
 
@@ -94,6 +96,12 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0,
 color = Color(1, 0, 0, 1)
 distance = 5.0
 
+[node name="topdown_camera" type="Camera3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 32.95, 0)
+environment = SubResource("Environment_h5n2a")
+projection = 1
+size = 50.0
+
 [node name="SplitScreenContainer" type="GridContainer" parent="."]
 custom_minimum_size = Vector2(3456, 1944)
 anchors_preset = 15
@@ -103,26 +111,48 @@ grow_horizontal = 2
 grow_vertical = 2
 script = ExtResource("4_nc5g8")
 
-[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer"]
+[node name="HSplitContainer" type="HSplitContainer" parent="SplitScreenContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_vertical = 3
+
+[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+stretch = true
+
+[node name="SubViewport_map" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/SubViewportContainer"]
+unique_name_in_owner = true
+handle_input_locally = false
+size = Vector2i(1722, 1944)
+render_target_update_mode = 4
+
+[node name="VSplitContainer" type="VSplitContainer" parent="SplitScreenContainer/HSplitContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer/VSplitContainer"]
 layout_mode = 2
 size_flags_horizontal = 3
 size_flags_vertical = 3
 stretch = true
 
-[node name="SubViewport" type="SubViewport" parent="SplitScreenContainer/SubViewportContainer"]
+[node name="SubViewport_Player1" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/VSplitContainer/SubViewportContainer"]
+unique_name_in_owner = true
 handle_input_locally = false
-size = Vector2i(2, 2)
+size = Vector2i(1722, 966)
 render_target_update_mode = 4
 
-[node name="SubViewportContainer2" type="SubViewportContainer" parent="SplitScreenContainer"]
+[node name="SubViewportContainer2" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer/VSplitContainer"]
 layout_mode = 2
 size_flags_horizontal = 3
 size_flags_vertical = 3
 stretch = true
 
-[node name="SubViewport2" type="SubViewport" parent="SplitScreenContainer/SubViewportContainer2"]
+[node name="SubViewport_Player2" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/VSplitContainer/SubViewportContainer2"]
+unique_name_in_owner = true
 handle_input_locally = false
-size = Vector2i(2, 2)
+size = Vector2i(1722, 966)
 render_target_update_mode = 4
 
 [connection signal="playerDestroyed" from="Player1" to="." method="_on_player_destroyed"]
index 4493031bab183ef8a4c502a4346bed5309a67e88..3012a7f97c982d6702b637104e224f5d1a566eb8 100644 (file)
@@ -6,13 +6,15 @@
 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sk1tc"]
 albedo_color = Color(0.716296, 0.716296, 0.716296, 1)
 albedo_texture = ExtResource("2_uvwff")
+emission_enabled = true
 emission = Color(0.726732, 0.726732, 0.726732, 1)
+emission_energy_multiplier = 0.25
 uv1_triplanar = true
 uv1_world_triplanar = true
 
 [sub_resource type="BoxMesh" id="BoxMesh_p4d0s"]
 material = SubResource("StandardMaterial3D_sk1tc")
-size = Vector3(1, 0.02, 1)
+size = Vector3(1, 0.04, 1)
 
 [sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_aaxpr"]
 points = PackedVector3Array(0.508, 0.014, 0.5, -0.508, -0.018, -0.5, -0.508, 0.014, -0.5, 0.508, -0.018, -0.5, -0.508, -0.018, 0.5, -0.508, 0.014, 0.5, 0.508, 0.014, -0.5, 0.508, -0.018, 0.5)