7 Commits
Author SHA1 Message Date
Jonas Braus 7946fd789c minor improvement 2024-08-04 17:37:51 +02:00
Jonas Braus 08f75b79d8 level 5 2024-08-04 17:23:08 +02:00
Jonas Braus 2e845bf217 minor stuff 2024-08-04 15:48:20 +02:00
Jonas Braus e7e72f6109 Update project.godot 2024-08-03 22:54:08 +02:00
Jonas Braus a9c2f587da level 4 a bowser 2024-08-03 22:13:40 +02:00
Jonas Braus 30b0a527b4 Update coopa.gd 2024-08-03 17:35:08 +02:00
Jonas Braus 3d318a5c07 fixed grow bug 2024-08-03 17:28:37 +02:00
40 changed files with 38087 additions and 102 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbcqfbbrmin4n"
path="res://.godot/imported/bg-1-4.png-b634dd427392b4b4f79ec130b6e42b89.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/bg-1-4.png"
dest_files=["res://.godot/imported/bg-1-4.png-b634dd427392b4b4f79ec130b6e42b89.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
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dpsuhnumiv82j"
path="res://.godot/imported/bg-2-1.png-5097df23ce250700d0d91ce99bc5a171.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/bg-2-1.png"
dest_files=["res://.godot/imported/bg-2-1.png-5097df23ce250700d0d91ce99bc5a171.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
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dpcasau50jn28"
path="res://.godot/imported/04. Castle Theme.mp3-7bb3145a500b4414d1e91508ab6bd85a.mp3str"
[deps]
source_file="res://assets/sounds/04. Castle Theme.mp3"
dest_files=["res://.godot/imported/04. Castle Theme.mp3-7bb3145a500b4414d1e91508ab6bd85a.mp3str"]
[params]
loop=true
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4
Binary file not shown.
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://d33nllvmlw3oh"
path="res://.godot/imported/07. Castle Complete.mp3-d4fc76ed9c48e387466ba00be9c041a9.mp3str"
[deps]
source_file="res://assets/sounds/07. Castle Complete.mp3"
dest_files=["res://.godot/imported/07. Castle Complete.mp3-d4fc76ed9c48e387466ba00be9c041a9.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
+3 -3
View File
@@ -419,7 +419,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Mario_Web/retromario.html"
export_path="../../../../../home/jonas/Schreibtisch/Export_Web/retromario.html"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -438,10 +438,10 @@ html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/enabled=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/orientation=1
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
+2 -1
View File
@@ -20,7 +20,7 @@ config/icon="res://assets/icon.png"
[display]
window/stretch/mode="viewport"
window/stretch/aspect="keep_height"
window/vsync/vsync_mode=0
[global]
@@ -64,6 +64,7 @@ crawl={
flower={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null)
]
}
+26
View File
@@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://badk308gvg1my"]
[ext_resource type="Script" path="res://scripts/blocks/itemblock_invisible.gd" id="1_ap62p"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4kmo0"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_enc16"]
size = Vector2(10, 1)
[node name="itemblock_invisible" type="RigidBody2D"]
gravity_scale = 0.0
script = ExtResource("1_ap62p")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_4kmo0")
[node name="activate" type="Area2D" parent="."]
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="activate"]
position = Vector2(8, 0.5)
shape = SubResource("RectangleShape2D_enc16")
[connection signal="body_entered" from="activate" to="." method="_on_activate_body_entered"]
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://bobox153pirkx"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_7tugu"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_c4pt3"]
size = Vector2(32, 8)
[node name="Platform" type="AnimatableBody2D"]
[node name="Sprite2D" type="Sprite2D" parent="."]
z_index = 20
texture = ExtResource("1_7tugu")
region_enabled = true
region_rect = Rect2(26, 38, 32, 8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_c4pt3")
one_way_collision = true
+62
View File
@@ -0,0 +1,62 @@
[gd_scene load_steps=9 format=3 uid="uid://43ujxqfabnuq"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_7p65b"]
[ext_resource type="Script" path="res://scripts/enemies/bowser_jr_fire.gd" id="1_tnrjq"]
[ext_resource type="AudioStream" uid="uid://csx5laixrg5dh" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Enemy Fire.wav" id="3_i70fm"]
[sub_resource type="AtlasTexture" id="AtlasTexture_4dnoh"]
atlas = ExtResource("1_7p65b")
region = Rect2(101, 253, 24, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_7tb0p"]
atlas = ExtResource("1_7p65b")
region = Rect2(131, 253, 24, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_kv1f5"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4dnoh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7tb0p")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_axybf"]
size = Vector2(24, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mxod3"]
size = Vector2(24, 8)
[node name="BowserJRFire" type="Area2D"]
collision_layer = 128
collision_mask = 2
script = ExtResource("1_tnrjq")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(-12, 0)
sprite_frames = SubResource("SpriteFrames_kv1f5")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, 0)
shape = SubResource("RectangleShape2D_axybf")
[node name="die" type="Area2D" parent="."]
collision_layer = 2147483648
[node name="CollisionShape2D" type="CollisionShape2D" parent="die"]
position = Vector2(-12, 0)
shape = SubResource("RectangleShape2D_mxod3")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_i70fm")
autoplay = true
[connection signal="body_entered" from="." to="." method="_on_body_entered_player"]
[connection signal="body_entered" from="die" to="." method="_on_die_body_entered"]
[connection signal="finished" from="AudioStreamPlayer2D" to="." method="_on_audio_stream_player_2d_finished"]
+119
View File
@@ -0,0 +1,119 @@
[gd_scene load_steps=11 format=3 uid="uid://byk5q0ddm54hi"]
[ext_resource type="Script" path="res://scripts/enemies/bowserjr.gd" id="1_0ucqp"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_q71vc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jv53y"]
atlas = ExtResource("1_q71vc")
region = Rect2(122, 211, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_1tyng"]
atlas = ExtResource("1_q71vc")
region = Rect2(82, 211, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_q2270"]
atlas = ExtResource("1_q71vc")
region = Rect2(2, 211, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_3jf1h"]
atlas = ExtResource("1_q71vc")
region = Rect2(42, 211, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_xw3te"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jv53y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1tyng")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_q2270")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3jf1h")
}],
"loop": true,
"name": &"open_mouth",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_tvg0d"]
radius = 16.0
[sub_resource type="Animation" id="Animation_pjtcx"]
resource_name = "default"
length = 6.0
loop_mode = 1
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(3, 5.9),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"shoot"
}, {
"args": [],
"method": &"jump"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(6),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"shoot"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_y7g55"]
_data = {
"default": SubResource("Animation_pjtcx")
}
[node name="bowserjr" type="RigidBody2D"]
collision_layer = 128
gravity_scale = 0.6
script = ExtResource("1_0ucqp")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(16, -16)
sprite_frames = SubResource("SpriteFrames_xw3te")
animation = &"open_mouth"
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(16, -16)
shape = SubResource("CircleShape2D_tvg0d")
[node name="ShootSpawner" type="Node2D" parent="."]
position = Vector2(0, -22)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_y7g55")
}
autoplay = "default"
[node name="Timer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+238
View File
@@ -0,0 +1,238 @@
[gd_scene load_steps=6 format=3 uid="uid://d0npbb0w73ajk"]
[ext_resource type="Texture2D" uid="uid://cbcqfbbrmin4n" path="res://assets/bg-1-4.png" id="1_gsxjq"]
[ext_resource type="Script" path="res://scripts/enemies/bridge.gd" id="1_itywv"]
[ext_resource type="AudioStream" uid="uid://d33nllvmlw3oh" path="res://assets/sounds/07. Castle Complete.mp3" id="3_aqpeh"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7th4j"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6td4j"]
size = Vector2(16, 16)
[node name="bridge" type="Node2D"]
script = ExtResource("1_itywv")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D2" type="RigidBody2D" parent="."]
position = Vector2(16, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D2"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D2"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D3" type="RigidBody2D" parent="."]
position = Vector2(32, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D3"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D3"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D4" type="RigidBody2D" parent="."]
position = Vector2(48, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D4"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D4"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D5" type="RigidBody2D" parent="."]
position = Vector2(64, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D5"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D5"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D6" type="RigidBody2D" parent="."]
position = Vector2(80, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D6"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D6"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D7" type="RigidBody2D" parent="."]
position = Vector2(96, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D7"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D7"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D8" type="RigidBody2D" parent="."]
position = Vector2(112, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D8"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D8"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D9" type="RigidBody2D" parent="."]
position = Vector2(128, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D9"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D9"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D10" type="RigidBody2D" parent="."]
position = Vector2(144, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D10"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D10"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D11" type="RigidBody2D" parent="."]
position = Vector2(160, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D11"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D11"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D12" type="RigidBody2D" parent="."]
position = Vector2(176, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D12"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D12"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="RigidBody2D13" type="RigidBody2D" parent="."]
position = Vector2(192, 0)
gravity_scale = 0.0
lock_rotation = true
[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D13"]
position = Vector2(8, -8)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2048, 160, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D13"]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_7th4j")
[node name="chain" type="Sprite2D" parent="."]
position = Vector2(200, -24)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2240, 144, 16, 16)
[node name="Area2D" type="Area2D" parent="."]
collision_layer = 2
collision_mask = 2
[node name="Sprite2D15" type="Sprite2D" parent="Area2D"]
position = Vector2(216, -40)
texture = ExtResource("1_gsxjq")
region_enabled = true
region_rect = Rect2(2256, 128, 16, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(216, -40)
shape = SubResource("RectangleShape2D_6td4j")
[node name="Timer" type="Timer" parent="."]
wait_time = 0.2
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_aqpeh")
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[connection signal="finished" from="AudioStreamPlayer" to="." method="_on_audio_stream_player_finished"]
+1
View File
@@ -51,6 +51,7 @@ lock_rotation = true
script = ExtResource("1_iin32")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 3
position = Vector2(8, -12)
sprite_frames = SubResource("SpriteFrames_g2x7m")
autoplay = "default"
+95
View File
@@ -0,0 +1,95 @@
[gd_scene load_steps=9 format=3 uid="uid://b4rid627344t4"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_gwkcq"]
[ext_resource type="Script" path="res://scripts/enemies/fire_wand.gd" id="1_lapua"]
[sub_resource type="AtlasTexture" id="AtlasTexture_yd1fw"]
atlas = ExtResource("1_gwkcq")
region = Rect2(26, 150, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_owi6g"]
atlas = ExtResource("1_gwkcq")
region = Rect2(41, 150, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_e5nv8"]
atlas = ExtResource("1_gwkcq")
region = Rect2(26, 165, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_5oy1g"]
atlas = ExtResource("1_gwkcq")
region = Rect2(41, 165, 8, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_6y4se"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yd1fw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_owi6g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_e5nv8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5oy1g")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2qrrp"]
size = Vector2(58, 8)
[node name="fire_wand" type="Area2D"]
collision_mask = 2
script = ExtResource("1_lapua")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame = 1
frame_progress = 0.284379
[node name="AnimatedSprite2D3" type="AnimatedSprite2D" parent="."]
position = Vector2(10, 0)
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame_progress = 0.428306
[node name="AnimatedSprite2D2" type="AnimatedSprite2D" parent="."]
position = Vector2(20, 0)
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame = 1
frame_progress = 0.284379
[node name="AnimatedSprite2D4" type="AnimatedSprite2D" parent="."]
position = Vector2(30, 0)
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame_progress = 0.428306
[node name="AnimatedSprite2D5" type="AnimatedSprite2D" parent="."]
position = Vector2(40, 0)
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame = 1
frame_progress = 0.284379
[node name="AnimatedSprite2D6" type="AnimatedSprite2D" parent="."]
position = Vector2(50, 0)
sprite_frames = SubResource("SpriteFrames_6y4se")
autoplay = "default"
frame_progress = 0.428306
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(25, 0)
shape = SubResource("RectangleShape2D_2qrrp")
[node name="Timer" type="Timer" parent="."]
one_shot = true
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+1
View File
@@ -50,6 +50,7 @@ lock_rotation = true
script = ExtResource("1_o30u3")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 3
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_xnecu")
autoplay = "default"
+80
View File
@@ -0,0 +1,80 @@
[gd_scene load_steps=11 format=3 uid="uid://cwhx0kcemeyx"]
[ext_resource type="Script" path="res://scripts/blocks/itemblock.gd" id="1_rbj5t"]
[ext_resource type="PackedScene" uid="uid://bp71ntkh281k5" path="res://scenes/items/fire_flower.tscn" id="2_ov77e"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="3_v5sih"]
[sub_resource type="AtlasTexture" id="AtlasTexture_lo6hv"]
atlas = ExtResource("3_v5sih")
region = Rect2(4, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ghd0r"]
atlas = ExtResource("3_v5sih")
region = Rect2(34, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_5py80"]
atlas = ExtResource("3_v5sih")
region = Rect2(64, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_4m3oc"]
atlas = ExtResource("3_v5sih")
region = Rect2(4, 4, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_r54gk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_lo6hv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ghd0r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5py80")
}],
"loop": false,
"name": &"destroy",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4m3oc")
}],
"loop": true,
"name": &"idle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4kmo0"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_enc16"]
size = Vector2(10, 1)
[node name="itemblock" type="RigidBody2D"]
gravity_scale = 0.0
script = ExtResource("1_rbj5t")
hit_object = ExtResource("2_ov77e")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_r54gk")
animation = &"destroy"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_4kmo0")
[node name="activate" type="Area2D" parent="."]
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="activate"]
position = Vector2(8, 0.5)
shape = SubResource("RectangleShape2D_enc16")
[node name="Timer" type="Timer" parent="."]
wait_time = 0.3
one_shot = true
[connection signal="body_entered" from="activate" to="." method="_on_activate_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+80
View File
@@ -0,0 +1,80 @@
[gd_scene load_steps=11 format=3 uid="uid://d032da33bfwtu"]
[ext_resource type="Script" path="res://scripts/blocks/itemblock.gd" id="1_3b5hu"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="2_iid7x"]
[ext_resource type="PackedScene" uid="uid://b4dp88urmm7g8" path="res://scenes/items/mushroom.tscn" id="2_np1mh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_lo6hv"]
atlas = ExtResource("2_iid7x")
region = Rect2(4, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ghd0r"]
atlas = ExtResource("2_iid7x")
region = Rect2(34, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_5py80"]
atlas = ExtResource("2_iid7x")
region = Rect2(64, 4, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_4m3oc"]
atlas = ExtResource("2_iid7x")
region = Rect2(4, 4, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_r54gk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_lo6hv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ghd0r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5py80")
}],
"loop": false,
"name": &"destroy",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4m3oc")
}],
"loop": true,
"name": &"idle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4kmo0"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_enc16"]
size = Vector2(10, 1)
[node name="itemblock" type="RigidBody2D"]
gravity_scale = 0.0
script = ExtResource("1_3b5hu")
hit_object = ExtResource("2_np1mh")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_r54gk")
animation = &"destroy"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_4kmo0")
[node name="activate" type="Area2D" parent="."]
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="activate"]
position = Vector2(8, 0.5)
shape = SubResource("RectangleShape2D_enc16")
[node name="Timer" type="Timer" parent="."]
wait_time = 0.3
one_shot = true
[connection signal="body_entered" from="activate" to="." method="_on_activate_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+62
View File
@@ -0,0 +1,62 @@
[gd_scene load_steps=8 format=3 uid="uid://daaajdv7ve15a"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_cnc0s"]
[ext_resource type="Script" path="res://scripts/items/jump_thing.gd" id="1_nrv87"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jjx8i"]
atlas = ExtResource("1_cnc0s")
region = Rect2(94, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_8phfu"]
atlas = ExtResource("1_cnc0s")
region = Rect2(154, 8, 16, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_1s1v4"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jjx8i")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8phfu")
}],
"loop": true,
"name": &"down",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mnewg"]
size = Vector2(14, 25)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_luw3y"]
size = Vector2(16, 24)
[node name="jump_thing" type="Node2D"]
script = ExtResource("1_nrv87")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -12)
sprite_frames = SubResource("SpriteFrames_1s1v4")
animation = &"down"
autoplay = "default"
[node name="Area2D" type="Area2D" parent="."]
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(8, -12.5)
shape = SubResource("RectangleShape2D_mnewg")
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(8, -12)
shape = SubResource("RectangleShape2D_luw3y")
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
[connection signal="body_exited" from="Area2D" to="." method="_on_area_2d_body_exited"]
+38
View File
@@ -68,6 +68,44 @@ theme_override_font_sizes/font_size = 24
disabled = true
text = "Level 3"
[node name="Button_4" type="Button" parent="Control"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 32.0
offset_top = -36.0
offset_right = 240.0
offset_bottom = 28.0
grow_horizontal = 2
grow_vertical = 2
theme_override_fonts/font = ExtResource("2_3ebbo")
theme_override_font_sizes/font_size = 24
disabled = true
text = "Level 4"
[node name="Button_5" type="Button" parent="Control"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -240.0
offset_top = 76.0
offset_right = -32.0
offset_bottom = 140.0
grow_horizontal = 2
grow_vertical = 2
theme_override_fonts/font = ExtResource("2_3ebbo")
theme_override_font_sizes/font_size = 24
disabled = true
text = "Level 5"
[connection signal="pressed" from="Control/Button_1" to="." method="_on_button_pressed" binds= ["1"]]
[connection signal="pressed" from="Control/Button_2" to="." method="_on_button_pressed" binds= ["2"]]
[connection signal="pressed" from="Control/Button_3" to="." method="_on_button_pressed" binds= ["3"]]
[connection signal="pressed" from="Control/Button_4" to="." method="_on_button_pressed" binds= ["4"]]
[connection signal="pressed" from="Control/Button_5" to="." method="_on_button_pressed" binds= ["5"]]
+15 -6
View File
@@ -19089,6 +19089,8 @@ auto_collect = true
[node name="destroyblock" parent="interactable_blocks" instance=ExtResource("5_k4kpc")]
position = Vector2(160, -48)
hit_object = ExtResource("4_7ycg6")
auto_collect = true
[node name="itemblock2" parent="interactable_blocks" instance=ExtResource("3_4oas0")]
position = Vector2(176, -48)
@@ -19096,6 +19098,8 @@ hit_object = ExtResource("6_1e33i")
[node name="destroyblock2" parent="interactable_blocks" instance=ExtResource("5_k4kpc")]
position = Vector2(192, -48)
hit_object = ExtResource("4_7ycg6")
auto_collect = true
[node name="itemblock3" parent="interactable_blocks" instance=ExtResource("3_4oas0")]
position = Vector2(208, -48)
@@ -19160,6 +19164,8 @@ auto_collect = true
[node name="destroyblock17" parent="interactable_blocks" instance=ExtResource("5_k4kpc")]
position = Vector2(1424, -48)
hit_object = ExtResource("4_7ycg6")
auto_collect = true
[node name="destroyblock18" parent="interactable_blocks" instance=ExtResource("5_k4kpc")]
position = Vector2(1520, -48)
@@ -19316,19 +19322,22 @@ position = Vector2(736, 0)
position = Vector2(768, 0)
[node name="Gumba4" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1120, 0)
position = Vector2(1200, -128)
[node name="Gumba5" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1152, 0)
position = Vector2(1232, -128)
[node name="Gumba6" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1472, 0)
[node name="Gumba16" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1504, 0)
[node name="Gumba8" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(2672, 0)
position = Vector2(2784, 0)
[node name="Gumba9" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(2752, 0)
position = Vector2(2816, 0)
[node name="Gumba10" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(576, 0)
@@ -19343,10 +19352,10 @@ position = Vector2(1760, 0)
position = Vector2(1792, 0)
[node name="Gumba12" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1904, 0)
position = Vector2(1936, 0)
[node name="Gumba13" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(1936, 0)
position = Vector2(1968, 0)
[node name="Gumba14" parent="Enemies" instance=ExtResource("8_6vd8t")]
position = Vector2(2016, 0)
+18 -25
View File
@@ -45095,6 +45095,8 @@ text = "120"
[node name="destroyblock_dark" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(336, -64)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="destroyblock_dark2" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(480, -48)
@@ -45239,6 +45241,7 @@ position = Vector2(864, -144)
[node name="destroyblock_dark80" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(960, -48)
hit_object = ExtResource("14_kgxub")
[node name="destroyblock_dark118" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(944, -48)
@@ -45293,6 +45296,8 @@ position = Vector2(1008, -64)
[node name="destroyblock_dark85" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(1024, -64)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="destroyblock_dark86" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(1008, -80)
@@ -45614,6 +45619,7 @@ position = Vector2(2336, -64)
[node name="destroyblock_dark174" parent="breakBlocks" instance=ExtResource("6_hol3k")]
position = Vector2(2352, -64)
hit_object = ExtResource("14_kgxub")
[node name="interactionBlocks" type="Node" parent="."]
@@ -45641,10 +45647,6 @@ position = Vector2(96, -48)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="itemblock6" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(960, -64)
hit_object = ExtResource("14_kgxub")
[node name="coins" type="Node" parent="."]
[node name="Coin" parent="coins" instance=ExtResource("9_a4rwl")]
@@ -45768,19 +45770,19 @@ target = Vector2(-80, -736)
[node name="enemies" type="Node" parent="."]
[node name="Gumba" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(96, 0)
position = Vector2(112, 0)
[node name="Gumba2" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(128, 0)
position = Vector2(144, -16)
[node name="Gumba3" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(336, 0)
[node name="coopa" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(496, 0)
position = Vector2(560, 0)
[node name="coopa2" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(528, 0)
position = Vector2(592, 0)
[node name="coopa3" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(800, 0)
@@ -45792,17 +45794,20 @@ position = Vector2(848, 0)
position = Vector2(896, 0)
[node name="Gumba6" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1120, 0)
position = Vector2(1104, -64)
[node name="Gumba7" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1088, 0)
position = Vector2(960, -64)
[node name="Gumba8" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1088, -64)
position = Vector2(1072, -64)
[node name="Gumba9" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1424, 0)
[node name="Gumba14" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1632, 0)
[node name="Gumba10" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1392, 0)
@@ -45810,10 +45815,10 @@ position = Vector2(1392, 0)
position = Vector2(1360, 0)
[node name="Gumba12" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(2000, -48)
position = Vector2(2032, -64)
[node name="Gumba13" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1968, -16)
position = Vector2(2000, -48)
[node name="coopa4" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(2272, 0)
@@ -45829,18 +45834,6 @@ position = Vector2(1584, -64)
[node name="StaticBody2D" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(1824, 0)
[node name="StaticBody2D2" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(1168, 0)
[node name="StaticBody2D3" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(1136, 0)
[node name="StaticBody2D6" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(1056, -64)
[node name="StaticBody2D7" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(1136, -64)
[node name="StaticBody2D8" parent="invisibleBarriers" instance=ExtResource("18_ujrgy")]
position = Vector2(2160, 0)
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
View File
@@ -270,7 +270,10 @@ fireball_prefab = ExtResource("2_owoxk")
position = Vector2(35, 0)
zoom = Vector2(3, 3)
limit_left = -160
limit_top = -184
limit_bottom = 32
limit_smoothed = true
position_smoothing_speed = 8.0
[node name="ColorRect" type="ColorRect" parent="Camera2D"]
visible = false
+5 -1
View File
@@ -8,9 +8,13 @@ func _ready():
var platform = ""
match OS.get_name():
"Windows", "macOS", "Linux", "FreeBSD", "NetBSD", "OpenBSD", "BSD", "Web":
"Windows", "macOS", "Linux", "FreeBSD", "NetBSD", "OpenBSD", "BSD":
label.text = "A, S, D To Move"
label_2.text = "Space To Jump"
label_3.text = "E To Fire"
"Web":
label.text = "Swipe Left/W, S, A, D"
label_2.text = "Right Down Tap/Space"
label_3.text = "Right Up Tap/E"
"Android", "iOS":
pass
+3 -1
View File
@@ -1,6 +1,8 @@
extends CanvasLayer
@onready var buttons = [$Control/Button_1, $Control/Button_2, $Control/Button_3]
@onready var buttons = [$Control/Button_1, $Control/Button_2, $Control/Button_3,
$Control/Button_4, $Control/Button_5
]
var available_level = 0
func _ready():
+14 -2
View File
@@ -2,10 +2,22 @@ extends RigidBody2D
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var animation_player = $AnimationPlayer
@export var hit_object : PackedScene
@export var auto_collect : bool
const ITEMBLOCK = preload("res://scenes/blocks/itemblock.tscn")
func _ready():
animated_sprite_2d.play("default")
func _on_activate_body_entered(body):
if body.is_big:
animation_player.play("destroy")
if hit_object == null:
if body.is_big:
animation_player.play("destroy")
else:
var inst2 = ITEMBLOCK.instantiate()
get_parent().add_child(inst2)
inst2.position.x = position.x
inst2.position.y = position.y
inst2.hit_object = hit_object
inst2.auto_collect = auto_collect
queue_free()
+19
View File
@@ -0,0 +1,19 @@
extends RigidBody2D
@export var hit_object:PackedScene
@onready var collision_shape_2d = $CollisionShape2D
func _ready():
collision_shape_2d.disabled = true
func _on_activate_body_entered(body):
if hit_object == null:
return
if body.velocity.y > 0:
return
var instance = hit_object.instantiate()
get_parent().add_child(instance)
instance.position.x = position.x
instance.position.y = position.y
queue_free()
+19
View File
@@ -0,0 +1,19 @@
extends Area2D
@export var speed = 80
@onready var audio_stream_player_2d = $AudioStreamPlayer2D
func _on_die_body_entered(body):
queue_free()
func _physics_process(delta):
position.x += speed * delta
func _on_body_entered_player(body):
body.shrink()
queue_free()
func _on_audio_stream_player_2d_finished():
audio_stream_player_2d.play()
+43
View File
@@ -0,0 +1,43 @@
extends RigidBody2D
@onready var player = %player
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var shoot_spawner = $ShootSpawner
const BOWSER_JR_FIRE = preload("res://scenes/enemies/bowser_jr_fire.tscn")
var shoot_direction = -1
const jump_force = 250
@onready var timer = $Timer
var pause = false
func _process(delta):
if pause:
return
if player.position.x > position.x:
animated_sprite_2d.flip_h = true
shoot_direction = 1
shoot_spawner.position.x = 32
else:
animated_sprite_2d.flip_h = false
shoot_direction = -1
shoot_spawner.position.x = 0
func shoot():
if pause:
return
animated_sprite_2d.play("open_mouth")
timer.start()
var instance = BOWSER_JR_FIRE.instantiate()
instance.speed *= shoot_direction
get_parent().add_child(instance)
instance.position.x = shoot_spawner.global_position.x
instance.position.y = shoot_spawner.global_position.y
func jump():
if pause:
return
linear_velocity.y = -jump_force
func f_die():
pass
func _on_timer_timeout():
animated_sprite_2d.play("default")
+46
View File
@@ -0,0 +1,46 @@
extends Node2D
@onready var bridge_parts = [
$RigidBody2D13,
$RigidBody2D12,$RigidBody2D11,$RigidBody2D10,$RigidBody2D9,$RigidBody2D8,
$RigidBody2D7,$RigidBody2D6,$RigidBody2D5,$RigidBody2D4,$RigidBody2D3,
$RigidBody2D2,$RigidBody2D
]
@onready var chain = $chain
@onready var timer = $Timer
@onready var sprite_2d_15 = $Area2D/Sprite2D15
@onready var player = %player
@onready var bowserjr = %bowserjr
@onready var audio_stream_player = $AudioStreamPlayer
@onready var music = %Music
@export var level_score : int
var curr_down = 0
func _on_area_2d_body_entered(body):
music.stop()
audio_stream_player.play()
chain.visible = false
player.on_pause = true
bowserjr.pause = true
sprite_2d_15.rotation_degrees = -90
timer.start()
func _on_timer_timeout():
if curr_down < len(bridge_parts):
bridge_parts[curr_down].gravity_scale = 1
curr_down += 1
else:
timer.stop()
func _on_audio_stream_player_finished():
var config = ConfigFile.new()
var err = config.load("user://config.cfg")
if err == OK:
var available_level = config.get_value("level", "available_level", 0)
level_score = level_score if level_score > available_level else available_level
config.set_value("level", "available_level", level_score)
config.save("user://config.cfg")
get_tree().change_scene_to_file("res://scenes/levels/level_0.tscn")
+8 -3
View File
@@ -14,6 +14,7 @@ var is_down = false
@onready var collision_shape_2d = $CollisionShape2D
@onready var ray_cast_left_3 = $RayCastLeft3
@onready var ray_cast_right_3 = $RayCastRight3
@onready var player = %player
func _ready():
var coll = CapsuleShape2D.new()
@@ -22,15 +23,16 @@ func _ready():
collision_shape_2d.shape = coll
func _physics_process(delta):
linear_velocity.x = speed
if abs(position.x - player.position.x) < 225 or is_down:
linear_velocity.x = speed
if ray_cast_left_2 == null:
return
if (ray_cast_left.is_colliding() or ray_cast_left_2.is_colliding()) and not is_down:
if ray_cast_left.is_colliding() or ray_cast_left_2.is_colliding():
speed = abs(speed)
animated_sprite_2d.flip_h = true
elif (ray_cast_right.is_colliding() or ray_cast_right_2.is_colliding()) and not is_down:
elif ray_cast_right.is_colliding() or ray_cast_right_2.is_colliding():
speed = -abs(speed)
animated_sprite_2d.flip_h = false
@@ -82,6 +84,9 @@ func f_die():
func f_shrink(body):
die_sound.play()
if not is_down:
# collission mask only to walls
ray_cast_left.collision_mask = pow(2, 1-1)
ray_cast_right.collision_mask = pow(2, 1-1)
speed = 0
collision_shape_2d.shape.height -= 9
die.position.y += 2
+20
View File
@@ -0,0 +1,20 @@
extends Area2D
@export var rot_speed = 3
@onready var timer = $Timer
var innocent = false
func _physics_process(delta):
rotate(rot_speed * delta)
func _on_body_entered(body):
if not innocent:
body.shrink()
innocent = true
timer.start()
func _on_timer_timeout():
innocent = false
+3 -1
View File
@@ -11,9 +11,11 @@ extends RigidBody2D
var innocent = false
@onready var timer_2 = $Timer2
@onready var gumba = $"."
@onready var player = %player
func _physics_process(delta):
linear_velocity.x = speed
if abs(position.x - player.position.x) < 225:
linear_velocity.x = speed
if ray_cast_left_2 == null:
return
+18
View File
@@ -0,0 +1,18 @@
extends Node2D
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var collision_shape_2d = $StaticBody2D/CollisionShape2D
func _on_area_2d_body_entered(body):
animated_sprite_2d.play("down")
body.JUMPt_velocity *= 1.6
animated_sprite_2d.position.y += 8
collision_shape_2d.position.y += 8
collision_shape_2d.shape.size.y -= 16
func _on_area_2d_body_exited(body):
animated_sprite_2d.play("default")
body.JUMPt_velocity /= 1.6
animated_sprite_2d.position.y -= 8
collision_shape_2d.position.y -= 8
collision_shape_2d.shape.size.y += 16
+8 -2
View File
@@ -16,7 +16,7 @@ extends CharacterBody2D
const SPEED = 130.0
const JUMPt_velocity = -360.0
var JUMPt_velocity = -360.0
var on_pipe = false
var right_pipe = false
var left_pipe = false
@@ -76,13 +76,14 @@ func _process(delta):
# set camera
if position.y <= 32:
camera_2d.limit_bottom = 32
camera_2d.limit_top = -1000000
camera_2d.limit_top = -1000
else:
camera_2d.limit_bottom = 272
camera_2d.limit_top = 32
# check pipe
if on_pipe and (Input.is_action_just_pressed("crawl") or crawl) and is_on_floor() or right_pipe and (Input.is_action_pressed("move_right") or t_velocity > 0):
on_pause = true
pipe_sound.play()
crawl = false
t_velocity = 0
@@ -163,6 +164,8 @@ func _physics_process(delta):
func grow():
if not is_big:
is_big = true
if is_on_floor():
position.y -= 20
collision_shape_2d.shape.height = 31
pipedetector_ground.position.y += 8
@@ -174,6 +177,9 @@ func flower():
is_flower = true
func shrink():
if on_pause:
return
if is_flower:
is_flower = false
shrink_sound.play()