mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 16:00:08 +01:00
Format files using updated file_format.sh
This commit is contained in:
@@ -36,9 +36,9 @@ onready var camera2 = viewport2.get_node(@"Camera2")
|
||||
func _ready():
|
||||
_on_size_changed()
|
||||
_update_splitscreen()
|
||||
|
||||
|
||||
get_viewport().connect("size_changed", self, "_on_size_changed")
|
||||
|
||||
|
||||
view.material.set_shader_param("viewport1", viewport1.get_texture())
|
||||
view.material.set_shader_param("viewport2", viewport2.get_texture())
|
||||
|
||||
@@ -50,7 +50,7 @@ func _process(_delta):
|
||||
|
||||
func _move_cameras():
|
||||
var position_difference = _compute_position_difference_in_world()
|
||||
|
||||
|
||||
var distance = clamp(_compute_horizontal_length(position_difference), 0, max_separation)
|
||||
|
||||
position_difference = position_difference.normalized() * distance
|
||||
@@ -66,7 +66,7 @@ func _update_splitscreen():
|
||||
var screen_size = get_viewport().get_visible_rect().size
|
||||
var player1_position = camera1.unproject_position(player1.translation) / screen_size
|
||||
var player2_position = camera2.unproject_position(player2.translation) / screen_size
|
||||
|
||||
|
||||
var thickness
|
||||
if adaptive_split_line_thickness:
|
||||
var position_difference = _compute_position_difference_in_world()
|
||||
@@ -75,7 +75,7 @@ func _update_splitscreen():
|
||||
thickness = clamp(thickness, 0, split_line_thickness)
|
||||
else:
|
||||
thickness = split_line_thickness
|
||||
|
||||
|
||||
view.material.set_shader_param("split_active", _get_split_state())
|
||||
view.material.set_shader_param("player1_position", player1_position)
|
||||
view.material.set_shader_param("player2_position", player2_position)
|
||||
@@ -93,10 +93,10 @@ func _get_split_state():
|
||||
|
||||
func _on_size_changed():
|
||||
var screen_size = get_viewport().get_visible_rect().size
|
||||
|
||||
|
||||
$Viewport1.size = screen_size
|
||||
$Viewport2.size = screen_size
|
||||
|
||||
|
||||
view.material.set_shader_param("viewport_size", screen_size)
|
||||
|
||||
|
||||
|
||||
@@ -12,5 +12,5 @@ func _physics_process(_delta):
|
||||
velocity.z += Input.get_action_strength("move_down_player" + str(player_id))
|
||||
velocity.x = -Input.get_action_strength("move_left_player" + str(player_id))
|
||||
velocity.x += Input.get_action_strength("move_right_player" + str(player_id))
|
||||
|
||||
|
||||
move_and_slide(velocity.normalized() * walk_speed)
|
||||
|
||||
@@ -24,22 +24,22 @@ void fragment() {
|
||||
|
||||
float width = viewport_size.x;
|
||||
float height = viewport_size.y;
|
||||
|
||||
|
||||
if (split_active) {
|
||||
vec2 dx = player2_position - player1_position;
|
||||
float split_slope;
|
||||
|
||||
|
||||
if (dx.y != 0.0) {
|
||||
split_slope = dx.x / dx.y;
|
||||
} else {
|
||||
split_slope = 100000.0; // High value (vertical split) if dx.y = 0
|
||||
}
|
||||
|
||||
|
||||
vec2 split_origin = vec2(0.5, 0.5);
|
||||
vec2 split_line_start = vec2(0.0, height * ((split_origin.x - 0.0) * split_slope + split_origin.y));
|
||||
vec2 split_line_end = vec2(width, height * ((split_origin.x - 1.0) * split_slope + split_origin.y));
|
||||
float distance_to_split_line = distanceToLine(split_line_start, split_line_end, vec2(UV.x * width, UV.y * height));
|
||||
|
||||
|
||||
// Draw split border if close enough
|
||||
if (distance_to_split_line < split_line_thickness) {
|
||||
COLOR = split_line_color;
|
||||
|
||||
@@ -10,5 +10,5 @@ func _ready():
|
||||
for wall in walls:
|
||||
var material = SpatialMaterial.new()
|
||||
material.albedo_color = Color(randf(), randf(), randf())
|
||||
|
||||
|
||||
wall.material_override = material
|
||||
|
||||
Reference in New Issue
Block a user