21 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
Jonas Braus 6860fda89c level 3 2024-08-03 16:21:26 +02:00
Jonas Braus 2242369738 level select menu 2024-08-03 11:08:46 +02:00
Jonas Braus 7ece2c1391 bug fix && plants 2024-08-03 10:52:53 +02:00
Jonas Braus 4a64f30c57 coopa improvement 2024-08-03 01:26:19 +02:00
Jonas Braus cf5153c10a Update flag.tscn 2024-08-03 01:17:13 +02:00
Jonas Braus f0ae51aa75 test 2024-08-03 01:16:51 +02:00
Jonas Braus f1f0e53538 minor improvements 2024-08-03 01:07:53 +02:00
Jonas Braus 8ea91b2967 Update level_2.tscn 2024-08-03 00:58:42 +02:00
Jonas Braus 1cd04a27cf added coopa 2024-08-03 00:57:40 +02:00
Jonas Braus a706375da0 level 2 - moving plattforms
level2 almost finished
2024-08-02 22:44:01 +02:00
Jonas Braus a4476f2ce2 timer 2024-07-31 20:52:28 +02:00
Jonas Braus b18dfee7dc added more sounds and autocollect coin 2024-07-31 19:49:20 +02:00
Jonas Braus 85736f82e0 added fireballs 2024-07-29 23:30:26 +02:00
Jonas Braus 3a6f8517c0 added more gumba 2024-07-29 22:01:12 +02:00
76 changed files with 93654 additions and 245 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"godotTools.editorPath.godot4": "/home/jonas/Dokumente/Godot/Godot.x86_64"
}
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://bbf2n32u766cp"
path="res://.godot/imported/bg-1-2.png-81ae6ae7479c4c330a362a6052bf4c22.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/bg-1-2.png"
dest_files=["res://.godot/imported/bg-1-2.png-81ae6ae7479c4c330a362a6052bf4c22.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: 17 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bivvbepth8ko2"
path="res://.godot/imported/bg-1-3.png-149608b6f5f53810a256bf60fdfa8120.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/bg-1-3.png"
dest_files=["res://.godot/imported/bg-1-3.png-149608b6f5f53810a256bf60fdfa8120.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: 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.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dsidx3ln87nn7"
path="res://.godot/imported/02. Underground Theme.mp3-48fe7af9d35600b2cbee60756ac97b08.mp3str"
[deps]
source_file="res://assets/sounds/02. Underground Theme.mp3"
dest_files=["res://.godot/imported/02. Underground Theme.mp3-48fe7af9d35600b2cbee60756ac97b08.mp3str"]
[params]
loop=true
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4
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
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dw00kc3yup8bh"
path="res://.godot/imported/52ac54_super_mario_bros_stage_clear_sound_effect.mp3-cea1e164d9781cd3f06affa23092f4f3.mp3str"
[deps]
source_file="res://assets/sounds/52ac54_super_mario_bros_stage_clear_sound_effect.mp3"
dest_files=["res://.godot/imported/52ac54_super_mario_bros_stage_clear_sound_effect.mp3-cea1e164d9781cd3f06affa23092f4f3.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
+122 -53
View File
@@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Mario_Linux/retromario.x86_64"
export_path="../../../../../home/jonas/Schreibtisch/Export_Linux/retromario.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -48,7 +48,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Mario_Windows/retromario.exe"
export_path="../../../../../home/jonas/Schreibtisch/Export_Windows/retromario.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -111,7 +111,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Mario_Android/retromario.apk"
export_path="../../../../../home/jonas/Schreibtisch/Export_Android/retromario.apk"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -306,15 +306,15 @@ permissions/write_user_dictionary=false
[preset.3]
name="iOS"
platform="iOS"
name="macOS"
platform="macOS"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Mario_IOS/retromario.ipa"
export_path="../../../../../home/jonas/Schreibtisch/Export_Mac/retromario.zip"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -322,58 +322,127 @@ encrypt_directory=false
[preset.3.options]
export/distribution_type=1
binary_format/architecture="universal"
custom_template/debug=""
custom_template/release=""
architectures/arm64=true
application/app_store_team_id="12345"
application/code_sign_identity_debug=""
application/export_method_debug=1
application/code_sign_identity_release=""
application/export_method_release=0
application/targeted_device_family=2
debug/export_console_wrapper=1
application/icon=""
application/icon_interpolation=4
application/bundle_identifier="com.retro.mario"
application/signature=""
application/app_category="Games"
application/short_version=""
application/version=""
application/icon_interpolation=4
application/launch_screens_interpolation=4
application/export_project_only=false
capabilities/access_wifi=false
capabilities/push_notifications=false
user_data/accessible_from_files_app=false
user_data/accessible_from_itunes_sharing=false
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
application/copyright=""
application/copyright_localized={}
application/min_macos_version="10.12"
application/export_angle=0
display/high_res=true
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
xcode/sdk_build="22C55"
xcode/sdk_name="macosx13.1"
xcode/xcode_version="1420"
xcode/xcode_build="14C18"
codesign/codesign=1
codesign/installer_identity=""
codesign/apple_team_id=""
codesign/identity=""
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/entitlements/app_sandbox/helper_executables=[]
codesign/custom_options=PackedStringArray()
notarization/notarization=0
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/photolibrary_usage_description=""
privacy/photolibrary_usage_description_localized={}
icons/iphone_120x120=""
icons/iphone_180x180=""
icons/ipad_76x76=""
icons/ipad_152x152=""
icons/ipad_167x167=""
icons/app_store_1024x1024=""
icons/spotlight_40x40=""
icons/spotlight_80x80=""
icons/settings_58x58=""
icons/settings_87x87=""
icons/notification_40x40=""
icons/notification_60x60=""
storyboard/use_launch_screen_storyboard=true
storyboard/image_scale_mode=0
storyboard/custom_image@2x=""
storyboard/custom_image@3x=""
storyboard/use_custom_bg_color=false
storyboard/custom_bg_color=Color(0, 0, 0, 1)
landscape_launch_screens/iphone_2436x1125=""
landscape_launch_screens/iphone_2208x1242=""
landscape_launch_screens/ipad_1024x768=""
landscape_launch_screens/ipad_2048x1536=""
portrait_launch_screens/iphone_640x960=""
portrait_launch_screens/iphone_640x1136=""
portrait_launch_screens/iphone_750x1334=""
portrait_launch_screens/iphone_1125x2436=""
portrait_launch_screens/ipad_768x1024=""
portrait_launch_screens/ipad_1536x2048=""
portrait_launch_screens/iphone_1242x2208=""
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/location_usage_description=""
privacy/location_usage_description_localized={}
privacy/address_book_usage_description=""
privacy/address_book_usage_description_localized={}
privacy/calendar_usage_description=""
privacy/calendar_usage_description_localized={}
privacy/photos_library_usage_description=""
privacy/photos_library_usage_description_localized={}
privacy/desktop_folder_usage_description=""
privacy/desktop_folder_usage_description_localized={}
privacy/documents_folder_usage_description=""
privacy/documents_folder_usage_description_localized={}
privacy/downloads_folder_usage_description=""
privacy/downloads_folder_usage_description_localized={}
privacy/network_volumes_usage_description=""
privacy/network_volumes_usage_description_localized={}
privacy/removable_volumes_usage_description=""
privacy/removable_volumes_usage_description_localized={}
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
[preset.4]
name="Web"
platform="Web"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../../../../home/jonas/Schreibtisch/Export_Web/retromario.html"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
[preset.4.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=1
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
+23 -15
View File
@@ -12,7 +12,7 @@ config_version=5
config/name="RetroMario"
config/version="0.1"
run/main_scene="res://scenes/level_1.tscn"
run/main_scene="res://scenes/levels/level_0.tscn"
config/features=PackedStringArray("4.2", "Forward Plus")
boot_splash/show_image=false
config/icon="res://assets/icon.png"
@@ -20,7 +20,11 @@ config/icon="res://assets/icon.png"
[display]
window/stretch/mode="viewport"
window/stretch/aspect="keep_height"
window/vsync/vsync_mode=0
[global]
itch=false
[input]
@@ -35,35 +39,39 @@ ui_text_caret_document_end={
}
move_left={
"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":65,"key_label":0,"unicode":97,"echo":false,"script":null)
, 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":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
, 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":65,"key_label":0,"unicode":97,"echo":false,"script":null)
]
}
move_right={
"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":68,"key_label":0,"unicode":100,"echo":false,"script":null)
, 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":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
, 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":68,"key_label":0,"unicode":100,"echo":false,"script":null)
]
}
jump={
"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":32,"key_label":0,"unicode":32,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
, 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":32,"key_label":0,"unicode":32,"echo":false,"script":null)
]
}
crawl={
"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":83,"key_label":0,"unicode":115,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
, 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":83,"key_label":0,"unicode":115,"echo":false,"script":null)
]
}
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)
]
}
[input_devices]
[physics]
pointing/emulate_touch_from_mouse=true
pointing/emulate_mouse_from_touch=false
2d/physics_engine="GodotPhysics2D"
2d/solver/contact_max_allowed_penetration=0.01
[rendering]
@@ -1,7 +1,7 @@
[gd_scene load_steps=12 format=3 uid="uid://b6piduuvusiix"]
[ext_resource type="Texture2D" uid="uid://chrld8oybp4me" path="res://assets/bg-1-1.png" id="1_4h0ce"]
[ext_resource type="Script" path="res://scripts/destroyblock.gd" id="1_a8383"]
[ext_resource type="Script" path="res://scripts/blocks/destroyblock.gd" id="1_a8383"]
[ext_resource type="AudioStream" uid="uid://dkb0efnhs6mrj" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Break.wav" id="3_bsm87"]
[sub_resource type="AtlasTexture" id="AtlasTexture_nbg0j"]
+185
View File
@@ -0,0 +1,185 @@
[gd_scene load_steps=12 format=3 uid="uid://cc4excywfdh1v"]
[ext_resource type="Script" path="res://scripts/blocks/destroyblock.gd" id="1_b75an"]
[ext_resource type="Texture2D" uid="uid://bbf2n32u766cp" path="res://assets/bg-1-2.png" id="2_4uaoj"]
[ext_resource type="AudioStream" uid="uid://dkb0efnhs6mrj" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Break.wav" id="3_0trkf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xwgx1"]
atlas = ExtResource("2_4uaoj")
region = Rect2(96, 272, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_r70hc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xwgx1")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i07jg"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r8vfl"]
size = Vector2(10, 1)
[sub_resource type="Animation" id="Animation_la8ht"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CollisionShape2D:disabled")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("destroySound:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("AnimatedSprite2D:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_hu2np"]
resource_name = "destroy"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CollisionShape2D:disabled")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("destroySound:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("AnimatedSprite2D:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_4lptd"]
resource_name = "idle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CollisionShape2D:disabled")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AnimatedSprite2D:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_55ebx"]
_data = {
"RESET": SubResource("Animation_la8ht"),
"destroy": SubResource("Animation_hu2np"),
"idle": SubResource("Animation_4lptd")
}
[node name="destroyblock_dark" type="RigidBody2D"]
gravity_scale = 0.0
script = ExtResource("1_b75an")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_r70hc")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_i07jg")
disabled = true
[node name="activate" type="Area2D" parent="."]
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="activate"]
position = Vector2(8, 0.5)
shape = SubResource("RectangleShape2D_r8vfl")
[node name="destroySound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_0trkf")
volume_db = 5.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_55ebx")
}
autoplay = "idle"
[connection signal="body_entered" from="activate" to="." method="_on_activate_body_entered"]
+11
View File
@@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://dflvi18e358ek"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_m1ni4"]
size = Vector2(16, 16)
[node name="StaticBody2D" type="StaticBody2D"]
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_m1ni4")
@@ -1,6 +1,6 @@
[gd_scene load_steps=10 format=3 uid="uid://d25ukpt8ot8xv"]
[ext_resource type="Script" path="res://scripts/itemblock.gd" id="2_fn5hi"]
[ext_resource type="Script" path="res://scripts/blocks/itemblock.gd" id="2_fn5hi"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="2_t1ko6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_lo6hv"]
@@ -70,4 +70,9 @@ collision_mask = 2
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"]
+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"]
+37
View File
@@ -0,0 +1,37 @@
[gd_scene load_steps=6 format=3 uid="uid://dad1wol24icj0"]
[ext_resource type="Script" path="res://scripts/blocks/move_platform.gd" id="1_olty2"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="2_tugy1"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ybhkw"]
atlas = ExtResource("2_tugy1")
region = Rect2(63, 38, 48, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_hdxpr"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ybhkw")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_aoc4r"]
size = Vector2(48, 8)
[node name="MovePlatform" type="RigidBody2D"]
collision_mask = 0
gravity_scale = 0.0
sleeping = true
lock_rotation = true
script = ExtResource("1_olty2")
veloc = Vector2(0, 50)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_hdxpr")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_aoc4r")
one_way_collision = true
+37
View File
@@ -0,0 +1,37 @@
[gd_scene load_steps=6 format=3 uid="uid://bofueafaqy7so"]
[ext_resource type="Script" path="res://scripts/blocks/move_platform.gd" id="1_lakrn"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="2_2bvoe"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ybhkw"]
atlas = ExtResource("2_2bvoe")
region = Rect2(63, 38, 48, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_hdxpr"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ybhkw")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_w18em"]
size = Vector2(48, 8)
[node name="MovePlatform" type="RigidBody2D"]
collision_mask = 0
gravity_scale = 0.0
lock_rotation = true
script = ExtResource("1_lakrn")
veloc = Vector2(0, -50)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_hdxpr")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = -6.28318
shape = SubResource("RectangleShape2D_w18em")
one_way_collision = true
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://btwegds3up8cn"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_pvodq"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_c4pt3"]
size = Vector2(48, 8)
[node name="Platform" type="AnimatableBody2D"]
[node name="Sprite2D" type="Sprite2D" parent="."]
z_index = 20
texture = ExtResource("1_pvodq")
region_enabled = true
region_rect = Rect2(63, 38, 48, 8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_c4pt3")
one_way_collision = true
+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
+10
View File
@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://ct54hcx2h7riy"]
[ext_resource type="Script" path="res://scripts/blocks/spawner.gd" id="1_du4pp"]
[node name="Spawner" type="Node2D"]
script = ExtResource("1_du4pp")
[node name="Timer" type="Timer" parent="."]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+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"]
+113
View File
@@ -0,0 +1,113 @@
[gd_scene load_steps=10 format=3 uid="uid://bkpny146y0y0e"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_451aa"]
[ext_resource type="Script" path="res://scripts/enemies/coopa.gd" id="1_iin32"]
[ext_resource type="AudioStream" uid="uid://bh8t167vl6j2n" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Kick.wav" id="2_e5ron"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ub6x3"]
atlas = ExtResource("1_451aa")
region = Rect2(150, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_dr5y8"]
atlas = ExtResource("1_451aa")
region = Rect2(180, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_hduks"]
atlas = ExtResource("1_451aa")
region = Rect2(360, 4, 16, 15)
[sub_resource type="SpriteFrames" id="SpriteFrames_g2x7m"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ub6x3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dr5y8")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_hduks")
}],
"loop": true,
"name": &"shrink",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_8406q"]
radius = 7.0
height = 24.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dpvp1"]
size = Vector2(10, 0.5)
[node name="coopa" type="RigidBody2D"]
collision_layer = 128
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"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -12)
shape = SubResource("CapsuleShape2D_8406q")
[node name="RayCastLeft" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 145
[node name="RayCastLeft2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 2
[node name="RayCastLeft3" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 128
[node name="RayCastRight" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 145
[node name="RayCastRight2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 2
[node name="RayCastRight3" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 128
[node name="die" type="Area2D" parent="."]
position = Vector2(0, -8)
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="die"]
position = Vector2(8, -16.25)
shape = SubResource("RectangleShape2D_dpvp1")
[node name="dieSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("2_e5ron")
[node name="Timer2" type="Timer" parent="."]
one_shot = true
[node name="Timer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[connection signal="body_entered" from="die" to="." method="_on_die_body_entered"]
[connection signal="timeout" from="Timer2" to="." method="_on_timer_2_timeout"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+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,7 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://cwviqxncs4fom"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_fe7l6"]
[ext_resource type="Script" path="res://scripts/gumba.gd" id="1_o30u3"]
[ext_resource type="Script" path="res://scripts/enemies/gumba.gd" id="1_o30u3"]
[ext_resource type="AudioStream" uid="uid://bh8t167vl6j2n" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Kick.wav" id="3_v1fjb"]
[sub_resource type="AtlasTexture" id="AtlasTexture_srbv5"]
@@ -45,11 +45,12 @@ radius = 8.0
size = Vector2(10, 0.5)
[node name="Gumba" type="RigidBody2D"]
collision_layer = 8
collision_layer = 128
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"
@@ -61,7 +62,7 @@ shape = SubResource("CircleShape2D_l4q7u")
[node name="RayCastLeft" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-9, 0)
collision_mask = 17
collision_mask = 145
[node name="RayCastLeft2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
@@ -71,7 +72,7 @@ collision_mask = 2
[node name="RayCastRight" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(9, 0)
collision_mask = 17
collision_mask = 145
[node name="RayCastRight2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
+87
View File
@@ -0,0 +1,87 @@
[gd_scene load_steps=10 format=3 uid="uid://dn2sy74ad2qfh"]
[ext_resource type="Script" path="res://scripts/enemies/plant.gd" id="1_7t6jh"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_jnxrw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_cyktl"]
atlas = ExtResource("1_jnxrw")
region = Rect2(390, 30, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_dylf8"]
atlas = ExtResource("1_jnxrw")
region = Rect2(420, 30, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_th7fo"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cyktl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dylf8")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mdpkr"]
size = Vector2(16, 24)
[sub_resource type="Animation" id="Animation_g0wcr"]
resource_name = "default"
length = 8.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(4, 8),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"move_up"
}, {
"args": [],
"method": &"move_down"
}]
}
[sub_resource type="Animation" id="Animation_axvvr"]
length = 0.001
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x0mu6"]
_data = {
"RESET": SubResource("Animation_axvvr"),
"default": SubResource("Animation_g0wcr")
}
[node name="Plant" type="Area2D"]
collision_layer = 128
collision_mask = 2
script = ExtResource("1_7t6jh")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(0, 13)
sprite_frames = SubResource("SpriteFrames_th7fo")
autoplay = "default"
frame_progress = 0.459679
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 13)
shape = SubResource("RectangleShape2D_mdpkr")
[node name="Timer" type="Timer" parent="."]
one_shot = true
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_x0mu6")
}
autoplay = "default"
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+79
View File
@@ -0,0 +1,79 @@
[gd_scene load_steps=7 format=3 uid="uid://bm04qp5vgbi10"]
[ext_resource type="Script" path="res://scripts/Flag.gd" id="1_3p67j"]
[ext_resource type="AudioStream" uid="uid://dw00kc3yup8bh" path="res://assets/sounds/52ac54_super_mario_bros_stage_clear_sound_effect.mp3" id="2_4f78k"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ihwdr"]
size = Vector2(6, 201)
[sub_resource type="Animation" id="Animation_ufkda"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AudioStreamPlayer:playing")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_ivwqs"]
resource_name = "change_scene"
length = 6.0
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(6),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"load_new_scene"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AudioStreamPlayer:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_adywb"]
_data = {
"RESET": SubResource("Animation_ufkda"),
"change_scene": SubResource("Animation_ivwqs")
}
[node name="Flag" type="Area2D"]
position = Vector2(3176, -19)
collision_layer = 32769
collision_mask = 2
script = ExtResource("1_3p67j")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -98.5)
shape = SubResource("RectangleShape2D_ihwdr")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_adywb")
}
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_4f78k")
volume_db = -5.0
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
+3 -3
View File
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://nm5keea43u56"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_lffao"]
[ext_resource type="Script" path="res://scripts/coin.gd" id="1_qn7es"]
[ext_resource type="Script" path="res://scripts/items/coin.gd" id="1_shvw0"]
[ext_resource type="AudioStream" uid="uid://dkfpfaqxyvcew" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Coin.wav" id="3_ioelm"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7xy4l"]
@@ -37,7 +37,7 @@ animations = [{
}],
"loop": true,
"name": &"idle",
"speed": 5.0
"speed": 10.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_vpcnk"]
@@ -142,7 +142,7 @@ _data = {
[node name="Coin" type="Area2D"]
collision_mask = 2
script = ExtResource("1_qn7es")
script = ExtResource("1_shvw0")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -8)
+142
View File
@@ -0,0 +1,142 @@
[gd_scene load_steps=13 format=3 uid="uid://bp71ntkh281k5"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_2qvvh"]
[ext_resource type="Script" path="res://scripts/items/fire_flower.gd" id="1_mpyyo"]
[ext_resource type="AudioStream" uid="uid://dr8w21sjl0a7" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Powerup.wav" id="3_vbdsa"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jlv6x"]
atlas = ExtResource("1_2qvvh")
region = Rect2(4, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_flc5q"]
atlas = ExtResource("1_2qvvh")
region = Rect2(34, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ftlk4"]
atlas = ExtResource("1_2qvvh")
region = Rect2(64, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_t6dyx"]
atlas = ExtResource("1_2qvvh")
region = Rect2(94, 64, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_7uuxh"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jlv6x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_flc5q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ftlk4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t6dyx")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_r8tpx"]
radius = 9.0
[sub_resource type="Animation" id="Animation_3a161"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AudioStreamPlayer2D:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_4xypy"]
resource_name = "pickup"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AudioStreamPlayer2D:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_duoc6"]
_data = {
"RESET": SubResource("Animation_3a161"),
"pickup": SubResource("Animation_4xypy")
}
[node name="FireFlower" type="Area2D"]
collision_layer = 8
collision_mask = 2
script = ExtResource("1_mpyyo")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_7uuxh")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("CircleShape2D_r8tpx")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_duoc6")
}
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_vbdsa")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
+69
View File
@@ -0,0 +1,69 @@
[gd_scene load_steps=10 format=3 uid="uid://beaktq6mygp6c"]
[ext_resource type="Script" path="res://scripts/items/fireball.gd" id="1_c103u"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_sy4od"]
[ext_resource type="AudioStream" uid="uid://si212xxdt3wk" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Fire Ball.wav" id="3_270oi"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_27hkc"]
friction = 0.0
bounce = 0.7
[sub_resource type="AtlasTexture" id="AtlasTexture_pjn1s"]
atlas = ExtResource("1_sy4od")
region = Rect2(364, 188, 8, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_unbxs"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pjn1s")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_pwt6i"]
radius = 5.09902
[sub_resource type="CircleShape2D" id="CircleShape2D_87wnf"]
radius = 6.0
[sub_resource type="CircleShape2D" id="CircleShape2D_ly4gs"]
radius = 5.0
[node name="Fireball" type="RigidBody2D"]
collision_layer = 8
physics_material_override = SubResource("PhysicsMaterial_27hkc")
can_sleep = false
script = ExtResource("1_c103u")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 20
sprite_frames = SubResource("SpriteFrames_unbxs")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_pwt6i")
[node name="Timer" type="Timer" parent="."]
wait_time = 2.0
one_shot = true
[node name="CollCount" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="CollCount"]
shape = SubResource("CircleShape2D_87wnf")
[node name="EnemieDie" type="Area2D" parent="."]
collision_mask = 128
[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemieDie"]
shape = SubResource("CircleShape2D_ly4gs")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_270oi")
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[connection signal="body_entered" from="CollCount" to="." method="_on_area_2d_body_entered"]
[connection signal="area_entered" from="EnemieDie" to="." method="_on_enemie_die_area_entered"]
[connection signal="body_entered" from="EnemieDie" to="." method="_on_enemie_die_body_entered"]
+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"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=11 format=3 uid="uid://b4dp88urmm7g8"]
[ext_resource type="Script" path="res://scripts/mushroom.gd" id="1_5wbjm"]
[ext_resource type="Script" path="res://scripts/items/mushroom.gd" id="1_qo5bm"]
[ext_resource type="Texture2D" uid="uid://dth47lmb44qk8" path="res://assets/items.png" id="1_tsecc"]
[ext_resource type="AudioStream" uid="uid://dr8w21sjl0a7" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Powerup.wav" id="3_ad473"]
@@ -102,9 +102,10 @@ _data = {
[node name="mushroom" type="RigidBody2D"]
collision_layer = 8
lock_rotation = true
script = ExtResource("1_5wbjm")
script = ExtResource("1_qo5bm")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 20
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_s232e")
autoplay = "default"
+111
View File
@@ -0,0 +1,111 @@
[gd_scene load_steps=3 format=3 uid="uid://drbqiko4xx71d"]
[ext_resource type="Script" path="res://scripts/LevelSelect.gd" id="1_ck5bd"]
[ext_resource type="FontFile" uid="uid://cpwx7datjer6s" path="res://assets/PixelOperator8.ttf" id="2_3ebbo"]
[node name="LevelSelect" type="CanvasLayer"]
script = ExtResource("1_ck5bd")
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Button_1" 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 = -148.0
offset_right = -32.0
offset_bottom = -84.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 1"
[node name="Button_2" 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 = -148.0
offset_right = 240.0
offset_bottom = -84.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 2"
[node name="Button_3" 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 = -36.0
offset_right = -32.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 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"]]
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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -3,12 +3,12 @@
[ext_resource type="Script" path="res://scripts/pipe.gd" id="1_akqs5"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5w6v5"]
size = Vector2(30, 1)
size = Vector2(30, 2)
[node name="pipe" type="Area2D"]
collision_layer = 4
script = ExtResource("1_akqs5")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(16, -0.5)
position = Vector2(16, 0)
shape = SubResource("RectangleShape2D_5w6v5")
+153 -4
View File
@@ -1,11 +1,14 @@
[gd_scene load_steps=22 format=3 uid="uid://dk1aby88pygtr"]
[gd_scene load_steps=33 format=3 uid="uid://dk1aby88pygtr"]
[ext_resource type="Script" path="res://scripts/player.gd" id="1_lm7ix"]
[ext_resource type="Texture2D" uid="uid://dhw3lpuskbvku" path="res://assets/mario-luigi-4.png" id="1_w3chr"]
[ext_resource type="PackedScene" uid="uid://beaktq6mygp6c" path="res://scenes/items/fireball.tscn" id="2_owoxk"]
[ext_resource type="FontFile" uid="uid://cpwx7datjer6s" path="res://assets/PixelOperator8.ttf" id="3_mkgvb"]
[ext_resource type="Texture2D" uid="uid://d0xxlo60h1d7i" path="res://assets/coinlabel.png" id="4_o0q77"]
[ext_resource type="AudioStream" uid="uid://cbs4okawh444d" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Warp.wav" id="5_kvw73"]
[ext_resource type="AudioStream" uid="uid://bo4big602rvtr" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Jump.wav" id="6_aq3u4"]
[ext_resource type="AudioStream" uid="uid://bh8t167vl6j2n" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Kick.wav" id="8_6t158"]
[ext_resource type="AudioStream" uid="uid://b0h07g0c8i84c" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Die.wav" id="9_pu5vq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_l22ll"]
atlas = ExtResource("1_w3chr")
@@ -19,6 +22,10 @@ region = Rect2(80, 34, 16, 16)
atlas = ExtResource("1_w3chr")
region = Rect2(80, 1, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_kxd3p"]
atlas = ExtResource("1_w3chr")
region = Rect2(80, 129, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dmbgr"]
atlas = ExtResource("1_w3chr")
region = Rect2(165, 34, 16, 16)
@@ -27,6 +34,10 @@ region = Rect2(165, 34, 16, 16)
atlas = ExtResource("1_w3chr")
region = Rect2(165, 1, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_npe6k"]
atlas = ExtResource("1_w3chr")
region = Rect2(165, 129, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_jb1pe"]
atlas = ExtResource("1_w3chr")
region = Rect2(97, 34, 16, 16)
@@ -51,6 +62,18 @@ region = Rect2(114, 1, 16, 32)
atlas = ExtResource("1_w3chr")
region = Rect2(131, 1, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_iljl6"]
atlas = ExtResource("1_w3chr")
region = Rect2(97, 129, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7pcnf"]
atlas = ExtResource("1_w3chr")
region = Rect2(114, 129, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_jva7o"]
atlas = ExtResource("1_w3chr")
region = Rect2(131, 129, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_l5s58"]
animations = [{
"frames": [{
@@ -79,6 +102,14 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_kxd3p")
}],
"loop": true,
"name": &"idle_flower",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dmbgr")
}],
"loop": true,
@@ -95,6 +126,14 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_npe6k")
}],
"loop": true,
"name": &"jump_flower",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jb1pe")
}, {
"duration": 1.0,
@@ -120,11 +159,25 @@ animations = [{
"loop": true,
"name": &"run_big",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_iljl6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7pcnf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jva7o")
}],
"loop": true,
"name": &"run_flower",
"speed": 10.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_4sl4a"]
radius = 6.0
height = 16.0
height = 15.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sqgi2"]
size = Vector2(8, 1)
@@ -132,20 +185,99 @@ size = Vector2(8, 1)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_okc7h"]
size = Vector2(1, 2)
[sub_resource type="Animation" id="Animation_miyjx"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Camera2D/ColorRect:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("dieSound:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_jgvs8"]
resource_name = "die"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Camera2D/ColorRect:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("dieSound:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"reload_scene"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_uuoiq"]
_data = {
"RESET": SubResource("Animation_miyjx"),
"die": SubResource("Animation_jgvs8")
}
[node name="player" type="CharacterBody2D"]
position = Vector2(0, -10)
collision_layer = 2
script = ExtResource("1_lm7ix")
fireball_prefab = ExtResource("2_owoxk")
[node name="Camera2D" type="Camera2D" parent="."]
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
z_index = 10
z_index = 50
offset_left = -3995.0
offset_top = -1678.0
offset_right = 3965.0
@@ -154,9 +286,10 @@ mouse_filter = 1
color = Color(0, 0, 0, 1)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
z_index = 25
position = Vector2(0, 2)
sprite_frames = SubResource("SpriteFrames_l5s58")
animation = &"idle_big"
animation = &"run_flower"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 2)
@@ -206,6 +339,7 @@ offset_right = 241.0
offset_bottom = 104.0
mouse_filter = 1
theme_override_colors/font_color = Color(1, 0.627451, 0.266667, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_fonts/font = ExtResource("3_mkgvb")
theme_override_font_sizes/font_size = 40
text = "0
@@ -226,9 +360,24 @@ stream = ExtResource("5_kvw73")
[node name="JumpSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_aq3u4")
[node name="shrinkSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("8_6t158")
[node name="dieSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("9_pu5vq")
[node name="diePlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_uuoiq")
}
[node name="timer_fire" type="Timer" parent="."]
one_shot = true
[connection signal="area_entered" from="pipedetector_ground" to="." method="_on_pipedetector_area_entered"]
[connection signal="area_exited" from="pipedetector_ground" to="." method="_on_pipedetector_area_exited"]
[connection signal="area_entered" from="pipedetector_right" to="." method="_on_pipedetector_right_area_entered"]
[connection signal="area_exited" from="pipedetector_right" to="." method="_on_pipedetector_right_area_exited"]
[connection signal="timeout" from="pipe_timer" to="." method="_on_pipe_timer_timeout"]
[connection signal="timeout" from="pipe_timer_half" to="." method="_on_pipe_timer_half_timeout"]
[connection signal="timeout" from="timer_fire" to="." method="_on_timer_fire_timeout"]
+26
View File
@@ -0,0 +1,26 @@
extends Area2D
@export var load_level: String
@onready var animation_player = $AnimationPlayer
@onready var player = %player
@onready var audio_stream_player = $AudioStreamPlayer
@onready var music = %Music
@export var level_score : int
func _on_body_entered(body):
animation_player.play("change_scene")
player.on_pause = true
music.stop()
func load_new_scene():
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/" + load_level + ".tscn")
+20
View File
@@ -0,0 +1,20 @@
extends Label
@onready var label = $"."
@onready var label_2 = $"../Label2"
@onready var label_3 = $"../Label3"
func _ready():
var platform = ""
match OS.get_name():
"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
+22
View File
@@ -0,0 +1,22 @@
extends CanvasLayer
@onready var buttons = [$Control/Button_1, $Control/Button_2, $Control/Button_3,
$Control/Button_4, $Control/Button_5
]
var available_level = 0
func _ready():
var config = ConfigFile.new()
var err = config.load("user://config.cfg")
if err == OK:
available_level = config.get_value("level", "available_level", 1)
else:
available_level = 1
for i in range(0, available_level):
if i < len(buttons):
buttons[i].disabled = false
func _on_button_pressed(extra_arg_0):
get_tree().change_scene_to_file("res://scenes/levels/level_"+ extra_arg_0 +".tscn")
+21
View File
@@ -0,0 +1,21 @@
extends Area2D
@onready var timer = $Timer
@onready var label = $"../CanvasLayer/Control/Label"
@onready var player = %player
func _on_body_entered(body):
player.shrink()
player.shrink()
player.shrink()
func _ready():
timer.start()
func _process(delta):
var x = str(int(timer.time_left))
label.text = x
func _on_timer_timeout():
player.shrink()
player.shrink()
player.shrink()
+23
View File
@@ -0,0 +1,23 @@
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 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()
@@ -1,22 +1,33 @@
extends RigidBody2D
@onready var animated_sprite_2d = $AnimatedSprite2D
@export var hit_object:PackedScene
@export var auto_collect:bool
var destroyed = false
var instance = null
var _body = null
@onready var timer = $Timer
func _ready():
animated_sprite_2d.play("idle")#
func _on_activate_body_entered(body):
_body = body
if destroyed:
return
destroyed = true
animated_sprite_2d.play("destroy")
if hit_object == null:
return
var instance = hit_object.instantiate()
instance = hit_object.instantiate()
add_child(instance)
instance.position.y -= 17
instance.position.y -= 16
timer.start()
func _on_timer_timeout():
if auto_collect:
instance.collect_coin(_body)
+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()
+6
View File
@@ -0,0 +1,6 @@
extends RigidBody2D
@export var veloc : Vector2
func _physics_process(delta):
linear_velocity = veloc
+22
View File
@@ -0,0 +1,22 @@
extends Node2D
@onready var timer = $Timer
@export var obj : PackedScene
@export var delay : float
var instances = []
func _ready():
timer.wait_time = delay
timer.start()
func _on_timer_timeout():
var instance = obj.instantiate()
instance.position.x = 0
instance.position.y = 0
add_child(instance)
instances.append(instance)
if len(instances) > 5:
var curr = instances.pop_front()
curr.queue_free()
-11
View File
@@ -1,11 +0,0 @@
extends RigidBody2D
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var animation_player = $AnimationPlayer
func _ready():
animated_sprite_2d.play("default")
func _on_activate_body_entered(body):
if body.is_big:
animation_player.play("destroy")
+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")
+112
View File
@@ -0,0 +1,112 @@
extends RigidBody2D
@export var speed = -70
@onready var ray_cast_left = $RayCastLeft
@onready var ray_cast_right = $RayCastRight
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var timer = $Timer
@onready var die = $die
@onready var ray_cast_left_2 = $RayCastLeft2
@onready var ray_cast_right_2 = $RayCastRight2
var innocent = false
@onready var timer_2 = $Timer2
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()
coll.height = 24
coll.radius = 7
collision_shape_2d.shape = coll
func _physics_process(delta):
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():
speed = abs(speed)
animated_sprite_2d.flip_h = true
elif ray_cast_right.is_colliding() or ray_cast_right_2.is_colliding():
speed = -abs(speed)
animated_sprite_2d.flip_h = false
var other = null
if ray_cast_left_3.is_colliding():
other = ray_cast_left_3.get_collider()
elif ray_cast_right_3.is_colliding():
other = ray_cast_right_3.get_collider()
if is_down and speed != 0 and other != null:
other.f_die()
if innocent:
return
var body = null
if ray_cast_left_2.is_colliding():
if speed != 0:
body = ray_cast_left_2.get_collider()
else:
speed = 160
innocent = true
die_sound.play()
timer_2.start()
elif ray_cast_right_2.is_colliding():
if speed != 0:
body = ray_cast_right_2.get_collider()
else:
speed = -160
innocent = true
die_sound.play()
timer_2.start()
if body != null:
body.shrink()
innocent = true
timer_2.start()
@onready var die_sound = $dieSound
func f_die():
die_sound.play()
speed = 0
innocent = true
collision_layer = 32
timer.start()
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
animated_sprite_2d.play("shrink")
is_down = true
ray_cast_left_2.scale.x = 2
ray_cast_right_2.scale.x = 2
elif speed == 0:
speed = 160 if body.position.x < position.x else -160
else:
speed = 0
func _on_timer_2_timeout():
innocent = false
func _on_die_body_entered(body):
f_shrink(body)
body.velocity.y = body.JUMPt_velocity/1.5
func _on_timer_timeout():
queue_free()
+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
+12 -5
View File
@@ -10,9 +10,12 @@ extends RigidBody2D
@onready var ray_cast_right_2 = $RayCastRight2
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
@@ -37,13 +40,17 @@ func _physics_process(delta):
@onready var die_sound = $dieSound
func f_die():
innocent = true
speed = 0
animated_sprite_2d.play("die")
timer.start()
die.queue_free()
die_sound.play()
ray_cast_left_2.queue_free()
ray_cast_right_2.queue_free()
if die != null:
gumba.collision_layer = 32
die.queue_free()
die_sound.play()
ray_cast_left_2.queue_free()
ray_cast_right_2.queue_free()
func _on_die_body_entered(body):
f_die()
+35
View File
@@ -0,0 +1,35 @@
extends Area2D
var innocent = false
@onready var timer = $Timer
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var collision_shape_2d = $CollisionShape2D
var mover = 25
var up = false
func _on_body_entered(body):
if not innocent:
body.shrink()
innocent = true
timer.start()
func _process(delta):
if mover < 25:
collision_shape_2d.position.y += -1 if up else 1
animated_sprite_2d.position.y += -1 if up else 1
mover += 1
func _on_timer_timeout():
innocent = false
func move_up():
mover = 0
up = true
func move_down():
mover = 0
up = false
func f_die():
queue_free()
+6
View File
@@ -0,0 +1,6 @@
extends Area2D
@onready var animation_player = $AnimationPlayer
func _on_body_entered(body):
body.flower()
animation_player.play("pickup")
+29
View File
@@ -0,0 +1,29 @@
extends RigidBody2D
@onready var timer = $Timer
var enter_count = 0
@onready var audio_stream_player_2d = $AudioStreamPlayer2D
# Called when the node enters the scene tree for the first time.
func _ready():
timer.start()
audio_stream_player_2d.play()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_timer_timeout():
queue_free()
func _on_area_2d_body_entered(body):
enter_count += 1
if enter_count > 2:
queue_free()
func _on_enemie_die_body_entered(body):
body.f_die()
queue_free()
func _on_enemie_die_area_entered(area):
_on_enemie_die_body_entered(area)
+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
+79 -13
View File
@@ -9,10 +9,14 @@ extends CharacterBody2D
@onready var pipedetector_ground = $pipedetector_ground
@onready var pipe_sound = $PipeSound
@onready var jump_sound = $JumpSound
@onready var shrink_sound = $shrinkSound
@onready var die_player = $diePlayer
@onready var music = %Music
@onready var timer_fire = $timer_fire
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
@@ -24,21 +28,30 @@ var coins = 0
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var on_pause = false
var is_big = false
var is_flower = false
# touch controls
var touch_anchor = Vector2.ZERO
var jump = false
var crawl = false
var fire = false
var toucht_velocity = Vector2.ZERO
var t_velocity = 0
var can_fire = 0
@export var fireball_prefab : PackedScene
func _unhandled_input(event):
if event is InputEventScreenTouch or event is InputEventScreenDrag:
if event.is_pressed():
if event.position.x < get_viewport_rect().size.x / 2:
touch_anchor = event.position
elif not jump:
jump = true
else:
if event.position.y > get_viewport_rect().size.y / 2:
if not jump:
jump = true
elif not fire:
fire = true
elif event.position.x < get_viewport_rect().size.x / 2:
toucht_velocity = event.position - touch_anchor
if abs(toucht_velocity.x) > 30:
@@ -56,18 +69,21 @@ func _unhandled_input(event):
func _ready():
color_rect.visible = false
pipedetector_ground.position.y = 0
collision_shape_2d.shape.height = 15
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
@@ -78,7 +94,7 @@ func _process(delta):
func _physics_process(delta):
# Add the gravity.
if not is_on_floor():
if not is_on_floor() and not on_pause:
velocity.y += gravity * delta
# Handle jump.
@@ -87,8 +103,21 @@ func _physics_process(delta):
jump = false
velocity.y = JUMPt_velocity
# get input
# check fireball
if is_flower and (Input.is_action_just_pressed("flower") or fire) and can_fire < 2:
can_fire += 1
fire = false
var instance = fireball_prefab.instantiate()
get_parent().add_child(instance)
instance.position.x = position.x -8 if animated_sprite_2d.flip_h else position.x + 8
instance.position.y = position.y
instance.linear_velocity.x = -200 if animated_sprite_2d.flip_h else 200
instance.linear_velocity.y = 50
instance.angular_velocity = 0
timer_fire.start()
# get input
var direction = Input.get_axis("move_left", "move_right") + t_velocity
if on_pause:
@@ -103,17 +132,23 @@ func _physics_process(delta):
# play animation
if is_on_floor():
if direction != 0:
if is_big:
if is_flower:
animated_sprite_2d.play("run_flower")
elif is_big:
animated_sprite_2d.play("run_big")
else:
animated_sprite_2d.play("run")
else:
if is_big:
if is_flower:
animated_sprite_2d.play("idle_flower")
elif is_big:
animated_sprite_2d.play("idle_big")
else:
animated_sprite_2d.play("idle")
else:
if is_big:
if is_flower:
animated_sprite_2d.play("jump_flower")
elif is_big:
animated_sprite_2d.play("jump_big")
else:
animated_sprite_2d.play("jump")
@@ -123,19 +158,46 @@ func _physics_process(delta):
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
if not on_pause:
move_and_slide()
func grow():
if not is_big:
is_big = true
collision_shape_2d.shape.height = 32
if is_on_floor():
position.y -= 20
collision_shape_2d.shape.height = 31
pipedetector_ground.position.y += 8
func flower():
if not is_big:
collision_shape_2d.shape.height = 31
pipedetector_ground.position.y += 8
is_big = true
is_flower = true
func shrink():
if is_big:
if on_pause:
return
if is_flower:
is_flower = false
shrink_sound.play()
elif is_big:
is_big = false
collision_shape_2d.shape.height = 16
collision_shape_2d.shape.height = 15
pipedetector_ground.position.y -= 8
shrink_sound.play()
else:
player_die()
func player_die():
die_player.play("die")
on_pause = true
music.stop()
func reload_scene():
get_tree().reload_current_scene()
func increase_coins():
coins += 1
@@ -164,3 +226,7 @@ func _on_pipe_timer_timeout():
func _on_pipe_timer_half_timeout():
position = pipe_target
func _on_timer_fire_timeout():
can_fire = 0