Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82a82a5c14 | ||
|
|
a2f9549d15 | ||
|
|
6ef02c5628 | ||
|
|
3f4a905999 | ||
|
|
ba42f2b7ad | ||
|
|
efd553e8b0 | ||
|
|
2ea5608b12 | ||
|
|
ae085feeab | ||
|
|
7946fd789c | ||
|
|
08f75b79d8 | ||
|
|
2e845bf217 | ||
|
|
e7e72f6109 | ||
|
|
a9c2f587da | ||
|
|
30b0a527b4 | ||
|
|
3d318a5c07 | ||
|
|
6860fda89c | ||
|
|
2242369738 | ||
|
|
7ece2c1391 | ||
|
|
4a64f30c57 | ||
|
|
cf5153c10a | ||
|
|
f0ae51aa75 | ||
|
|
f1f0e53538 | ||
|
|
8ea91b2967 | ||
|
|
1cd04a27cf | ||
|
|
a706375da0 | ||
|
|
a4476f2ce2 | ||
|
|
b18dfee7dc | ||
|
|
85736f82e0 | ||
|
|
3a6f8517c0 |
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"godotTools.editorPath.godot4": "/home/jonas/Dokumente/Godot/Godot.x86_64"
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
see [Releases](https://git.sechat.de/jonas/retromariogodot/-/releases)
|
||||
see [Releases](https://git.sechat.de/jonas/retromariogodot/-/releases)<br/>
|
||||
https://mariomaker32.itch.io/mario-bros-retro - pwd: 1234
|
||||
|
After Width: | Height: | Size: 626 B |
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bkrv87t2ryjd0"
|
||||
path="res://.godot/imported/Dead.png-29ce68f874dbc43f4f9778a714b32623.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Dead.png"
|
||||
dest_files=["res://.godot/imported/Dead.png-29ce68f874dbc43f4f9778a714b32623.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
|
||||
|
After Width: | Height: | Size: 649 B |
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dgyuh7qglc7vd"
|
||||
path="res://.godot/imported/Flag.png-47653dcbce6ad9726dae00766f6d8d5d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Flag.png"
|
||||
dest_files=["res://.godot/imported/Flag.png-47653dcbce6ad9726dae00766f6d8d5d.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
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -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
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -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
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -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
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -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
|
||||
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bwrwij2s8csyn"
|
||||
path="res://.godot/imported/1.png-ab0c3ae98db1c6648eb7fb8190d73dd9.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/screenshots/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-ab0c3ae98db1c6648eb7fb8190d73dd9.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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,6 +306,149 @@ permissions/write_user_dictionary=false
|
||||
|
||||
[preset.3]
|
||||
|
||||
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_Mac/retromario.zip"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
export/distribution_type=1
|
||||
binary_format/architecture="universal"
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
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/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/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/index.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)
|
||||
|
||||
[preset.5]
|
||||
|
||||
name="iOS"
|
||||
platform="iOS"
|
||||
runnable=true
|
||||
@@ -314,13 +457,13 @@ 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_IOS/retromario.ipa"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.3.options]
|
||||
[preset.5.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
@@ -329,7 +472,7 @@ 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/export_method_release=1
|
||||
application/targeted_device_family=2
|
||||
application/bundle_identifier="com.retro.mario"
|
||||
application/signature=""
|
||||
|
||||
@@ -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,44 @@ 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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":true,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":true,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":true,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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)
|
||||
@@ -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_axvvr"]
|
||||
length = 0.001
|
||||
|
||||
[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="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"]
|
||||
@@ -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"]
|
||||
@@ -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)
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -0,0 +1,61 @@
|
||||
[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, 47)
|
||||
|
||||
[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")
|
||||
autoplay = "default"
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
position = Vector2(8, -23.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"
|
||||
@@ -0,0 +1,123 @@
|
||||
[gd_scene load_steps=5 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"]
|
||||
[ext_resource type="Texture2D" uid="uid://dgyuh7qglc7vd" path="res://assets/Flag.png" id="3_v04a0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkrv87t2ryjd0" path="res://assets/Dead.png" id="4_3d18b"]
|
||||
|
||||
[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 = -336.0
|
||||
offset_top = -100.0
|
||||
offset_right = -192.0
|
||||
offset_bottom = -36.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_fonts/font = ExtResource("2_3ebbo")
|
||||
theme_override_font_sizes/font_size = 24
|
||||
disabled = true
|
||||
text = "1-1"
|
||||
icon = ExtResource("3_v04a0")
|
||||
expand_icon = true
|
||||
|
||||
[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 = -160.0
|
||||
offset_top = -100.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = -36.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_fonts/font = ExtResource("2_3ebbo")
|
||||
theme_override_font_sizes/font_size = 24
|
||||
disabled = true
|
||||
text = "1-2"
|
||||
icon = ExtResource("3_v04a0")
|
||||
expand_icon = true
|
||||
|
||||
[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 = 16.0
|
||||
offset_top = -100.0
|
||||
offset_right = 160.0
|
||||
offset_bottom = -36.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_fonts/font = ExtResource("2_3ebbo")
|
||||
theme_override_font_sizes/font_size = 24
|
||||
disabled = true
|
||||
text = "1-3"
|
||||
icon = ExtResource("3_v04a0")
|
||||
expand_icon = true
|
||||
|
||||
[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 = 192.0
|
||||
offset_top = -100.0
|
||||
offset_right = 336.0
|
||||
offset_bottom = -36.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_fonts/font = ExtResource("2_3ebbo")
|
||||
theme_override_font_sizes/font_size = 24
|
||||
disabled = true
|
||||
text = "1-4"
|
||||
icon = ExtResource("4_3d18b")
|
||||
expand_icon = true
|
||||
|
||||
[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 = -336.0
|
||||
offset_top = -4.0
|
||||
offset_right = -192.0
|
||||
offset_bottom = 60.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_fonts/font = ExtResource("2_3ebbo")
|
||||
theme_override_font_sizes/font_size = 24
|
||||
disabled = true
|
||||
text = "2-1"
|
||||
icon = ExtResource("3_v04a0")
|
||||
expand_icon = true
|
||||
|
||||
[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"]]
|
||||
@@ -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")
|
||||
|
||||
@@ -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,31 +185,68 @@ 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("dieSound: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_jgvs8"]
|
||||
resource_name = "die"
|
||||
length = 3.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("dieSound:playing")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
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(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")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position = Vector2(35, 0)
|
||||
zoom = Vector2(3, 3)
|
||||
limit_left = -160
|
||||
limit_bottom = 32
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="Camera2D"]
|
||||
visible = false
|
||||
z_index = 10
|
||||
offset_left = -3995.0
|
||||
offset_top = -1678.0
|
||||
offset_right = 3965.0
|
||||
offset_bottom = 1594.0
|
||||
mouse_filter = 1
|
||||
color = Color(0, 0, 0, 1)
|
||||
fireball_prefab = ExtResource("2_owoxk")
|
||||
|
||||
[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 +296,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 +317,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"]
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
@@ -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()
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
@@ -0,0 +1,6 @@
|
||||
extends RigidBody2D
|
||||
|
||||
@export var veloc : Vector2
|
||||
|
||||
func _physics_process(delta):
|
||||
linear_velocity = veloc
|
||||
@@ -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()
|
||||
@@ -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")
|
||||
@@ -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()
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -0,0 +1,115 @@
|
||||
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():
|
||||
gravity_scale = 0
|
||||
collision_shape_2d.queue_free()
|
||||
die.queue_free()
|
||||
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()
|
||||
@@ -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
|
||||
@@ -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()
|
||||
@@ -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 += -25 * delta if up else 25 * delta
|
||||
animated_sprite_2d.position.y += -25 * delta if up else 25 * delta
|
||||
mover += 25 * delta
|
||||
|
||||
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()
|
||||
@@ -0,0 +1,6 @@
|
||||
extends Area2D
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
|
||||
func _on_body_entered(body):
|
||||
body.flower()
|
||||
animation_player.play("pickup")
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -1,7 +1,7 @@
|
||||
extends CharacterBody2D
|
||||
@onready var animated_sprite_2d = $AnimatedSprite2D
|
||||
@onready var camera_2d = $Camera2D
|
||||
@onready var color_rect = $Camera2D/ColorRect
|
||||
@onready var camera_2d = %Camera2D
|
||||
@onready var color_rect = %ColorRect
|
||||
@onready var pipe_timer = $pipe_timer
|
||||
@onready var pipe_timer_half = $pipe_timer_half
|
||||
@onready var coin_amt = $CanvasLayer/Control/CoinAmt
|
||||
@@ -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,34 @@ func _unhandled_input(event):
|
||||
|
||||
func _ready():
|
||||
color_rect.visible = false
|
||||
pipedetector_ground.position.y = 0
|
||||
collision_shape_2d.shape.height = 15
|
||||
|
||||
var camera_target_pos_y = 0
|
||||
|
||||
func _process(delta):
|
||||
camera_2d.position.x = position.x + 50
|
||||
|
||||
if is_on_floor() or velocity.y > 0 and camera_target_pos_y < position.y:
|
||||
camera_target_pos_y = position.y if not is_big else position.y + 8
|
||||
|
||||
if camera_target_pos_y != camera_2d.position.y:
|
||||
camera_2d.position.y += (camera_target_pos_y - camera_2d.position.y) * 10 * delta
|
||||
|
||||
# set camera
|
||||
if position.y <= 32:
|
||||
camera_2d.limit_bottom = 32
|
||||
camera_2d.limit_top = -1000000
|
||||
if position.y < -640:
|
||||
camera_2d.limit_bottom = -640
|
||||
else:
|
||||
camera_2d.limit_bottom = 32
|
||||
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 +107,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 +116,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 +145,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 +171,47 @@ 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():
|
||||
visible = false
|
||||
die_player.play("die")
|
||||
on_pause = true
|
||||
music.stop()
|
||||
|
||||
func reload_scene():
|
||||
get_tree().reload_current_scene()
|
||||
|
||||
func increase_coins():
|
||||
coins += 1
|
||||
@@ -164,3 +240,7 @@ func _on_pipe_timer_timeout():
|
||||
|
||||
func _on_pipe_timer_half_timeout():
|
||||
position = pipe_target
|
||||
|
||||
|
||||
func _on_timer_fire_timeout():
|
||||
can_fire = 0
|
||||
|
||||