From 10e88590defc6d45d98263df427f17a7c5d7b859 Mon Sep 17 00:00:00 2001 From: dusk Date: Fri, 30 Aug 2024 01:32:01 +0300 Subject: [PATCH] wip --- .gitattributes | 1 + examples/boids/2d/example_boid.tscn | 2 ++ examples/boids/2d/follow/example.gd | 15 +++++--- examples/boids/2d/follow/example.tscn | 49 ++++++++++++++++++++++++-- examples/boids/2d/simple/example.gd | 8 +++-- examples/boids/2d/simple/example.tscn | 11 +++++- project.godot | 3 +- resources/.gdignore | 0 resources/boid_2d.png | Bin 3690 -> 0 bytes resources/boid_2d.png.import | 34 ------------------ resources/boids.gif | 3 -- 11 files changed, 75 insertions(+), 51 deletions(-) create mode 100644 resources/.gdignore delete mode 100644 resources/boid_2d.png delete mode 100644 resources/boid_2d.png.import delete mode 100644 resources/boids.gif diff --git a/.gitattributes b/.gitattributes index cb48fea..98f9054 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ # Normalize EOL for all files that Git considers text files. * text=auto eol=lf addons/boids/lib/* filter=lfs diff=lfs merge=lfs -text +resources/*.gif filter=lfs diff=lfs merge=lfs -text diff --git a/examples/boids/2d/example_boid.tscn b/examples/boids/2d/example_boid.tscn index 5d1399d..d97cd89 100644 --- a/examples/boids/2d/example_boid.tscn +++ b/examples/boids/2d/example_boid.tscn @@ -3,6 +3,8 @@ [ext_resource type="Texture2D" uid="uid://rk5u1wthr0n0" path="res://examples/boids/2d/example_boid.svg" id="2_jx2vb"] [sub_resource type="BoidProperties" id="BoidProperties_a6wou"] +alignment = 1.0 +cohesion = 0.8 [sub_resource type="GDScript" id="GDScript_ldfpo"] resource_name = "example_boid_sprite" diff --git a/examples/boids/2d/follow/example.gd b/examples/boids/2d/follow/example.gd index 753abb4..89a37cc 100644 --- a/examples/boids/2d/follow/example.gd +++ b/examples/boids/2d/follow/example.gd @@ -1,14 +1,19 @@ extends Node2D func _ready() -> void: - for i in 40: spawnBoid() + for flock in get_children(): + if flock is not Flock2D: continue + var color = Color(randf_range(0.8, 1.5), randf_range(0.8, 1.5), randf_range(0.2, 1.5), 1) + for i in 100: spawnBoid(flock, color) func _process(delta: float) -> void: - $Path2D/PathFollow2D.progress_ratio += delta * 0.1 + $Path2D/PathFollow2D.progress_ratio += delta * 0.125 + $Path2D2/PathFollow2D.progress_ratio += delta * 0.1 + $Path2D3/PathFollow2D.progress_ratio += delta * 0.08 -func spawnBoid() -> void: +func spawnBoid(flock: Flock2D, color: Color) -> void: var boid: Boid2D = preload("../example_boid.tscn").instantiate() var screensize := get_viewport_rect().size - boid.modulate = Color(randf(), randf(), randf(), 1) + boid.modulate = color boid.global_position = Vector2((randf_range(200, screensize.x - 200)), (randf_range(200, screensize.y - 200))) - $Flock.add_child(boid) + flock.add_child(boid) diff --git a/examples/boids/2d/follow/example.tscn b/examples/boids/2d/follow/example.tscn index 36cf16a..87788b9 100644 --- a/examples/boids/2d/follow/example.tscn +++ b/examples/boids/2d/follow/example.tscn @@ -1,15 +1,33 @@ -[gd_scene load_steps=4 format=3 uid="uid://ckc0dhvrksfh4"] +[gd_scene load_steps=7 format=3 uid="uid://ckc0dhvrksfh4"] [ext_resource type="Script" path="res://examples/boids/2d/follow/example.gd" id="1_cb4mx"] [sub_resource type="Curve2D" id="Curve2D_ncwi0"] _data = { -"points": PackedVector2Array(69.2957, 57.9564, -69.2957, -57.9564, 1117, 34, 79.375, -118.433, -79.375, 118.433, 34, 28, -61.7361, -114.653, 61.7361, 114.653, 22, 624, -42.8373, 69.2957, 42.8373, -69.2957, 1126, 622, 66.7758, 73.0754, -66.7758, -73.0754, 1117, 34) +"points": PackedVector2Array(69.2957, 57.9564, -69.2957, -57.9564, 1025, 158, 79.375, -118.433, -79.375, 118.433, 129, 149, -61.7361, -114.653, 61.7361, 114.653, 126, 517, -42.8373, 69.2957, 42.8373, -69.2957, 1041, 487, 66.7758, 73.0754, -66.7758, -73.0754, 1025, 158) } point_count = 5 +[sub_resource type="Curve2D" id="Curve2D_pef6d"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, 90, 76, 0, 0, 0, 0, 1037, 568, 0, 0, 0, 0, 1030, 72, 0, 0, 0, 0, 89, 560, 0, 0, 0, 0, 90, 76) +} +point_count = 5 + +[sub_resource type="Curve2D" id="Curve2D_fq51g"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, 37, 310, 0, 0, 0, 0, 1118, 324, 0, 0, 0, 0, 567, 315, 0, 0, 0, 0, 567, 19, 0, 0, 0, 0, 571, 635, 0, 0, 0, 0, 569, 311, 0, 0, 0, 0, 37, 310) +} +point_count = 7 + [sub_resource type="FlockProperties" id="FlockProperties_id14j"] +[sub_resource type="Environment" id="Environment_8ucif"] +background_mode = 3 +glow_enabled = true +glow_bloom = 0.2 +glow_blend_mode = 1 + [node name="Example" type="Node2D"] script = ExtResource("1_cb4mx") @@ -17,9 +35,34 @@ script = ExtResource("1_cb4mx") curve = SubResource("Curve2D_ncwi0") [node name="PathFollow2D" type="PathFollow2D" parent="Path2D"] -position = Vector2(1117, 34) +position = Vector2(1025, 158) rotation = -2.44507 +[node name="Path2D2" type="Path2D" parent="."] +curve = SubResource("Curve2D_pef6d") + +[node name="PathFollow2D" type="PathFollow2D" parent="Path2D2"] +position = Vector2(90, 76) +rotation = 0.479153 + +[node name="Path2D3" type="Path2D" parent="."] +curve = SubResource("Curve2D_fq51g") + +[node name="PathFollow2D" type="PathFollow2D" parent="Path2D3"] +position = Vector2(37, 310) +rotation = 0.0129502 + [node name="Flock" type="Flock2D" parent="." node_paths=PackedStringArray("target")] properties = SubResource("FlockProperties_id14j") target = NodePath("../Path2D/PathFollow2D") + +[node name="Flock2" type="Flock2D" parent="." node_paths=PackedStringArray("target")] +properties = SubResource("FlockProperties_id14j") +target = NodePath("../Path2D2/PathFollow2D") + +[node name="Flock3" type="Flock2D" parent="." node_paths=PackedStringArray("target")] +properties = SubResource("FlockProperties_id14j") +target = NodePath("../Path2D3/PathFollow2D") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_8ucif") diff --git a/examples/boids/2d/simple/example.gd b/examples/boids/2d/simple/example.gd index 3f06d49..46ca14f 100644 --- a/examples/boids/2d/simple/example.gd +++ b/examples/boids/2d/simple/example.gd @@ -2,11 +2,13 @@ extends Node2D func _ready() -> void: for flock in get_children(): - for i in 1000: spawnBoid(flock) + if flock is not Flock2D: continue + var color = Color(randf(), randf(), randf(), 1) + for i in 2000: spawnBoid(flock, color) -func spawnBoid(flock: Flock2D) -> void: +func spawnBoid(flock: Flock2D, color: Color) -> void: var boid: Boid2D = preload("../example_boid.tscn").instantiate() var screensize := get_viewport_rect().size - boid.modulate = Color(randf(), randf(), randf(), 1) + boid.modulate = color boid.global_position = Vector2((randf_range(200, screensize.x - 200)), (randf_range(200, screensize.y - 200))) flock.add_child(boid) diff --git a/examples/boids/2d/simple/example.tscn b/examples/boids/2d/simple/example.tscn index e5a64b0..e3d17a7 100644 --- a/examples/boids/2d/simple/example.tscn +++ b/examples/boids/2d/simple/example.tscn @@ -1,11 +1,20 @@ -[gd_scene load_steps=3 format=3 uid="uid://op0qicvpbjt6"] +[gd_scene load_steps=4 format=3 uid="uid://op0qicvpbjt6"] [ext_resource type="Script" path="res://examples/boids/2d/simple/example.gd" id="1_3gcrf"] +[sub_resource type="Environment" id="Environment_jxsqf"] +background_mode = 3 +glow_enabled = true +glow_bloom = 0.2 +glow_blend_mode = 1 + [sub_resource type="FlockProperties" id="FlockProperties_cvyp0"] [node name="Example" type="Node2D"] script = ExtResource("1_3gcrf") +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_jxsqf") + [node name="Flock" type="Flock2D" parent="."] properties = SubResource("FlockProperties_cvyp0") diff --git a/project.godot b/project.godot index 3d59818..86e9468 100644 --- a/project.godot +++ b/project.godot @@ -24,5 +24,4 @@ enabled=PackedStringArray("res://addons/boids/plugin.cfg") [rendering] -renderer/rendering_method="gl_compatibility" -renderer/rendering_method.mobile="gl_compatibility" +environment/defaults/default_clear_color=Color(0, 0, 0, 1) diff --git a/resources/.gdignore b/resources/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/resources/boid_2d.png b/resources/boid_2d.png deleted file mode 100644 index 5176eb7d6de8b7f88b1b33902e8a2664b2ae90e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3690 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 IM6N<$f_w__U;qFB diff --git a/resources/boid_2d.png.import b/resources/boid_2d.png.import deleted file mode 100644 index a446fe4..0000000 --- a/resources/boid_2d.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cp6l2f1oac4ce" -path="res://.godot/imported/boid_2d.png-b56b7a427c09dbbdb1e601cb745d4254.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resources/boid_2d.png" -dest_files=["res://.godot/imported/boid_2d.png-b56b7a427c09dbbdb1e601cb745d4254.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/resources/boids.gif b/resources/boids.gif deleted file mode 100644 index 93b85d6..0000000 --- a/resources/boids.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6fe98809be411cf4dcf89aabf037a7609946610eafb7cadf2107747fa9f83318 -size 2510471