From a1e0c3f8a7ea3beebbcbfe9871fbe5261a1bfda7 Mon Sep 17 00:00:00 2001 From: R34nd0 Date: Sat, 13 Jan 2024 19:21:55 +0500 Subject: [PATCH] Star Parallax --- scenes/MainMenu.tscn | 14 ++++++++------ scenes/Space.tscn | 2 +- scenes/StarsController.tscn | 15 ++++++++++++++- scripts/misc/StarsGeneration.gd | 12 ++++++++---- shaders/testicles.tres | 1 - 5 files changed, 31 insertions(+), 13 deletions(-) diff --git a/scenes/MainMenu.tscn b/scenes/MainMenu.tscn index 7089c40..491f695 100644 --- a/scenes/MainMenu.tscn +++ b/scenes/MainMenu.tscn @@ -22,16 +22,18 @@ shader_parameter/penis = SubResource("NoiseTexture2D_vkqxf") [node name="MainMenu" type="Node2D"] script = ExtResource("1_2wax0") -[node name="ColorRect" type="ColorRect" parent="."] -z_index = -20 +[node name="Stars" parent="." instance=ExtResource("4_g7254")] +stars_amount = 100 +compress_space_amount = 0.0 + +[node name="NebulaLayer" type="CanvasLayer" parent="."] +layer = -10 + +[node name="Nebula" type="ColorRect" parent="NebulaLayer"] material = SubResource("ShaderMaterial_dawi1") offset_right = 1280.0 offset_bottom = 720.0 -[node name="Stars" parent="." instance=ExtResource("4_g7254")] -position = Vector2(640, 360) -stars_amount = 100 - [node name="Control" type="Control" parent="."] layout_mode = 3 anchors_preset = 0 diff --git a/scenes/Space.tscn b/scenes/Space.tscn index 840364c..3cd443a 100644 --- a/scenes/Space.tscn +++ b/scenes/Space.tscn @@ -99,7 +99,7 @@ rotation = -2.31102 type = 2 [node name="Background" type="CanvasLayer" parent="."] -layer = -1 +layer = -10 [node name="Nebula" type="ColorRect" parent="Background"] material = SubResource("ShaderMaterial_s2aaw") diff --git a/scenes/StarsController.tscn b/scenes/StarsController.tscn index e6267d1..b6d56ae 100644 --- a/scenes/StarsController.tscn +++ b/scenes/StarsController.tscn @@ -3,7 +3,20 @@ [ext_resource type="Script" path="res://scripts/misc/StarsGeneration.gd" id="1_rcdwc"] [ext_resource type="PackedScene" uid="uid://kyuhwil8vq7n" path="res://scenes/Star.tscn" id="2_ypr5c"] -[node name="Stars" type="Node2D"] +[node name="Stars" type="ParallaxBackground"] process_mode = 1 +layer = -5 +scroll_ignore_camera_zoom = true script = ExtResource("1_rcdwc") star = ExtResource("2_ypr5c") + +[node name="CloseStars" type="ParallaxLayer" parent="."] +scale = Vector2(2, 2) +motion_scale = Vector2(0.9, 0.9) + +[node name="DistinctStars" type="ParallaxLayer" parent="."] +scale = Vector2(1.5, 1.5) +motion_scale = Vector2(0.5, 0.5) + +[node name="FarAwayStars" type="ParallaxLayer" parent="."] +motion_scale = Vector2(0.1, 0.1) diff --git a/scripts/misc/StarsGeneration.gd b/scripts/misc/StarsGeneration.gd index 6f2f7fe..ba96756 100644 --- a/scripts/misc/StarsGeneration.gd +++ b/scripts/misc/StarsGeneration.gd @@ -1,14 +1,18 @@ -extends Node2D +extends Node @export var star : PackedScene @export var stars_amount = 1000 +@export var compress_space_amount = 0.5 func _ready(): - var map_width_halved = get_tree().current_scene.map_width / 2 - var map_height_halved = get_tree().current_scene.map_height / 2 + var compress_multiplier = 1-compress_space_amount + + var map_width_halved = get_tree().current_scene.map_width * compress_multiplier + var map_height_halved = get_tree().current_scene.map_height * compress_multiplier for i in range(stars_amount): var star_inst = star.instantiate() var x = randi_range(-map_width_halved, map_width_halved) var y = randi_range(-map_height_halved, map_height_halved) - add_child(star_inst) + var distance = randi_range(0,get_child_count()-1) + get_children()[distance].add_child(star_inst) star_inst.position = Vector2(x, y) diff --git a/shaders/testicles.tres b/shaders/testicles.tres index 731b6b5..d2dd041 100644 --- a/shaders/testicles.tres +++ b/shaders/testicles.tres @@ -26,7 +26,6 @@ void fragment() { } " -graph_offset = Vector2(501.389, 326.805) mode = 1 flags/light_only = false nodes/fragment/0/position = Vector2(1860, 520)