diff options
| author | Sophia Pearson <codergal89@gmail.com> | 2026-05-20 09:39:22 +0200 |
|---|---|---|
| committer | Sophia Pearson <codergal89@gmail.com> | 2026-05-20 09:39:22 +0200 |
| commit | 75c83f4d7a628077d9ec98bfbd674699bfa20529 (patch) | |
| tree | 092244938ba3f2bf9e4355840e7f65176a6f5e3f /components | |
| download | moon-buggy-2d-75c83f4d7a628077d9ec98bfbd674699bfa20529.tar.xz moon-buggy-2d-75c83f4d7a628077d9ec98bfbd674699bfa20529.zip | |
initial gdscript rewritedevelop
Diffstat (limited to 'components')
| -rw-r--r-- | components/astronaut.gd | 8 | ||||
| -rw-r--r-- | components/astronaut.gd.uid | 1 | ||||
| -rw-r--r-- | components/astronaut.tscn | 12 | ||||
| -rw-r--r-- | components/buggy.gd | 8 | ||||
| -rw-r--r-- | components/buggy.gd.uid | 1 | ||||
| -rw-r--r-- | components/buggy.tscn | 12 | ||||
| -rw-r--r-- | components/meteor.gd | 12 | ||||
| -rw-r--r-- | components/meteor.gd.uid | 1 | ||||
| -rw-r--r-- | components/meteor.tscn | 23 | ||||
| -rw-r--r-- | components/meteor_spawner.gd | 36 | ||||
| -rw-r--r-- | components/meteor_spawner.gd.uid | 1 | ||||
| -rw-r--r-- | components/meteor_spawner.tscn | 19 | ||||
| -rw-r--r-- | components/space_background.gd | 27 | ||||
| -rw-r--r-- | components/space_background.gd.uid | 1 | ||||
| -rw-r--r-- | components/space_background.tscn | 32 |
15 files changed, 194 insertions, 0 deletions
diff --git a/components/astronaut.gd b/components/astronaut.gd new file mode 100644 index 0000000..89e0f0d --- /dev/null +++ b/components/astronaut.gd @@ -0,0 +1,8 @@ +extends Node2D + +@onready var _sprite = $Sprite + +func _ready() -> void: + _sprite.animation = "stand" + _sprite.frame = 0 + _sprite.stop() diff --git a/components/astronaut.gd.uid b/components/astronaut.gd.uid new file mode 100644 index 0000000..9b83867 --- /dev/null +++ b/components/astronaut.gd.uid @@ -0,0 +1 @@ +uid://b3efeqqwpw5ls diff --git a/components/astronaut.tscn b/components/astronaut.tscn new file mode 100644 index 0000000..da72e10 --- /dev/null +++ b/components/astronaut.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://br2mmh866wj88"] + +[ext_resource type="SpriteFrames" uid="uid://b0ova5ouowx3l" path="res://assets/spritesheets/astronaut.tres" id="1_6g1vj"] +[ext_resource type="Script" uid="uid://b3efeqqwpw5ls" path="res://components/astronaut.gd" id="1_7jmex"] + +[node name="Astronaut" type="Node2D"] +script = ExtResource("1_7jmex") + +[node name="Sprite" type="AnimatedSprite2D" parent="."] +texture_filter = 3 +sprite_frames = ExtResource("1_6g1vj") +animation = &"celebrate" diff --git a/components/buggy.gd b/components/buggy.gd new file mode 100644 index 0000000..eb6befa --- /dev/null +++ b/components/buggy.gd @@ -0,0 +1,8 @@ +extends Node2D + +@onready var _sprite = $Sprite + +func _ready() -> void: + _sprite.animation = "idle" + _sprite.frame = 0 + _sprite.play() diff --git a/components/buggy.gd.uid b/components/buggy.gd.uid new file mode 100644 index 0000000..7de9514 --- /dev/null +++ b/components/buggy.gd.uid @@ -0,0 +1 @@ +uid://clw8wad88k5x3 diff --git a/components/buggy.tscn b/components/buggy.tscn new file mode 100644 index 0000000..20140ac --- /dev/null +++ b/components/buggy.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://dihkljqd6qmgl"] + +[ext_resource type="SpriteFrames" uid="uid://bwh1vdwqpig8o" path="res://assets/spritesheets/buggy.tres" id="1_ordkh"] +[ext_resource type="Script" uid="uid://clw8wad88k5x3" path="res://components/buggy.gd" id="1_yvbad"] + +[node name="Buggy" type="Node2D"] +script = ExtResource("1_yvbad") + +[node name="Sprite" type="AnimatedSprite2D" parent="."] +texture_filter = 3 +sprite_frames = ExtResource("1_ordkh") +animation = &"drive" diff --git a/components/meteor.gd b/components/meteor.gd new file mode 100644 index 0000000..4ce587d --- /dev/null +++ b/components/meteor.gd @@ -0,0 +1,12 @@ +extends RigidBody2D + +@onready var _sprite = $Sprite + +func _ready() -> void: + _sprite.animation = "fly" + _sprite.frame = 0 + _sprite.play() + +func _process(_delta: float) -> void: + if not $VisibleOnScreenNotifier2D.is_on_screen(): + queue_free() diff --git a/components/meteor.gd.uid b/components/meteor.gd.uid new file mode 100644 index 0000000..137190c --- /dev/null +++ b/components/meteor.gd.uid @@ -0,0 +1 @@ +uid://cpi64jvpvbdah diff --git a/components/meteor.tscn b/components/meteor.tscn new file mode 100644 index 0000000..6b1fdf1 --- /dev/null +++ b/components/meteor.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://7n650wm14il0"] + +[ext_resource type="SpriteFrames" uid="uid://bskfnkqnofmxv" path="res://assets/spritesheets/meteor.tres" id="1_8c42w"] +[ext_resource type="Script" uid="uid://cpi64jvpvbdah" path="res://components/meteor.gd" id="1_10gax"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_hyb7h"] +radius = 14.0 + +[node name="Meteor" type="RigidBody2D"] +script = ExtResource("1_10gax") + +[node name="Sprite" type="AnimatedSprite2D" parent="."] +texture_filter = 3 +position = Vector2(-2, -55) +rotation = -0.785398 +sprite_frames = ExtResource("1_8c42w") +animation = &"fly" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_hyb7h") + +[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] +rect = Rect2(-16, -123, 32, 138) diff --git a/components/meteor_spawner.gd b/components/meteor_spawner.gd new file mode 100644 index 0000000..fbdb097 --- /dev/null +++ b/components/meteor_spawner.gd @@ -0,0 +1,36 @@ +class_name MeteorSpawner +extends Path2D + +## Whether meteors spawned by this spawner ignore gravity or not. +@export var ignore_gravity: bool = false + +@export_group("Spawning") + +## The duration of time, in seconds, that has to pass between consecutive spawn attempts. +@export_range(0.0, 120, 0.1, "suffix:s") var cooldown: float = 5.0: + get: + return cooldown + set(value): + $CooldownTimer.wait_time = value + cooldown = value + +## The likelihood of actually spawning a meteor once the cooldown has elapsed. +@export_range(0.0, 1.0) var probability: float = 0.5 + +const _meteor_scene = preload("res://components/meteor.tscn") + +func _ready() -> void: + assert(curve.point_count == 2) + $SpawnPoint.progress_ratio = 0 + $CooldownTimer.wait_time = cooldown + $CooldownTimer.start() + +func _try_to_spawn() -> void: + if(randf() > probability): + return + + $SpawnPoint.progress_ratio = randf() + var meteor = _meteor_scene.instantiate() + add_child(meteor) + + meteor.position = $SpawnPoint.position diff --git a/components/meteor_spawner.gd.uid b/components/meteor_spawner.gd.uid new file mode 100644 index 0000000..06fd02d --- /dev/null +++ b/components/meteor_spawner.gd.uid @@ -0,0 +1 @@ +uid://doy4iee5r1fsb diff --git a/components/meteor_spawner.tscn b/components/meteor_spawner.tscn new file mode 100644 index 0000000..be90180 --- /dev/null +++ b/components/meteor_spawner.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=3 uid="uid://b5aceskalmit7"] + +[ext_resource type="Script" uid="uid://doy4iee5r1fsb" path="res://components/meteor_spawner.gd" id="1_a0n2t"] + +[sub_resource type="Curve2D" id="Curve2D_ia26v"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1280, 0) +} +point_count = 2 + +[node name="MeteorSpawner" type="Path2D"] +curve = SubResource("Curve2D_ia26v") +script = ExtResource("1_a0n2t") + +[node name="CooldownTimer" type="Timer" parent="."] + +[node name="SpawnPoint" type="PathFollow2D" parent="."] + +[connection signal="timeout" from="CooldownTimer" to="." method="_try_to_spawn"] diff --git a/components/space_background.gd b/components/space_background.gd new file mode 100644 index 0000000..b1e4ec0 --- /dev/null +++ b/components/space_background.gd @@ -0,0 +1,27 @@ +extends Node2D + +@export var autoscroll: bool = false: + set(value): + autoscroll = value + $Space.autoscroll.x = int(value) * 5 + $Stars.autoscroll.x = int(value) * 7 + +@export_enum("Blue", "Purple") var theme: int = 0: + set(value): + theme = value + apply_theme(theme) + +func _ready() -> void: + apply_theme(theme) + +func apply_theme(id: int) -> void: + match id: + 0: + $Space/Blue.visible = true + $Stars/Blue.visible = true + 1: + $Space/Blue.visible = false + $Stars/Blue.visible = false + $Space/Purple.visible = not $Space/Blue.visible + $Stars/Purple.visible = not $Stars/Blue.visible + diff --git a/components/space_background.gd.uid b/components/space_background.gd.uid new file mode 100644 index 0000000..887ff32 --- /dev/null +++ b/components/space_background.gd.uid @@ -0,0 +1 @@ +uid://ybcadaoxm4rq diff --git a/components/space_background.tscn b/components/space_background.tscn new file mode 100644 index 0000000..85307c9 --- /dev/null +++ b/components/space_background.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=6 format=3 uid="uid://bkpids4l5roy3"] + +[ext_resource type="Script" uid="uid://ybcadaoxm4rq" path="res://components/space_background.gd" id="1_gqvc1"] +[ext_resource type="Texture2D" uid="uid://cfkl3i6txy8na" path="res://assets/backgrounds/space_purple.png" id="1_stfb6"] +[ext_resource type="Texture2D" uid="uid://gjjvdhpw6e7u" path="res://assets/backgrounds/stars_purple.png" id="2_wb1py"] +[ext_resource type="Texture2D" uid="uid://bew8m2r1bb4y0" path="res://assets/backgrounds/space_blue.png" id="2_wdsn8"] +[ext_resource type="Texture2D" uid="uid://er80b3t7dkhf" path="res://assets/backgrounds/stars_blue.png" id="4_kbbb8"] + +[node name="SpaceBackground" type="Node2D"] +script = ExtResource("1_gqvc1") + +[node name="Space" type="Parallax2D" parent="."] +repeat_size = Vector2(1024, 0) + +[node name="Blue" type="Sprite2D" parent="Space"] +texture = ExtResource("2_wdsn8") +centered = false + +[node name="Purple" type="Sprite2D" parent="Space"] +texture = ExtResource("1_stfb6") +centered = false + +[node name="Stars" type="Parallax2D" parent="."] +repeat_size = Vector2(1024, 0) + +[node name="Blue" type="Sprite2D" parent="Stars"] +texture = ExtResource("4_kbbb8") +centered = false + +[node name="Purple" type="Sprite2D" parent="Stars"] +texture = ExtResource("2_wb1py") +centered = false |
