From 49d664e472e1e45203d2d565a713a6e545cc64a8 Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Sun, 26 Dec 2021 15:56:57 -0500 Subject: [PATCH] Random Particles --- Main.cs | 29 ++++++++++++++++++++++++----- Main.tscn | 2 ++ Particle.cs | 22 ++++++++++++++++++++++ Particle.tscn | 10 ++++++++++ default_env.tres | 7 ------- icon.png | Bin 3305 -> 1278 bytes project.godot | 7 ++++++- textures/particle.png | Bin 0 -> 1278 bytes textures/particle.png.import | 35 +++++++++++++++++++++++++++++++++++ 9 files changed, 99 insertions(+), 13 deletions(-) create mode 100644 Particle.cs create mode 100644 Particle.tscn delete mode 100644 default_env.tres create mode 100644 textures/particle.png create mode 100644 textures/particle.png.import diff --git a/Main.cs b/Main.cs index ee4dfd3..82c81ce 100644 --- a/Main.cs +++ b/Main.cs @@ -1,18 +1,37 @@ using Godot; -using System; public class Main : Node2D { public override void _Ready() { - + GD.Randomize(); + InitializeParticles(); } public override void _Process(float delta) { - if (Input.IsActionJustPressed("quit")) + if (Input.IsActionJustPressed("quit")) GetTree().Quit(); + if (Input.IsActionJustPressed("reset")) GetTree().ReloadCurrentScene(); + } + + private void InitializeParticles() + { + var particleScene = GD.Load("res://Particle.tscn"); + for (var i = 0; i < 50; i++) { - GetTree().Quit(); + var particle = particleScene.Instance(); + GetNode("Particles").AddChild(particle); + particle.Position = GetRandomParticlePosition(); + particle.Hue = (float) GD.RandRange(0, 1); } } -} + + private Vector2 GetRandomParticlePosition() + { + const int padding = 32; + var viewportRect = GetViewportRect(); + var position = new Vector2((float) GD.RandRange(padding, viewportRect.Size.x - padding), + (float) GD.RandRange(padding, viewportRect.Size.y - padding)); + return position; + } +} \ No newline at end of file diff --git a/Main.tscn b/Main.tscn index fcdf428..1a5b5ef 100644 --- a/Main.tscn +++ b/Main.tscn @@ -4,3 +4,5 @@ [node name="Main" type="Node2D"] script = ExtResource( 1 ) + +[node name="Particles" type="Node2D" parent="."] diff --git a/Particle.cs b/Particle.cs new file mode 100644 index 0000000..df553fe --- /dev/null +++ b/Particle.cs @@ -0,0 +1,22 @@ +using Godot; + +public class Particle : Node2D +{ + private float _spriteHue; + private Sprite _spriteNode; + + public float Hue + { + get => _spriteHue; + set + { + _spriteHue = Mathf.Clamp(value, 0, 1); + _spriteNode.Modulate = Color.FromHsv(_spriteHue, 1, 1); + } + } + + public override void _Ready() + { + _spriteNode = GetNode("Sprite"); + } +} \ No newline at end of file diff --git a/Particle.tscn b/Particle.tscn new file mode 100644 index 0000000..36effd2 --- /dev/null +++ b/Particle.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://textures/particle.png" type="Texture" id=1] +[ext_resource path="res://Particle.cs" type="Script" id=2] + +[node name="Particle" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) diff --git a/default_env.tres b/default_env.tres deleted file mode 100644 index 20207a4..0000000 --- a/default_env.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="Environment" load_steps=2 format=2] - -[sub_resource type="ProceduralSky" id=1] - -[resource] -background_mode = 2 -background_sky = SubResource( 1 ) diff --git a/icon.png b/icon.png index c98fbb601c83c81ec8c22b1dba7d1d57c62b323c..73190c34a6f245c4ecc3e8e62bfad70be4817a5f 100644 GIT binary patch delta 1246 zcmV<41R?wB8U6{7Fn<69XF*Lt006O%3;baP00009a7bBm000id000id0mpBsWB>pF z7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%hhNHDpIvQUCx1Z%IT!RCr$Po2yPFK@^4& z$Q1|#4}d`O00?0r$D{B9L z(nY$e{_43fm+q+*AA!?V=TdZ4ox1ddF=lA2tgQS1vtSV{gRKnyP8pv~sk(zg3i}0u znFoj91$+S0A)nwC9D#YIyI)A*cYwnS;1s+86-AP$>QK5p z=*znDwH;Cz14bqR2P5Ug7yJAB=IZLoJU%|k0K0)YsDEp3Z%^9tsDnx6dkiU5Kr!d= zW@bpj*ZB7KRtC}!sGByF?Hue99p@5K=mUi_fb+64Xf`)D&Gq%Qbb1gp8jY4s5EKd)Hk@-uG1c`7eU0P^FMoc#&L1eiC2de~m`P5*V6voQ0nSp| zZ-8Ju&(u>Hr~;9+`7IxFK6vir1QiCE+YcK0u3`dTJ4^Wn2$CMI>XhOt5m`l^ss;#N ze=b9n(kgLzdFjNI@zo7%@JxK1LfnYx$9jI$FowvcN-Ht44Zy8yrvP_jl)@^qv$NyG zmVa@WZvbvEIt93mrIb~Xv$HcNwv1LzU>hJfwCH9Juk764-#f8oe6$(>zi`9DdB_EY zQdDIki=-cH0G`J=54b(8lvEkU*MJn5KPHFpEnc#05l>N{T5MfTmS$707*qo IM6N<$f_>^fB>(^b delta 3289 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 X7her>#-hHS00000NkvXXu0mjf-<4wR diff --git a/project.godot b/project.godot index f59c266..34ab24b 100644 --- a/project.godot +++ b/project.godot @@ -28,6 +28,11 @@ quit={ "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777217,"unicode":0,"echo":false,"script":null) ] } +reset={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":82,"unicode":0,"echo":false,"script":null) + ] +} [physics] @@ -38,4 +43,4 @@ common/enable_pause_aware_picking=true quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false -environment/default_environment="res://default_env.tres" +environment/default_clear_color=Color( 0, 0, 0, 1 ) diff --git a/textures/particle.png b/textures/particle.png new file mode 100644 index 0000000000000000000000000000000000000000..73190c34a6f245c4ecc3e8e62bfad70be4817a5f GIT binary patch literal 1278 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B01aC=1K~#8N?VGDkBtaC05y%w?1P_2f@&E`P z0*L^En4l0q2!VuzfF&@3z=R+WB%sIyg?0r$D{B9L(nY$e{_43fm+q+* zAA!?V=TdZ4ox1ddF=lA2tgQS1vtSV{gRKnyP8pv~sk(zg3i}0unFoj91$+S0A)nwC z9D#YIyI)A*cYwnS;1s+86n%UjmHRtE&=HcPNJUu;i1k2Xz^;TW#P`W+n%ewNl9a0zrMkWCV zBjv;w`}_Om>gvioK0e9-yMa2WYj1B)+VZG_N#%PCDO5l)=kR7`NW$0n_V!i=(hsPc zHk9og>=GU45>n^`g)@NjvNC8kH#g1o^|f?*5HuQ%mQCeL#&0mEV)2o}JW#~{d^Gsu z<73loHl?G3gf?kg`IN!wa$3cdM+z-az&b%8<}y1ToRj*JreRL}^~DN+hifk{p<&+}C) z(|_KFzD2qNW0A>HARs6#GrThN`F7ApHr~;9+`7IxF zK6vir1QiCE+YcK0u3`dTJ4^Wn2$CMI>XhOt5m`l^ss;#Ne=b9n(kgLzdFjNI@zo7% z@JxK1LfnYx$9jI$FowvcN-Ht44Zy8yrvP_jl)@^qv$NyGmT{PG0B$fk1-Ol+lvRE`vaKpoS$OVN`RAnNIq#tYmp2s;4xIL|u zR2jzP#|dWH0Kwv?%GqCxNLIMW2H?r8^MD5xN=cPrOn#hTnGL|>Y3Bh?Ym|~I!nm+K=Om&oF`0f8l3WkDJ4QvHWlWb9OvOUrNWHGj}Lt2*8;)WUlq2%J0-GJ z{+e$9-o|nYjMH+MvH0W^Xjgaoa z2*Ja&kH!cJq{kbe{fx>AZyMu+P=OEV()E!B0^YFEA`=7T+VGJnd zm~fF9iZa3vCK_NcA57$dkurWV6P@ackit%Y!E`^G$^+wRem3U=XVUy|(g)6^`RS|z o4s)DH>*MJn5KPHFpEnc#05l>N{T5MfTmS$707*qoM6N<$f*im=D*ylh literal 0 HcmV?d00001 diff --git a/textures/particle.png.import b/textures/particle.png.import new file mode 100644 index 0000000..d0780ba --- /dev/null +++ b/textures/particle.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/particle.png-6bc2982443cc9a0ea7820fc4c0d2daf7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/particle.png" +dest_files=[ "res://.import/particle.png-6bc2982443cc9a0ea7820fc4c0d2daf7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0