1
0
mirror of https://gitee.com/freeyz/godot-mota.git synced 2024-12-22 20:29:23 +08:00

清除旧版数据

This commit is contained in:
freewu32 2020-08-21 10:14:41 +08:00
parent 895a7e0d0e
commit 72fcd09ce9
102 changed files with 0 additions and 3422 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
/*.log

View File

@ -1,3 +0,0 @@
source_md5="50010937a0008f8857e99b68ecf8cf26"
dest_md5="3691b6a615aaac170ce751aaf67badb7"

View File

@ -1,3 +0,0 @@
source_md5="cbf39cdbbe72293acb3da416b6e75b8b"
dest_md5="802fdeab4f08a2f727a4cc4d8060622b"

View File

@ -1,3 +0,0 @@
source_md5="a85f3b809a8dc6eced55feb12e6e3ddd"
dest_md5="ad05b30e5d400587666fbbec3b161d69"

View File

@ -1,3 +0,0 @@
source_md5="8920823388579e692abc54a105e82880"
dest_md5="a0930dbf9758117cebba212c9a6bab01"

View File

@ -1,3 +0,0 @@
source_md5="de765597b1083dd078ea4f6fca4fd7de"
dest_md5="3675071a31137abe82b48e06ea6ebabc"

View File

@ -1,3 +0,0 @@
source_md5="c562987476d78f9c83def30e0e0a344d"
dest_md5="91d7db848e518fd99bf44c2db273cc88"

View File

@ -1,3 +0,0 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"

View File

@ -1,3 +0,0 @@
source_md5="a497865d78241d0f0a25678628183055"
dest_md5="e9576403864c2471342885463c3d29cc"

View File

@ -1,3 +0,0 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"

View File

@ -1,3 +0,0 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"

View File

@ -1,3 +0,0 @@
source_md5="a74561b8bcd64b6ca7fb83cdb6b5d485"
dest_md5="b3a45028e1b1186751f5f5159dad612f"

View File

@ -1,3 +0,0 @@
source_md5="7e41bf3051b18e392a4bb6c0cc45cd7c"
dest_md5="92eb858faaa1840609e0a1d10f0a2ab1"

View File

@ -1,3 +0,0 @@
source_md5="98c326a36e3fb2a26474bbee06dac7c7"
dest_md5="2a8aa00c6c9eae3cae37f9cd2765669a"

View File

@ -1,3 +0,0 @@
source_md5="b454d99e5322fb8b784140ca84fbe092"
dest_md5="f09590535c7d9d6c63d617a2791e85d6"

View File

@ -1,3 +0,0 @@
source_md5="8e8d87361090ad2293d29fbc84740e92"
dest_md5="ece39710df6cdb65420858e51d9f920f"

View File

@ -1,3 +0,0 @@
source_md5="60514c3844e365d1aecfc555e1a44548"
dest_md5="a169cfea77fabfc53aa7c8a7731b3fa6"

View File

@ -1,3 +0,0 @@
source_md5="8ce231e6f36adb8c4b104830265c50ce"
dest_md5="5301ae1b1de46bade5fde958841aacfe"

View File

@ -1,3 +0,0 @@
source_md5="0d38c88de1975840c0cd77f66735e683"
dest_md5="841c64d97d216114deadbefd865d4e97"

21
LICENSE
View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2020 freewu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,26 +0,0 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://scenes/UI.tscn" type="PackedScene" id=1]
[ext_resource path="res://scenes/floors/Floor1.tscn" type="PackedScene" id=2]
[ext_resource path="res://scripts/BgmAudioPlayer.gd" type="Script" id=3]
[ext_resource path="res://images/mota_tileset.tres" type="TileSet" id=4]
[ext_resource path="res://sounds/bgm.ogg" type="AudioStream" id=5]
[ext_resource path="res://scripts/GameInit.gd" type="Script" id=6]
[node name="Main" type="Node2D"]
script = ExtResource( 6 )
[node name="BgmAudioPlayer" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 5 )
script = ExtResource( 3 )
[node name="BackgroundTileMap" type="TileMap" parent="."]
tile_set = ExtResource( 4 )
cell_size = Vector2( 32, 32 )
cell_custom_transform = Transform2D( 32, 0, 0, 32, 0, 0 )
format = 1
tile_data = PoolIntArray( 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 1, 0, 18, 1, 0, 19, 1, 0, 20, 1, 0, 65536, 1, 0, 65537, 1, 0, 65538, 1, 0, 65539, 1, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 1, 0, 65554, 1, 0, 65555, 1, 0, 65556, 1, 0, 131072, 1, 0, 131073, 1, 0, 131074, 1, 0, 131075, 1, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131092, 1, 0, 196608, 1, 0, 196609, 1, 0, 196610, 1, 0, 196611, 1, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 262144, 1, 0, 262145, 1, 0, 262146, 1, 0, 262147, 1, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 262161, 1, 0, 262162, 1, 0, 262163, 1, 0, 262164, 1, 0, 327680, 1, 0, 327681, 1, 0, 327682, 1, 0, 327683, 1, 0, 327684, 0, 0, 327685, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 327689, 0, 0, 327690, 0, 0, 327691, 0, 0, 327692, 0, 0, 327693, 0, 0, 327694, 0, 0, 327695, 0, 0, 327696, 0, 0, 327697, 1, 0, 327698, 1, 0, 327699, 1, 0, 327700, 1, 0, 393216, 1, 0, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 0, 0, 393221, 0, 0, 393222, 0, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 0, 0, 393227, 0, 0, 393228, 0, 0, 393229, 0, 0, 393230, 0, 0, 393231, 0, 0, 393232, 0, 0, 393233, 1, 0, 393234, 1, 0, 393235, 1, 0, 393236, 1, 0, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, 0, 0, 458765, 0, 0, 458766, 0, 0, 458767, 0, 0, 458768, 0, 0, 458769, 1, 0, 458770, 1, 0, 458771, 1, 0, 458772, 1, 0, 524288, 1, 0, 524289, 1, 0, 524290, 1, 0, 524291, 1, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 524304, 0, 0, 524305, 1, 0, 524306, 1, 0, 524307, 1, 0, 524308, 1, 0, 589824, 1, 0, 589825, 1, 0, 589826, 1, 0, 589827, 1, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0, 589840, 0, 0, 589841, 1, 0, 589842, 1, 0, 589843, 1, 0, 589844, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 0, 655363, 1, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 1, 0, 655378, 1, 0, 655379, 1, 0, 655380, 1, 0, 720896, 1, 0, 720897, 1, 0, 720898, 1, 0, 720899, 1, 0, 720900, 0, 0, 720901, 0, 0, 720902, 0, 0, 720903, 0, 0, 720904, 0, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720908, 0, 0, 720909, 0, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 1, 0, 720914, 1, 0, 720915, 1, 0, 720916, 1, 0, 786432, 1, 0, 786433, 1, 0, 786434, 1, 0, 786435, 1, 0, 786436, 0, 0, 786437, 0, 0, 786438, 0, 0, 786439, 0, 0, 786440, 0, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 1, 0, 786450, 1, 0, 786451, 1, 0, 786452, 1, 0 )
[node name="UI" parent="." instance=ExtResource( 1 )]
[node name="Floor1" parent="." instance=ExtResource( 2 )]

View File

@ -1,2 +0,0 @@
# godot-mota
基于godot引擎开发的魔塔游戏

View File

@ -1,266 +0,0 @@
[preset.0]
name="HTML5"
platform="HTML5"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../export/mota/index.html"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.0.options]
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=true
html/custom_html_shell=""
html/head_include=""
custom_template/release="D:/godot/source/godot/bin/godot.javascript.opt.64.zip"
custom_template/debug="D:/godot/source/godot/bin/godot.javascript.opt.64.zip"
[preset.1]
name="Android"
platform="Android"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="export/mota.apk"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.1.options]
graphics/32_bits_framebuffer=true
xr_features/xr_mode=0
xr_features/degrees_of_freedom=0
xr_features/hand_tracking=0
xr_features/focus_awareness=false
one_click_deploy/clear_previous_install=false
custom_template/debug=""
custom_template/release=""
custom_template/use_custom_build=false
command_line/extra_args=""
version/code=1
version/name="1.0"
package/unique_name="org.godotengine.$genname"
package/name=""
package/signed=true
screen/immersive_mode=true
screen/orientation=0
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
screen/opengl_debug=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
keystore/debug=""
keystore/debug_user=""
keystore/debug_password=""
keystore/release=""
keystore/release_user=""
keystore/release_password=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=false
architectures/x86=false
architectures/x86_64=false
permissions/custom_permissions=PoolStringArray( )
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
permissions/access_location_extra_commands=false
permissions/access_mock_location=false
permissions/access_network_state=false
permissions/access_surface_flinger=false
permissions/access_wifi_state=false
permissions/account_manager=false
permissions/add_voicemail=false
permissions/authenticate_accounts=false
permissions/battery_stats=false
permissions/bind_accessibility_service=false
permissions/bind_appwidget=false
permissions/bind_device_admin=false
permissions/bind_input_method=false
permissions/bind_nfc_service=false
permissions/bind_notification_listener_service=false
permissions/bind_print_service=false
permissions/bind_remoteviews=false
permissions/bind_text_service=false
permissions/bind_vpn_service=false
permissions/bind_wallpaper=false
permissions/bluetooth=false
permissions/bluetooth_admin=false
permissions/bluetooth_privileged=false
permissions/brick=false
permissions/broadcast_package_removed=false
permissions/broadcast_sms=false
permissions/broadcast_sticky=false
permissions/broadcast_wap_push=false
permissions/call_phone=false
permissions/call_privileged=false
permissions/camera=false
permissions/capture_audio_output=false
permissions/capture_secure_video_output=false
permissions/capture_video_output=false
permissions/change_component_enabled_state=false
permissions/change_configuration=false
permissions/change_network_state=false
permissions/change_wifi_multicast_state=false
permissions/change_wifi_state=false
permissions/clear_app_cache=false
permissions/clear_app_user_data=false
permissions/control_location_updates=false
permissions/delete_cache_files=false
permissions/delete_packages=false
permissions/device_power=false
permissions/diagnostic=false
permissions/disable_keyguard=false
permissions/dump=false
permissions/expand_status_bar=false
permissions/factory_test=false
permissions/flashlight=false
permissions/force_back=false
permissions/get_accounts=false
permissions/get_package_size=false
permissions/get_tasks=false
permissions/get_top_activity_info=false
permissions/global_search=false
permissions/hardware_test=false
permissions/inject_events=false
permissions/install_location_provider=false
permissions/install_packages=false
permissions/install_shortcut=false
permissions/internal_system_window=false
permissions/internet=false
permissions/kill_background_processes=false
permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
permissions/modify_phone_state=false
permissions/mount_format_filesystems=false
permissions/mount_unmount_filesystems=false
permissions/nfc=false
permissions/persistent_activity=false
permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_phone_state=false
permissions/read_profile=false
permissions/read_sms=false
permissions/read_social_stream=false
permissions/read_sync_settings=false
permissions/read_sync_stats=false
permissions/read_user_dictionary=false
permissions/reboot=false
permissions/receive_boot_completed=false
permissions/receive_mms=false
permissions/receive_sms=false
permissions/receive_wap_push=false
permissions/record_audio=false
permissions/reorder_tasks=false
permissions/restart_packages=false
permissions/send_respond_via_message=false
permissions/send_sms=false
permissions/set_activity_watcher=false
permissions/set_alarm=false
permissions/set_always_finish=false
permissions/set_animation_scale=false
permissions/set_debug_app=false
permissions/set_orientation=false
permissions/set_pointer_speed=false
permissions/set_preferred_applications=false
permissions/set_process_limit=false
permissions/set_time=false
permissions/set_time_zone=false
permissions/set_wallpaper=false
permissions/set_wallpaper_hints=false
permissions/signal_persistent_processes=false
permissions/status_bar=false
permissions/subscribed_feeds_read=false
permissions/subscribed_feeds_write=false
permissions/system_alert_window=false
permissions/transmit_ir=false
permissions/uninstall_shortcut=false
permissions/update_device_stats=false
permissions/use_credentials=false
permissions/use_sip=false
permissions/vibrate=false
permissions/wake_lock=false
permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
permissions/write_secure_settings=false
permissions/write_settings=false
permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
[preset.2]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="export/mota.exe"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.2.options]
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
binary_format/embed_pck=false
custom_template/release="D:/godot/source/godot/bin/godot.windows.opt.64.exe"
custom_template/debug=""
codesign/enable=false
codesign/identity_type=0
codesign/identity=""
codesign/password=""
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PoolStringArray( )
application/icon=""
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://images/logo.png"
dest_files=[ "res://.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/mota.png-02d33da8bf0f085bff84efd72f4babc5.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://images/mota.png"
dest_files=[ "res://.import/mota.png-02d33da8bf0f085bff84efd72f4babc5.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -1,52 +0,0 @@
[gd_resource type="TileSet" load_steps=3 format=2]
[ext_resource path="res://images/mota.png" type="Texture" id=1]
[sub_resource type="NavigationPolygon" id=1]
vertices = PoolVector2Array( 12.8379, -3.70605, 12.9995, 7.7608, 11.8689, 13.575, -5.4122, 14.7056, -5.4122, 18.5817, 11.7074, 18.2587, 12.3534, 36.5088, 18.4906, 36.5088, 17.1986, 19.0662, 39.8093, 18.7432, 38.1943, 11.7985, 18.4906, 12.606, 18.4906, -4.02911 )
polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ) ]
[resource]
0/name = "mota.png 0"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 512, 32, 32 )
0/tile_mode = 0
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0
1/name = "mota.png 1"
1/texture = ExtResource( 1 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 1, 1, 1 )
1/region = Rect2( 32, 512, 32, 32 )
1/tile_mode = 0
1/occluder_offset = Vector2( 0, 0 )
1/navigation_offset = Vector2( 0, 0 )
1/shape_offset = Vector2( 0, 0 )
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
1/shape_one_way = false
1/shape_one_way_margin = 0.0
1/shapes = [ ]
1/z_index = 0
2/name = "mota.png 2"
2/texture = ExtResource( 1 )
2/tex_offset = Vector2( 0, 0 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 256, 512, 32, 32 )
2/tile_mode = 0
2/occluder_offset = Vector2( 0, 0 )
2/navigation_offset = Vector2( 0, 0 )
2/navigation = SubResource( 1 )
2/shape_offset = Vector2( 0, 0 )
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
2/shape_one_way = false
2/shape_one_way_margin = 0.0
2/shapes = [ ]
2/z_index = 0

View File

@ -1,605 +0,0 @@
{
"greenSlime": {
"name": "绿色史莱姆",
"hp": 35,
"atk": 18,
"def": 1,
"money": 1,
"experience": 0,
"special": 0
},
"redSlime": {
"name": "红色史莱姆",
"hp": 45,
"atk": 20,
"def": 2,
"money": 2,
"experience": 0,
"special": 0
},
"blackSlime": {
"name": "大史莱姆",
"hp": 130,
"atk": 60,
"def": 3,
"money": 8,
"experience": 0,
"special": 0
},
"slimelord": {
"name": "史莱姆王",
"hp": 360,
"atk": 310,
"def": 20,
"money": 40,
"experience": 0,
"special": 0
},
"bat": {
"name": "小蝙蝠",
"hp": 35,
"atk": 38,
"def": 3,
"money": 3,
"experience": 0,
"special": 0
},
"bigBat": {
"name": "大蝙蝠",
"hp": 60,
"atk": 100,
"def": 8,
"money": 12,
"experience": 0,
"special": 0
},
"redBat": {
"name": "吸血蝙蝠",
"hp": 200,
"atk": 390,
"def": 90,
"money": 50,
"experience": 0,
"special": 0
},
"vampire": {
"name": "吸血鬼",
"hp": 444,
"atk": 199,
"def": 66,
"money": 144,
"experience": 0,
"special": 0,
"notBomb": true
},
"skeleton": {
"name": "骷髅人",
"hp": 50,
"atk": 42,
"def": 6,
"money": 6,
"experience": 0,
"special": 0
},
"skeletonSoilder": {
"name": "骷髅士兵",
"hp": 55,
"atk": 52,
"def": 12,
"money": 8,
"experience": 0,
"special": 0
},
"skeletonCaptain": {
"name": "骷髅队长",
"hp": 100,
"atk": 65,
"def": 15,
"money": 30,
"experience": 0,
"special": 0,
"notBomb": true
},
"ghostSkeleton": {
"name": "鬼战士",
"hp": 220,
"atk": 180,
"def": 30,
"money": 35,
"experience": 0,
"special": 0
},
"zombie": {
"name": "兽人",
"hp": 260,
"atk": 85,
"def": 5,
"money": 18,
"experience": 0,
"special": 0
},
"zombieKnight": {
"name": "兽人武士",
"hp": 320,
"atk": 120,
"def": 15,
"money": 30,
"experience": 0,
"special": 0
},
"rock": {
"name": "石头人",
"hp": 20,
"atk": 100,
"def": 68,
"money": 28,
"experience": 0,
"special": 0
},
"slimeMan": {
"name": "幽灵",
"hp": 320,
"atk": 140,
"def": 20,
"money": 30,
"experience": 0,
"special": 0,
"atkValue": null,
"defValue": null
},
"bluePriest": {
"name": "初级法师",
"hp": 60,
"atk": 32,
"def": 8,
"money": 5,
"experience": 0,
"special": 0
},
"redPriest": {
"name": "高级法师",
"hp": 100,
"atk": 95,
"def": 30,
"money": 22,
"experience": 0,
"special": 0
},
"brownWizard": {
"name": "初级巫师",
"hp": 220,
"atk": 370,
"def": 110,
"money": 80,
"experience": 0,
"special": 15,
"value": 100,
"range": 1
},
"redWizard": {
"name": "高级巫师",
"hp": 200,
"atk": 380,
"def": 130,
"money": 90,
"experience": 0,
"special": 15,
"value": 200,
"zoneSquare": null,
"range": 1
},
"yellowGuard": {
"name": "初级卫兵",
"hp": 50,
"atk": 48,
"def": 22,
"money": 12,
"experience": 0,
"special": 0
},
"blueGuard": {
"name": "中级卫兵",
"hp": 100,
"atk": 180,
"def": 110,
"money": 50,
"experience": 0,
"special": 0
},
"redGuard": {
"name": "高级卫兵",
"hp": 180,
"atk": 460,
"def": 360,
"money": 200,
"experience": 0,
"special": 0
},
"swordsman": {
"name": "双手剑士",
"hp": 100,
"atk": 680,
"def": 50,
"money": 55,
"experience": 0,
"special": 0
},
"soldier": {
"name": "战士",
"hp": 210,
"atk": 200,
"def": 65,
"money": 45,
"experience": 0,
"special": 0
},
"yellowKnight": {
"name": "骑士队长",
"hp": 120,
"atk": 150,
"def": 50,
"money": 100,
"experience": 0,
"special": 0,
"notBomb": true
},
"redKnight": {
"name": "骑士",
"hp": 160,
"atk": 230,
"def": 105,
"money": 65,
"experience": 0,
"special": 0
},
"darkKnight": {
"name": "黑暗骑士",
"hp": 180,
"atk": 430,
"def": 210,
"money": 120,
"experience": 0,
"special": 0
},
"blackKing": {
"name": "高级巫师",
"hp": 200,
"atk": 380,
"def": 130,
"money": 90,
"experience": 0,
"special": 18,
"bomb": false,
"value": 200
},
"yellowKing": {
"name": "黄衣魔王",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"greenKing": {
"name": "青衣武士",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"blueKnight": {
"name": "蓝骑士",
"hp": 100,
"atk": 120,
"def": 0,
"money": 9,
"experience": 0,
"special": 8
},
"goldSlime": {
"name": "黄头怪",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"poisonSkeleton": {
"name": "紫骷髅",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"poisonBat": {
"name": "紫蝙蝠",
"hp": 100,
"atk": 120,
"def": 0,
"money": 14,
"experience": 0,
"special": 13
},
"steelRock": {
"name": "铁面人",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"skeletonPriest": {
"name": "骷髅法师",
"hp": 100,
"atk": 100,
"def": 0,
"money": 0,
"experience": 0,
"special": 18,
"value": 20
},
"skeletonKing": {
"name": "骷髅王",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"skeletonWizard": {
"name": "骷髅巫师",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"redSkeletonCaption": {
"name": "骷髅武士",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"badHero": {
"name": "迷失勇者",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"demon": {
"name": "魔神武士",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"demonPriest": {
"name": "魔神法师",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"goldHornSlime": {
"name": "金角怪",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"redKing": {
"name": "魔王",
"hp": 8000,
"atk": 5000,
"def": 1000,
"money": 500,
"experience": 0,
"special": 0,
"notBomb": true
},
"whiteKing": {
"name": "魔法警卫",
"hp": 230,
"atk": 450,
"def": 100,
"money": 100,
"experience": 0,
"special": 16
},
"blackMagician": {
"name": "大法师",
"hp": 4500,
"atk": 560,
"def": 310,
"money": 1000,
"experience": 0,
"special": 0,
"notBomb": true
},
"silverSlime": {
"name": "银头怪",
"hp": 100,
"atk": 120,
"def": 0,
"money": 15,
"experience": 0,
"special": 14
},
"swordEmperor": {
"name": "魔王",
"hp": 5000,
"atk": 1580,
"def": 190,
"money": 500,
"experience": 0,
"special": 0,
"notBomb": true
},
"whiteHornSlime": {
"name": "尖角怪",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"badPrincess": {
"name": "痛苦魔女",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"badFairy": {
"name": "黑暗仙子",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"grayPriest": {
"name": "中级法师",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"redSwordsman": {
"name": "剑王",
"hp": 100,
"atk": 120,
"def": 0,
"money": 7,
"experience": 0,
"special": 6,
"n": 8
},
"whiteGhost": {
"name": "水银战士",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"poisonZombie": {
"name": "绿兽人",
"hp": 100,
"atk": 120,
"def": 0,
"money": 13,
"experience": 0,
"special": 12
},
"magicDragon": {
"name": "魔龙",
"hp": 1500,
"atk": 600,
"def": 250,
"money": 800,
"experience": 0,
"special": 0,
"notBomb": true
},
"octopus": {
"name": "大乌贼",
"hp": 1200,
"atk": 180,
"def": 20,
"money": 100,
"experience": 0,
"special": 0,
"notBomb": true
},
"darkFairy": {
"name": "仙子",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"greenKnight": {
"name": "强盾骑士",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"special": 0
},
"angel": {
"name": "天使",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"point": 0,
"special": 0
},
"elemental": {
"name": "元素生物",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"point": 0,
"special": 0
},
"steelGuard": {
"name": "铁守卫",
"hp": 0,
"atk": 0,
"def": 0,
"money": 0,
"experience": 0,
"point": 0,
"special": 18,
"value": 20
},
"evilBat": {
"name": "邪恶蝙蝠",
"hp": 1000,
"atk": 1,
"def": 0,
"money": 0,
"experience": 0,
"point": 0,
"special": [
2,
3
]
}
}

View File

@ -1,132 +0,0 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
_global_script_classes=[ {
"base": "Tween",
"class": "ArrayTween",
"language": "GDScript",
"path": "res://scripts/ArrayTween.gd"
}, {
"base": "AudioStreamPlayer2D",
"class": "BgmAudioPlayer",
"language": "GDScript",
"path": "res://scripts/BgmAudioPlayer.gd"
}, {
"base": "Sprite",
"class": "DoorSprite",
"language": "GDScript",
"path": "res://scripts/DoorSprite.gd"
}, {
"base": "StaticBody2D",
"class": "DoorStaticBody2D",
"language": "GDScript",
"path": "res://scripts/DoorStaticBody2D.gd"
}, {
"base": "Sprite",
"class": "ElixirsSprite",
"language": "GDScript",
"path": "res://scripts/ElixirsSprite.gd"
}, {
"base": "Sprite",
"class": "GemSprite",
"language": "GDScript",
"path": "res://scripts/GemSprite.gd"
}, {
"base": "Sprite",
"class": "KeySprite",
"language": "GDScript",
"path": "res://scripts/KeySprite.gd"
}, {
"base": "AnimatedSprite",
"class": "MonsterSprite",
"language": "GDScript",
"path": "res://scripts/MonsterSprite.gd"
}, {
"base": "TileMap",
"class": "NavigationTileMap",
"language": "GDScript",
"path": "res://scripts/NavigationTileMap.gd"
}, {
"base": "KinematicBody2D",
"class": "PlayerKinematicBody2D",
"language": "GDScript",
"path": "res://scripts/PlayerKinematicBody2D.gd"
}, {
"base": "Sprite",
"class": "PlayerSprite",
"language": "GDScript",
"path": "res://scripts/PlayerSprite.gd"
}, {
"base": "Button",
"class": "SaveGameButton",
"language": "GDScript",
"path": "res://scripts/SaveGameButton.gd"
}, {
"base": "Sprite",
"class": "StairsSprite",
"language": "GDScript",
"path": "res://scripts/StairsSprite.gd"
} ]
_global_script_class_icons={
"ArrayTween": "",
"BgmAudioPlayer": "",
"DoorSprite": "",
"DoorStaticBody2D": "",
"ElixirsSprite": "",
"GemSprite": "",
"KeySprite": "",
"MonsterSprite": "",
"NavigationTileMap": "",
"PlayerKinematicBody2D": "",
"PlayerSprite": "",
"SaveGameButton": "",
"StairsSprite": ""
}
[application]
config/name="mota"
config/description="魔塔"
run/main_scene="res://MainScene.tscn"
config/use_custom_user_dir=true
config/custom_user_dir_name="mota"
boot_splash/image="res://images/logo.png"
config/icon="res://settings/icon.png"
[audio]
default_bus_layout=""
[autoload]
GameFloorManager="*res://scripts/GameFloorManager.gd"
GameArchiveManager="*res://scripts/GameArchiveManager.gd"
AffectAudioPlayer="*res://scripts/AffectAudioPlayer.gd"
MonsterBook="*res://scripts/MonsterBook.gd"
[debug]
settings/fps/force_fps=60
[display]
window/size/width=672
window/size/height=416
window/size/always_on_top=true
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/aspect="keep"
[rendering]
quality/intended_usage/framebuffer_allocation=0
quality/intended_usage/framebuffer_allocation.mobile=0
quality/2d/use_pixel_snap=true
environment/default_environment="res://settings/default_env.tres"

View File

@ -1,21 +0,0 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://images/mota.png" type="Texture" id=1]
[ext_resource path="res://scripts/DoorSprite.gd" type="Script" id=2]
[ext_resource path="res://scripts/DoorStaticBody2D.gd" type="Script" id=3]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 16, 16 )
[node name="DoorSprite" type="Sprite"]
position = Vector2( 304, 208 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 192, 480, 32, 32 )
script = ExtResource( 2 )
[node name="StaticBody2D" type="StaticBody2D" parent="."]
script = ExtResource( 3 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource( 1 )

View File

@ -1,19 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://scripts/ElixirsSprite.gd" type="Script" id=1]
[ext_resource path="res://images/mota.png" type="Texture" id=2]
[sub_resource type="RectangleShape2D" id=1]
[node name="ElixirsSprite" type="Sprite"]
position = Vector2( 272, 240 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 96, 416, 32, 32 )
script = ExtResource( 1 )
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource( 1 )
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]

View File

@ -1,19 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://images/mota.png" type="Texture" id=1]
[ext_resource path="res://scripts/GemSprite.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
[node name="GemSprite" type="Sprite"]
position = Vector2( 368, 336 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 128, 384, 32, 32 )
script = ExtResource( 2 )
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource( 1 )
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]

View File

@ -1,19 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://scripts/KeySprite.gd" type="Script" id=1]
[ext_resource path="res://images/mota.png" type="Texture" id=2]
[sub_resource type="RectangleShape2D" id=1]
[node name="KeySprite" type="Sprite"]
position = Vector2( 432, 208 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 96, 448, 32, 32 )
script = ExtResource( 1 )
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource( 1 )
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]

View File

@ -1,403 +0,0 @@
[gd_scene load_steps=63 format=2]
[ext_resource path="res://images/mota.png" type="Texture" id=1]
[ext_resource path="res://scripts/MonsterSprite.gd" type="Script" id=2]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 )
region = Rect2( 0, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 1 )
region = Rect2( 32, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 1 )
region = Rect2( 32, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 1 )
region = Rect2( 0, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 1 )
region = Rect2( 32, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 1 )
region = Rect2( 192, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 1 )
region = Rect2( 224, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 1 )
region = Rect2( 64, 160, 32, 32 )
[sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 1 )
region = Rect2( 96, 160, 32, 32 )
[sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 1 )
region = Rect2( 192, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=12]
atlas = ExtResource( 1 )
region = Rect2( 224, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=13]
atlas = ExtResource( 1 )
region = Rect2( 256, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=14]
atlas = ExtResource( 1 )
region = Rect2( 288, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=15]
atlas = ExtResource( 1 )
region = Rect2( 256, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=16]
atlas = ExtResource( 1 )
region = Rect2( 288, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=17]
atlas = ExtResource( 1 )
region = Rect2( 64, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=18]
atlas = ExtResource( 1 )
region = Rect2( 96, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=19]
atlas = ExtResource( 1 )
region = Rect2( 128, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=20]
atlas = ExtResource( 1 )
region = Rect2( 160, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=21]
atlas = ExtResource( 1 )
region = Rect2( 64, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=22]
atlas = ExtResource( 1 )
region = Rect2( 96, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=23]
atlas = ExtResource( 1 )
region = Rect2( 256, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=24]
atlas = ExtResource( 1 )
region = Rect2( 288, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=25]
atlas = ExtResource( 1 )
region = Rect2( 192, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=26]
atlas = ExtResource( 1 )
region = Rect2( 224, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=27]
atlas = ExtResource( 1 )
region = Rect2( 256, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=28]
atlas = ExtResource( 1 )
region = Rect2( 288, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=29]
atlas = ExtResource( 1 )
region = Rect2( 64, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=30]
atlas = ExtResource( 1 )
region = Rect2( 96, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=31]
atlas = ExtResource( 1 )
region = Rect2( 128, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=32]
atlas = ExtResource( 1 )
region = Rect2( 160, 0, 32, 32 )
[sub_resource type="AtlasTexture" id=33]
atlas = ExtResource( 1 )
region = Rect2( 0, 160, 32, 32 )
[sub_resource type="AtlasTexture" id=34]
atlas = ExtResource( 1 )
region = Rect2( 32, 160, 32, 32 )
[sub_resource type="AtlasTexture" id=35]
atlas = ExtResource( 1 )
region = Rect2( 0, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=36]
atlas = ExtResource( 1 )
region = Rect2( 32, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=37]
atlas = ExtResource( 1 )
region = Rect2( 64, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=38]
atlas = ExtResource( 1 )
region = Rect2( 96, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=39]
atlas = ExtResource( 1 )
region = Rect2( 192, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=40]
atlas = ExtResource( 1 )
region = Rect2( 224, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=41]
atlas = ExtResource( 1 )
region = Rect2( 128, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=42]
atlas = ExtResource( 1 )
region = Rect2( 160, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=43]
atlas = ExtResource( 1 )
region = Rect2( 128, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=44]
atlas = ExtResource( 1 )
region = Rect2( 160, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=45]
atlas = ExtResource( 1 )
region = Rect2( 128, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=46]
atlas = ExtResource( 1 )
region = Rect2( 160, 64, 32, 32 )
[sub_resource type="AtlasTexture" id=47]
atlas = ExtResource( 1 )
region = Rect2( 0, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=48]
atlas = ExtResource( 1 )
region = Rect2( 32, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=49]
atlas = ExtResource( 1 )
region = Rect2( 256, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=50]
atlas = ExtResource( 1 )
region = Rect2( 288, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=51]
atlas = ExtResource( 1 )
region = Rect2( 256, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=52]
atlas = ExtResource( 1 )
region = Rect2( 288, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=53]
atlas = ExtResource( 1 )
region = Rect2( 64, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=54]
atlas = ExtResource( 1 )
region = Rect2( 96, 96, 32, 32 )
[sub_resource type="AtlasTexture" id=55]
atlas = ExtResource( 1 )
region = Rect2( 192, 128, 32, 32 )
[sub_resource type="AtlasTexture" id=56]
atlas = ExtResource( 1 )
region = Rect2( 224, 128, 32, 32 )
[sub_resource type="SpriteFrames" id=57]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ) ],
"loop": true,
"name": "skeleton",
"speed": 5.0
}, {
"frames": [ SubResource( 3 ), SubResource( 4 ) ],
"loop": true,
"name": "greenSlime",
"speed": 5.0
}, {
"frames": [ SubResource( 5 ), SubResource( 6 ) ],
"loop": true,
"name": "zombie",
"speed": 5.0
}, {
"frames": [ SubResource( 7 ), SubResource( 8 ) ],
"loop": true,
"name": "blueGuard",
"speed": 5.0
}, {
"frames": [ SubResource( 9 ), SubResource( 10 ) ],
"loop": true,
"name": "darkKnight",
"speed": 5.0
}, {
"frames": [ SubResource( 11 ), SubResource( 12 ) ],
"loop": true,
"name": "slimeMan",
"speed": 5.0
}, {
"frames": [ SubResource( 13 ), SubResource( 14 ) ],
"loop": true,
"name": "bigBat",
"speed": 5.0
}, {
"frames": [ SubResource( 15 ), SubResource( 16 ) ],
"loop": true,
"name": "slimelord",
"speed": 5.0
}, {
"frames": [ SubResource( 17 ), SubResource( 18 ) ],
"loop": true,
"name": "yellowKnight",
"speed": 5.0
}, {
"frames": [ SubResource( 19 ), SubResource( 20 ) ],
"loop": true,
"name": "yellowGuard",
"speed": 5.0
}, {
"frames": [ SubResource( 21 ), SubResource( 22 ) ],
"loop": true,
"name": "redSlime",
"speed": 5.0
}, {
"frames": [ SubResource( 23 ), SubResource( 24 ) ],
"loop": true,
"name": "redGuard",
"speed": 5.0
}, {
"frames": [ SubResource( 25 ), SubResource( 26 ) ],
"loop": true,
"name": "bat",
"speed": 5.0
}, {
"frames": [ SubResource( 27 ), SubResource( 28 ) ],
"loop": true,
"name": "vampire",
"speed": 5.0
}, {
"frames": [ SubResource( 29 ), SubResource( 30 ) ],
"loop": true,
"name": "zombieKnight",
"speed": 5.0
}, {
"frames": [ SubResource( 31 ), SubResource( 32 ) ],
"loop": true,
"name": "blackSlime",
"speed": 5.0
}, {
"frames": [ SubResource( 33 ), SubResource( 34 ) ],
"loop": true,
"name": "ghostSkeleton",
"speed": 5.0
}, {
"frames": [ SubResource( 35 ), SubResource( 36 ) ],
"loop": true,
"name": "brownWizard",
"speed": 5.0
}, {
"frames": [ SubResource( 37 ), SubResource( 38 ) ],
"loop": true,
"name": "skeletonSoilder",
"speed": 5.0
}, {
"frames": [ SubResource( 39 ), SubResource( 40 ) ],
"loop": true,
"name": "bluePriest",
"speed": 5.0
}, {
"frames": [ SubResource( 41 ), SubResource( 42 ) ],
"loop": true,
"name": "redKnight",
"speed": 5.0
}, {
"frames": [ SubResource( 43 ), SubResource( 44 ) ],
"loop": true,
"name": "skeletonCaptain",
"speed": 5.0
}, {
"frames": [ SubResource( 45 ), SubResource( 46 ) ],
"loop": true,
"name": "rock",
"speed": 5.0
}, {
"frames": [ SubResource( 47 ), SubResource( 48 ) ],
"loop": true,
"name": "redBat",
"speed": 5.0
}, {
"frames": [ SubResource( 49 ), SubResource( 50 ) ],
"loop": true,
"name": "soldier",
"speed": 5.0
}, {
"frames": [ SubResource( 51 ), SubResource( 52 ) ],
"loop": true,
"name": "redPriest",
"speed": 5.0
}, {
"frames": [ SubResource( 53 ), SubResource( 54 ) ],
"loop": true,
"name": "redWizard",
"speed": 5.0
}, {
"frames": [ SubResource( 55 ), SubResource( 56 ) ],
"loop": true,
"name": "swordsman",
"speed": 5.0
} ]
[sub_resource type="AtlasTexture" id=58]
atlas = ExtResource( 1 )
region = Rect2( 288, 448, 32, 32 )
[sub_resource type="SpriteFrames" id=59]
animations = [ {
"frames": [ null, SubResource( 58 ) ],
"loop": true,
"name": "default",
"speed": 20.0
} ]
[sub_resource type="RectangleShape2D" id=60]
[node name="MonsterSprite" type="AnimatedSprite"]
position = Vector2( 304, 144 )
z_index = 1
frames = SubResource( 57 )
animation = "bat"
playing = true
script = ExtResource( 2 )
[node name="AtkSprite" type="AnimatedSprite" parent="."]
frames = SubResource( 59 )
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource( 60 )
[connection signal="animation_finished" from="AtkSprite" to="." method="_on_AtkSprite_animation_finished"]
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]

View File

@ -1,146 +0,0 @@
[gd_scene load_steps=17 format=2]
[ext_resource path="res://scripts/PlayerSprite.gd" type="Script" id=1]
[ext_resource path="res://scripts/PlayerKinematicBody2D.gd" type="Script" id=2]
[ext_resource path="res://scripts/ArrayTween.gd" type="Script" id=3]
[ext_resource path="res://images/mota.png" type="Texture" id=4]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15.9, 15.9 )
[sub_resource type="Animation" id=2]
resource_name = "down"
length = 1.2
tracks/0/type = "value"
tracks/0/path = NodePath("PlayerSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.4, 0.8 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2 ]
}
[sub_resource type="Animation" id=3]
length = 1.2
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("PlayerSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.4, 0.8 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ 6, 7, 8 ]
}
[sub_resource type="Animation" id=4]
length = 1.2
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("PlayerSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.4, 0.8 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ 9, 10, 11 ]
}
[sub_resource type="Animation" id=5]
resource_name = "up"
length = 1.2
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("PlayerSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.4, 0.8 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ 3, 4, 5 ]
}
[sub_resource type="AnimationNodeTimeScale" id=6]
[sub_resource type="AnimationNodeAnimation" id=7]
animation = "right"
[sub_resource type="AnimationNodeAnimation" id=8]
animation = "up"
[sub_resource type="AnimationNodeAnimation" id=9]
animation = "down"
[sub_resource type="AnimationNodeAnimation" id=10]
animation = "left"
[sub_resource type="AnimationNodeBlendSpace2D" id=11]
blend_point_0/node = SubResource( 7 )
blend_point_0/pos = Vector2( 1, 0 )
blend_point_1/node = SubResource( 8 )
blend_point_1/pos = Vector2( 0, -0.9 )
blend_point_2/node = SubResource( 9 )
blend_point_2/pos = Vector2( 0, 1 )
blend_point_3/node = SubResource( 10 )
blend_point_3/pos = Vector2( -1, 0 )
blend_mode = 1
[sub_resource type="AnimationNodeBlendTree" id=12]
nodes/TimeScale/node = SubResource( 6 )
nodes/TimeScale/position = Vector2( 340, 40 )
nodes/output/position = Vector2( 580, 60 )
nodes/player/node = SubResource( 11 )
nodes/player/position = Vector2( 120, 40 )
node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "player" ]
[node name="PlayerKinematicBody2D" type="KinematicBody2D" groups=[
"player",
]]
position = Vector2( 336, 208 )
script = ExtResource( 2 )
__meta__ = {
"_edit_group_": true
}
navigation_tile_map_path = NodePath("../NavigationTileMap")
[node name="ArrayTween" type="Tween" parent="."]
script = ExtResource( 3 )
duration = 0.1
[node name="PlayerSprite" type="Sprite" parent="."]
texture = ExtResource( 4 )
vframes = 3
hframes = 4
region_enabled = true
region_rect = Rect2( 192, 192, 128, 96 )
script = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/down = SubResource( 2 )
anims/left = SubResource( 3 )
anims/right = SubResource( 4 )
anims/up = SubResource( 5 )
[node name="AnimationTree" type="AnimationTree" parent="."]
tree_root = SubResource( 12 )
anim_player = NodePath("../AnimationPlayer")
parameters/TimeScale/scale = 10.0
parameters/player/blend_position = Vector2( -0.0495575, -0.190751 )
[connection signal="array_completed" from="ArrayTween" to="." method="_on_ArrayTween_array_completed"]
[connection signal="array_value_step" from="ArrayTween" to="." method="_on_ArrayTween_array_value_step"]

View File

@ -1,21 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://images/mota.png" type="Texture" id=1]
[ext_resource path="res://scripts/StairsSprite.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
[node name="StairsSprite" type="Sprite" groups=[
"stairs",
]]
position = Vector2( 176, 48 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 96, 512, 32, 32 )
script = ExtResource( 2 )
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource( 1 )
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]

View File

@ -1,375 +0,0 @@
[gd_scene load_steps=15 format=2]
[ext_resource path="res://scripts/SaveGameButton.gd" type="Script" id=1]
[ext_resource path="res://images/mota.png" type="Texture" id=2]
[ext_resource path="res://fonts/Droid Sans Fallback.ttf" type="DynamicFontData" id=3]
[ext_resource path="res://scripts/LoadGameButton.gd" type="Script" id=4]
[sub_resource type="DynamicFont" id=1]
size = 12
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=2]
size = 14
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=3]
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=4]
size = 12
font_data = ExtResource( 3 )
[sub_resource type="Curve" id=5]
_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.1 ), 0.0, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=6]
curve = SubResource( 5 )
[sub_resource type="DynamicFont" id=7]
size = 10
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=8]
size = 10
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=9]
size = 10
font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=10]
size = 10
font_data = ExtResource( 3 )
[node name="UI" type="Node2D"]
[node name="ItemBackground" type="ColorRect" parent="."]
anchor_right = 0.058
margin_left = 8.0
margin_top = 224.0
margin_right = 120.0
margin_bottom = 384.0
rect_pivot_offset = Vector2( 0, 32 )
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="SaveGameButton" type="Button" parent="ItemBackground"]
margin_left = 8.0
margin_top = 120.0
margin_right = 48.0
margin_bottom = 152.0
custom_fonts/font = SubResource( 1 )
text = "存档"
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LoadGameButton" type="Button" parent="ItemBackground"]
margin_left = 64.0
margin_top = 120.0
margin_right = 104.0
margin_bottom = 152.0
custom_fonts/font = SubResource( 1 )
text = "读档"
script = ExtResource( 4 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LevelBackground" type="ColorRect" parent="."]
margin_left = 16.0
margin_top = 32.0
margin_right = 120.0
margin_bottom = 56.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LevelLabel" type="Label" parent="LevelBackground"]
margin_right = 104.0
margin_bottom = 24.0
custom_fonts/font = SubResource( 2 )
text = "魔塔 第1层"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="WeaponBackground" type="ColorRect" parent="."]
margin_left = 552.0
margin_top = 32.0
margin_right = 656.0
margin_bottom = 72.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="WeaponLabel" type="Label" parent="WeaponBackground"]
margin_left = 8.0
margin_right = 56.0
margin_bottom = 40.0
custom_fonts/font = SubResource( 3 )
custom_colors/font_color = Color( 0.952941, 0.776471, 0.658824, 1 )
text = "神圣剑"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="WeaponSprite" type="Sprite" parent="WeaponBackground"]
position = Vector2( 80, 20 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 224, 448, 32, 32 )
[node name="ShieldBackground" type="ColorRect" parent="."]
margin_left = 552.0
margin_top = 88.0
margin_right = 656.0
margin_bottom = 128.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ShieldLabel" type="Label" parent="ShieldBackground"]
margin_left = 8.0
margin_right = 56.0
margin_bottom = 40.0
custom_fonts/font = SubResource( 3 )
custom_colors/font_color = Color( 0.815686, 0.803922, 0.992157, 1 )
text = "神圣盾"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ShieldSprite" type="Sprite" parent="ShieldBackground"]
position = Vector2( 80, 20 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 256, 448, 32, 32 )
[node name="KeyBackground" type="ColorRect" parent="."]
margin_left = 552.0
margin_top = 144.0
margin_right = 656.0
margin_bottom = 224.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Sprite" type="Sprite" parent="KeyBackground"]
position = Vector2( 15, 26 )
scale = Vector2( 0.75, 0.75 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 96, 448, 32, 32 )
[node name="YellowKeyCountLabel" type="Label" parent="KeyBackground"]
margin_left = 28.0
margin_top = 14.0
margin_right = 52.0
margin_bottom = 38.0
custom_fonts/font = SubResource( 4 )
text = "0"
valign = 1
autowrap = true
clip_text = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Sprite2" type="Sprite" parent="KeyBackground"]
position = Vector2( 64, 26 )
scale = Vector2( 0.75, 0.75 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 128, 448, 32, 32 )
[node name="BlueKeyCountLabel" type="Label" parent="KeyBackground"]
margin_left = 76.0
margin_top = 14.0
margin_right = 100.0
margin_bottom = 38.0
custom_fonts/font = SubResource( 4 )
text = "0"
valign = 1
autowrap = true
clip_text = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Sprite3" type="Sprite" parent="KeyBackground"]
position = Vector2( 15, 60 )
scale = Vector2( 0.75, 0.75 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 160, 448, 32, 32 )
[node name="RedKeyCountLabel" type="Label" parent="KeyBackground"]
margin_left = 27.0
margin_top = 48.0
margin_right = 51.0
margin_bottom = 72.0
custom_fonts/font = SubResource( 4 )
text = "0"
valign = 1
autowrap = true
clip_text = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Sprite4" type="Sprite" parent="KeyBackground"]
position = Vector2( 66, 60 )
scale = Vector2( 0.75, 0.75 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 192, 448, 32, 32 )
[node name="GreenKeyCountLabel" type="Label" parent="KeyBackground"]
margin_left = 78.0
margin_top = 48.0
margin_right = 102.0
margin_bottom = 72.0
custom_fonts/font = SubResource( 4 )
text = "0"
valign = 1
autowrap = true
clip_text = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MonsterInfoBackground" type="ColorRect" parent="."]
margin_left = 552.0
margin_top = 240.0
margin_right = 656.0
margin_bottom = 384.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MoneySprite" type="Sprite" parent="."]
position = Vector2( 24, 184 )
texture = ExtResource( 2 )
normal_map = SubResource( 6 )
region_enabled = true
region_rect = Rect2( 96, 480, 32, 32 )
[node name="MoneyBackground" type="ColorRect" parent="MoneySprite"]
margin_left = 24.0
margin_top = -8.0
margin_right = 96.0
margin_bottom = 8.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MoneyLabel" type="Label" parent="MoneySprite/MoneyBackground"]
margin_right = 72.0
margin_bottom = 16.0
custom_fonts/font = SubResource( 7 )
text = "0"
align = 2
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="DefSprite" type="Sprite" parent="."]
position = Vector2( 24, 152 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 192, 416, 32, 32 )
[node name="DefBackground" type="ColorRect" parent="DefSprite"]
margin_left = 24.0
margin_top = -8.0
margin_right = 96.0
margin_bottom = 8.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="DefLabel" type="Label" parent="DefSprite/DefBackground"]
margin_right = 72.0
margin_bottom = 16.0
custom_fonts/font = SubResource( 8 )
text = "10"
align = 2
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="AtkSprite" type="Sprite" parent="."]
position = Vector2( 24, 120 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 192, 384, 32, 32 )
[node name="AtkBackground" type="ColorRect" parent="AtkSprite"]
margin_left = 24.0
margin_top = -8.0
margin_right = 96.0
margin_bottom = 8.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="AtkLabel" type="Label" parent="AtkSprite/AtkBackground"]
margin_right = 72.0
margin_bottom = 16.0
custom_fonts/font = SubResource( 9 )
text = "10"
align = 2
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HpSprite" type="Sprite" parent="."]
position = Vector2( 24, 88 )
texture = ExtResource( 2 )
region_enabled = true
region_rect = Rect2( 96, 416, 32, 32 )
[node name="HpBackground" type="ColorRect" parent="HpSprite"]
margin_left = 24.0
margin_top = -8.0
margin_right = 96.0
margin_bottom = 8.0
color = Color( 0.403922, 0.403922, 0.403922, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HpLabel" type="Label" parent="HpSprite/HpBackground"]
margin_right = 72.0
margin_bottom = 16.0
custom_fonts/font = SubResource( 10 )
text = "1000"
align = 2
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[connection signal="pressed" from="ItemBackground/SaveGameButton" to="ItemBackground/SaveGameButton" method="_on_SaveGameButton_pressed"]
[connection signal="pressed" from="ItemBackground/LoadGameButton" to="ItemBackground/LoadGameButton" method="_on_LoadGameButton_pressed"]

View File

@ -1,139 +0,0 @@
[gd_scene load_steps=9 format=2]
[ext_resource path="res://images/mota_tileset.tres" type="TileSet" id=1]
[ext_resource path="res://scenes/Door.tscn" type="PackedScene" id=2]
[ext_resource path="res://scripts/NavigationTileMap.gd" type="Script" id=3]
[ext_resource path="res://scenes/Key.tscn" type="PackedScene" id=4]
[ext_resource path="res://scenes/Elixirs.tscn" type="PackedScene" id=6]
[ext_resource path="res://scenes/Monster.tscn" type="PackedScene" id=7]
[ext_resource path="res://scenes/Gem.tscn" type="PackedScene" id=8]
[ext_resource path="res://scenes/Stairs.tscn" type="PackedScene" id=9]
[node name="Floor1" type="Node2D"]
[node name="NavigationTileMap" type="TileMap" parent="."]
tile_set = ExtResource( 1 )
cell_size = Vector2( 32, 32 )
collision_mask = 2147483649
format = 1
tile_data = PoolIntArray( 65541, 2, 0, 65542, 2, 0, 65543, 2, 0, 65544, 2, 0, 65545, 2, 0, 65546, 2, 0, 65547, 2, 0, 65548, 2, 0, 65549, 2, 0, 65550, 2, 0, 65551, 2, 0, 131087, 2, 0, 196613, 2, 0, 196614, 2, 0, 196615, 2, 0, 196616, 2, 0, 196617, 2, 0, 196619, 2, 0, 196620, 2, 0, 196621, 2, 0, 196623, 2, 0, 262149, 2, 0, 262150, 2, 0, 262151, 2, 0, 262153, 2, 0, 262155, 2, 0, 262156, 2, 0, 262157, 2, 0, 262159, 2, 0, 327686, 2, 0, 327689, 2, 0, 327693, 2, 0, 327695, 2, 0, 393221, 2, 0, 393222, 2, 0, 393223, 2, 0, 393225, 2, 0, 393226, 2, 0, 393227, 2, 0, 393228, 2, 0, 393229, 2, 0, 393231, 2, 0, 458757, 2, 0, 458758, 2, 0, 458759, 2, 0, 458761, 2, 0, 458767, 2, 0, 524294, 2, 0, 524297, 2, 0, 524298, 2, 0, 524299, 2, 0, 524300, 2, 0, 524301, 2, 0, 524302, 2, 0, 524303, 2, 0, 589829, 2, 0, 589830, 2, 0, 589831, 2, 0, 589834, 2, 0, 589838, 2, 0, 655365, 2, 0, 655366, 2, 0, 655367, 2, 0, 655369, 2, 0, 655370, 2, 0, 655371, 2, 0, 655373, 2, 0, 655374, 2, 0, 655375, 2, 0, 720901, 2, 0, 720902, 2, 0, 720903, 2, 0, 720905, 2, 0, 720906, 2, 0, 720907, 2, 0, 720909, 2, 0, 720910, 2, 0, 720911, 2, 0 )
script = ExtResource( 3 )
[node name="Item" type="Node2D" parent="."]
[node name="ElixirsSprite" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 176, 368 )
elixirs_value = 50
[node name="ElixirsSprite2" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 176, 336 )
elixirs_value = 50
[node name="ElixirsSprite5" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 176, 112 )
elixirs_value = 50
[node name="ElixirsSprite3" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 400, 144 )
elixirs_value = 50
[node name="ElixirsSprite4" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 464, 368 )
region_rect = Rect2( 128, 416, 32, 32 )
elixirs_color = 1
elixirs_value = 200
[node name="DoorSprite" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 336, 304 )
[node name="DoorSprite2" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 208, 272 )
[node name="DoorSprite3" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 208, 176 )
[node name="DoorSprite4" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 272, 112 )
[node name="DoorSprite5" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 336, 208 )
[node name="DoorSprite6" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 432, 176 )
[node name="DoorSprite7" parent="Item" instance=ExtResource( 2 )]
position = Vector2( 464, 304 )
[node name="KeySprite" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 240, 368 )
[node name="KeySprite2" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 240, 336 )
[node name="KeySprite5" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 304, 336 )
[node name="KeySprite3" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 176, 240 )
[node name="KeySprite4" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 400, 112 )
[node name="MonsterSprite" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 208, 144 )
animation = "skeleton"
frame = 1
[node name="MonsterSprite9" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 272, 48 )
animation = "redSlime"
frame = 1
[node name="MonsterSprite10" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 240, 48 )
animation = "greenSlime"
[node name="MonsterSprite11" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 304, 48 )
animation = "greenSlime"
frame = 1
[node name="MonsterSprite2" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 208, 240 )
animation = "skeletonSoilder"
frame = 1
[node name="MonsterSprite3" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 464, 336 )
frame = 1
[node name="MonsterSprite6" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 368, 208 )
[node name="MonsterSprite7" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 432, 208 )
[node name="MonsterSprite8" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 400, 208 )
animation = "bluePriest"
[node name="MonsterSprite4" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 432, 368 )
animation = "greenSlime"
frame = 1
[node name="MonsterSprite5" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 496, 368 )
animation = "greenSlime"
frame = 1
[node name="GemSprite" parent="Item" instance=ExtResource( 8 )]
position = Vector2( 368, 112 )
region_rect = Rect2( 96, 384, 32, 32 )
gem_color = 1
[node name="GemSprite2" parent="Item" instance=ExtResource( 8 )]
position = Vector2( 368, 144 )
[node name="StairsSprite" parent="Item" instance=ExtResource( 9 )]
player_init_position = Vector2( 208, 48 )

View File

@ -1,103 +0,0 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://scripts/NavigationTileMap.gd" type="Script" id=1]
[ext_resource path="res://images/mota_tileset.tres" type="TileSet" id=2]
[ext_resource path="res://scenes/Stairs.tscn" type="PackedScene" id=3]
[ext_resource path="res://scenes/Monster.tscn" type="PackedScene" id=4]
[ext_resource path="res://scenes/Door.tscn" type="PackedScene" id=5]
[ext_resource path="res://scenes/Elixirs.tscn" type="PackedScene" id=6]
[ext_resource path="res://scenes/Key.tscn" type="PackedScene" id=7]
[node name="Floor2" type="Node2D"]
[node name="NavigationTileMap" type="TileMap" parent="."]
tile_set = ExtResource( 2 )
cell_size = Vector2( 32, 32 )
format = 1
tile_data = PoolIntArray( 65541, 2, 0, 65542, 2, 0, 65543, 2, 0, 65544, 2, 0, 65545, 2, 0, 65546, 2, 0, 65547, 2, 0, 65548, 2, 0, 65549, 2, 0, 65550, 2, 0, 65551, 2, 0, 131077, 2, 0, 131078, 2, 0, 131081, 2, 0, 131082, 2, 0, 131083, 2, 0, 131084, 2, 0, 131085, 2, 0, 196613, 2, 0, 196619, 2, 0, 262149, 2, 0, 262151, 2, 0, 262152, 2, 0, 262154, 2, 0, 262155, 2, 0, 262156, 2, 0, 262158, 2, 0, 262159, 2, 0, 327685, 2, 0, 327687, 2, 0, 327688, 2, 0, 327689, 2, 0, 327690, 2, 0, 327691, 2, 0, 327692, 2, 0, 327693, 2, 0, 327694, 2, 0, 327695, 2, 0, 393221, 2, 0, 393226, 2, 0, 393227, 2, 0, 393228, 2, 0, 458757, 2, 0, 458758, 2, 0, 458759, 2, 0, 458760, 2, 0, 458762, 2, 0, 458763, 2, 0, 458764, 2, 0, 458766, 2, 0, 458767, 2, 0, 524293, 2, 0, 524295, 2, 0, 524296, 2, 0, 524297, 2, 0, 524298, 2, 0, 524299, 2, 0, 524300, 2, 0, 524301, 2, 0, 524302, 2, 0, 524303, 2, 0, 589829, 2, 0, 589834, 2, 0, 589835, 2, 0, 589836, 2, 0, 655365, 2, 0, 655367, 2, 0, 655368, 2, 0, 655370, 2, 0, 655371, 2, 0, 655372, 2, 0, 655374, 2, 0, 655375, 2, 0, 720901, 2, 0, 720903, 2, 0, 720904, 2, 0, 720905, 2, 0, 720906, 2, 0, 720907, 2, 0, 720908, 2, 0, 720909, 2, 0, 720910, 2, 0, 720911, 2, 0 )
script = ExtResource( 1 )
[node name="Item" type="Node2D" parent="."]
[node name="MonsterSprite" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 336, 80 )
animation = "blueGuard"
[node name="MonsterSprite2" parent="Item" instance=ExtResource( 4 )]
position = Vector2( 400, 80 )
animation = "blueGuard"
[node name="KeySprite" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 240, 176 )
[node name="KeySprite3" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 272, 176 )
[node name="KeySprite2" parent="Item" instance=ExtResource( 7 )]
position = Vector2( 240, 144 )
[node name="DoorSprite" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 304, 176 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
[node name="ElixirsSprite" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 240, 368 )
region_rect = Rect2( 128, 416, 32, 32 )
elixirs_color = 1
[node name="ElixirsSprite3" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 240, 336 )
region_rect = Rect2( 128, 416, 32, 32 )
elixirs_color = 1
[node name="ElixirsSprite2" parent="Item" instance=ExtResource( 6 )]
position = Vector2( 272, 368 )
region_rect = Rect2( 128, 416, 32, 32 )
elixirs_color = 1
[node name="DoorSprite2" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 304, 272 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
enabled = false
[node name="DoorSprite8" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 240, 48 )
region_rect = Rect2( 224, 480, 32, 32 )
door_type = 1
[node name="DoorSprite7" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 208, 240 )
region_rect = Rect2( 0, 512, 32, 32 )
door_type = 4
enabled = false
[node name="DoorSprite3" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 304, 368 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
[node name="DoorSprite4" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 432, 368 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
[node name="DoorSprite5" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 432, 272 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
[node name="DoorSprite6" parent="Item" instance=ExtResource( 5 )]
position = Vector2( 432, 176 )
region_rect = Rect2( 288, 480, 32, 32 )
door_type = 3
[node name="StairsSprite" parent="Item" instance=ExtResource( 3 )]
region_rect = Rect2( 64, 512, 32, 32 )
stairs_type = 1
player_init_position = Vector2( 176, 80 )
[node name="StairsSprite2" parent="Item" instance=ExtResource( 3 )]
position = Vector2( 176, 368 )
player_init_position = Vector2( 176, 336 )

View File

@ -1,36 +0,0 @@
extends AudioStreamPlayer2D
onready var attack = preload("res://sounds/attack.ogg")
onready var bomb = preload("res://sounds/bomb.ogg")
onready var center_fly = preload("res://sounds/centerFly.ogg")
onready var door = preload("res://sounds/door.ogg")
onready var equip = preload("res://sounds/equip.ogg")
onready var f = preload("res://sounds/floor.ogg")
onready var item = preload("res://sounds/item.ogg")
onready var jump = preload("res://sounds/jump.ogg")
onready var pickaxe = preload("res://sounds/pickaxe.ogg")
onready var zone = preload("res://sounds/zone.ogg")
func play_door():
stream = door
play()
func play_item():
stream = item
play()
func play_attack():
if playing:
return
pitch_scale = 1.5
stream = attack
play()

View File

@ -1,48 +0,0 @@
extends Tween
class_name ArrayTween
var index = 0
var values : Array
# 单个节点动画时间
export var duration: float = 1.0
# 动画步进回调
signal array_value_step(step)
# 所有节点动画播放完成
signal array_completed
func _ready():
connect("tween_completed",self,"on_tween_completed")
pass
# 使用节点进行动画
func interpolate_array(values:Array) -> void:
if values.size() < 2:
return
if is_active():
stop_all()
self.index = 0
self.values = values
play_step()
# 播放其中一节
func play_step():
var start_value = values[index]
var end_value = values[index + 1]
self.interpolate_method(self,"on_step",start_value,end_value,duration)
self.start()
# 程序内步进回调
func on_step(step):
emit_signal("array_value_step",step)
pass
# 动画完成回调
func on_tween_completed(object: Object, key: NodePath):
if index + 2 < values.size():
index += 1
play_step()
else:
emit_signal("array_completed")

View File

@ -1,8 +0,0 @@
extends AudioStreamPlayer2D
class_name BgmAudioPlayer
func _ready():
stream = load("res://sounds/bgm.ogg")
playing = true
volume_db -= 20

View File

@ -1,31 +0,0 @@
tool
extends Sprite
class_name DoorSprite
# 门类型
enum DoorType { Yellow,Blue,Red,Iron,Wall }
export(DoorType) var door_type setget set_door_type
# 是否被禁用
export var enabled : bool = true
# 默认数据初始化
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
func set_door_type(value):
door_type = value
match value:
DoorType.Yellow:
region_rect = Rect2(192,480,32,32)
DoorType.Blue:
region_rect = Rect2(224,480,32,32)
DoorType.Red:
region_rect = Rect2(256,480,32,32)
DoorType.Iron:
region_rect = Rect2(288,480,32,32)
DoorType.Wall:
region_rect = Rect2(0,512,32,32)

View File

@ -1,28 +0,0 @@
extends StaticBody2D
class_name DoorStaticBody2D
onready var door_sprite : DoorSprite = get_parent()
func on_player_touched(player):
if not door_sprite.enabled:
return
match door_sprite.door_type:
DoorSprite.DoorType.Yellow:
if GameArchiveManager.player_info.yellow_key <= 0:
return
GameArchiveManager.player_info.yellow_key -= 1
$"/root/Main/UI/KeyBackground/YellowKeyCountLabel".text = GameArchiveManager.player_info.yellow_key as String
DoorSprite.DoorType.Blue:
if GameArchiveManager.player_info.blue_key <= 0:
return
GameArchiveManager.player_info.blue_key -= 1
$"/root/Main/UI/KeyBackground/BlueKeyCountLabel".text = GameArchiveManager.player_info.blue_key as String
DoorSprite.DoorType.Red:
if GameArchiveManager.player_info.red_key <= 0:
return
GameArchiveManager.player_info.red_key -= 1
$"/root/Main/UI/KeyBackground/RedKeyCountLabel".text = GameArchiveManager.player_info.red_key as String
door_sprite.queue_free()
AffectAudioPlayer.play_door()
GameArchiveManager.add_used_item(door_sprite.get_path())

View File

@ -1,34 +0,0 @@
tool
extends Sprite
class_name ElixirsSprite
# 药水颜色
enum ElixirsColor { Red,Blue,Gold }
export(ElixirsColor) var elixirs_color = ElixirsColor.Red setget set_elixirs_color
# 药剂回升血量
export var elixirs_value : int = 100
# 默认数据初始化
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
func set_elixirs_color(value):
elixirs_color = value
match value:
ElixirsColor.Red:
region_rect = Rect2(96,416,32,32)
ElixirsColor.Blue:
region_rect = Rect2(128,416,32,32)
ElixirsColor.Gold:
region_rect = Rect2(160,416,32,32)
func _on_Area2D_body_entered(body):
GameArchiveManager.player_info.hp += elixirs_value
$"/root/Main/UI/HpSprite/HpBackground/HpLabel".text = GameArchiveManager.player_info.hp as String
GameArchiveManager.add_used_item(get_path())
AffectAudioPlayer.play_item()
queue_free()

View File

@ -1,171 +0,0 @@
extends Node
const archive_image_path_prefix = "user://"
const archive_file_path = "user://mota.save"
# 当前玩家信息
var player_info = {
#英雄名称
"username" : "hero",
#英雄当前位置
"position" : Vector2.ZERO,
#英雄血量
"hp" : 1000,
# 英雄攻击力
"atk" : 10,
# 英雄防御力
"def" : 10,
#默认金钱
"money" : 0,
# 当前楼层
"now_floor" : 1,
# 去过的最大楼层
"max_floor" : 1,
# 去过的最小楼层
"min_floor" : 1,
# 黄钥匙数量
"yellow_key" : 0,
# 蓝钥匙数量
"blue_key" : 0,
# 红钥匙数量
"red_key" : 0,
# 绿色钥匙数量
"green_key" : 0,
# 被使用的道具
"used_items" : {}
}
# 增加已经使用的对象
func add_used_item(path:String) -> void:
if not player_info.has("used_items"):
player_info.used_items = {}
var k = player_info.now_floor as String
if not player_info.used_items.has(k):
player_info.used_items[k] = [path]
else:
player_info.used_items[k].append(path)
# 根据楼层查询被使用的道具
func get_used_item(f:int) -> Array:
if not player_info.has("used_items"):
return []
var k = f as String
if not player_info.used_items.has(k):
return []
else:
return player_info.used_items[k]
return []
# 保存存档
func save_to_index(index:int):
update_player_position()
var archives := get_archives() as Array
if index >= 0 and index < archives.size():
var archive = archives[index] as Dictionary
archive.update_time = OS.get_unix_time()
archive.screenshot_file_path = save_screenshot_to_file(index)
archive.player_info = self.player_info
else:
var archive = {}
archive.create_time = OS.get_unix_time()
archive.update_time = archive.create_time
archive.screenshot_file_path = save_screenshot_to_file(index)
archive.player_info = self.player_info
archives.append(archive)
save_archives(archives)
# 获取玩家对象
func get_player() -> PlayerKinematicBody2D:
return get_tree().get_nodes_in_group("player")[0] as PlayerKinematicBody2D
# 更新玩家位置
func update_player_position() -> void:
var player = get_player()
player_info.position = player.position
# 根据索引加载存档
func load_by_index(index:int) -> void:
var archive = get_archives()[index]
#加载楼层
var next_floor = GameFloorManager.load_by_floor(archive.player_info.now_floor)
#设置人物位置
self.player_info = archive.player_info
GameFloorManager.instance_player(self.player_info.position,next_floor)
var player = get_player()
player.position = self.player_info.position
#更新UI显示
update_floor_view()
update_hp_view()
update_key_view()
update_atk_view()
update_def_view()
update_money_view()
func update_money_view():
$"/root/Main/UI/MoneySprite/MoneyBackground/MoneyLabel".text = player_info.money as String
func update_def_view():
$"/root/Main/UI/DefSprite/DefBackground/DefLabel".text = player_info.def as String
# 更新共计界面视图
func update_atk_view():
$"/root/Main/UI/AtkSprite/AtkBackground/AtkLabel".text = player_info.atk as String
# 更新楼层UI显示
func update_floor_view():
$"/root/Main/UI/LevelBackground/LevelLabel".text = "魔塔 第%s" % player_info.now_floor
# 更新人物血量
func update_hp_view():
$"/root/Main/UI/HpSprite/HpBackground/HpLabel".text = player_info.hp as String
# 更新钥匙数量显示
func update_key_view():
$"/root/Main/UI/KeyBackground/YellowKeyCountLabel".text = player_info.yellow_key as String
$"/root/Main/UI/KeyBackground/BlueKeyCountLabel".text = player_info.blue_key as String
$"/root/Main/UI/KeyBackground/RedKeyCountLabel".text = player_info.red_key as String
$"/root/Main/UI/KeyBackground/GreenKeyCountLabel".text = player_info.green_key as String
# 保存屏幕截图到本地
func save_screenshot_to_file(index:int) -> String:
var image = get_viewport().get_texture().get_data()
image.flip_y()
var image_path = "%s%s%s" % [archive_image_path_prefix,index,".png"]
var result = image.save_png(image_path)
if result != OK:
print("保存存档图片错误:",result)
return image_path
# 得到所有存档文件对象
func get_archives() -> Array:
var archive_file = File.new()
if not archive_file.file_exists(archive_file_path):
archive_file.close()
return []
var result = archive_file.open(archive_file_path,File.READ)
if result == OK:
return archive_file.get_var(true)
else:
archive_file.close()
return []
# 保存所有存档文件对象
func save_archives(archives:Array) -> void:
var archive_file = File.new()
var result = archive_file.open(archive_file_path,File.WRITE)
if result == OK:
archive_file.store_var(archives,true)
else:
print("保存游戏文件失败:",result)
archive_file.close()

View File

@ -1,50 +0,0 @@
extends Node
const floor_file_path = "res://scenes/floors/Floor"
# 加载指定楼层
func load_by_floor(f:int) -> Node2D:
var root = get_tree().get_root().get_node("Main")
var next_floor = load("%s%s%s" % [floor_file_path,f,".tscn"]).instance() as Node2D
var used_items = GameArchiveManager.get_used_item(f)
root.get_node("Floor%s" % GameArchiveManager.player_info.now_floor).free()
root.add_child(next_floor)
for used_item in used_items:
var node = next_floor.get_node(used_item)
if node != null:
node.free()
GameArchiveManager.player_info.now_floor = f
return next_floor
# 加载上一层楼层
func load_added_floor():
var f = GameArchiveManager.player_info.now_floor
if f + 1 > 50:
return
var next_floor = load_by_floor(f + 1)
var stairs = get_tree().get_nodes_in_group("stairs")
if stairs.empty():
return
for s in stairs:
if s.stairs_type == StairsSprite.StairsType.Down:
instance_player(s.player_init_position,next_floor)
return
# 加载下一次楼层
func load_reduced_floor():
var f = GameArchiveManager.player_info.now_floor
if f - 1 < 0:
return
var next_floor = load_by_floor(f - 1)
var stairs = get_tree().get_nodes_in_group("stairs")
if stairs.empty():
return
for s in stairs:
if s.stairs_type == StairsSprite.StairsType.Up:
instance_player(s.player_init_position,next_floor)
return
func instance_player(position:Vector2,next_floor:Node2D) -> void:
var player = load("res://scenes/Player.tscn").instance()
player.position = position
next_floor.add_child(player)

View File

@ -1,5 +0,0 @@
extends Node2D
func _ready():
GameFloorManager.instance_player(Vector2(336,368),$"/root/Main/Floor1")
pass

View File

@ -1,36 +0,0 @@
tool
extends Sprite
class_name GemSprite
# 宝石颜色
enum GemColor { Blue,Red }
export(GemColor) var gem_color setget set_gem_color
# 上升属性值
export var up_value : int = 1
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
func set_gem_color(value):
gem_color = value
match value:
GemColor.Blue:
region_rect = Rect2(128,384,32,32)
GemColor.Red:
region_rect = Rect2(96,384,32,32)
func _on_Area2D_body_entered(body):
match gem_color:
GemColor.Blue:
GameArchiveManager.player_info.def += up_value
GameArchiveManager.update_def_view()
GemColor.Red:
GameArchiveManager.player_info.atk += up_value
GameArchiveManager.update_atk_view()
AffectAudioPlayer.play_item()
queue_free()
GameArchiveManager.add_used_item(get_path())

View File

@ -1,43 +0,0 @@
tool
extends Sprite
class_name KeySprite
enum KeyType { Yellow,Blue,Red,Green }
# 钥匙类型
export(KeyType) var key_type = KeyType.Yellow setget set_key_type
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
func set_key_type(value):
key_type = value
match value:
KeyType.Yellow:
region_rect = Rect2(96,448,32,32)
KeyType.Blue:
region_rect = Rect2(128,448,32,32)
KeyType.Red:
region_rect = Rect2(160,448,32,32)
KeyType.Green:
region_rect = Rect2(192,448,32,32)
# 触碰钥匙回调
func _on_Area2D_body_entered(body):
if not body is PlayerKinematicBody2D:
return
match key_type:
KeyType.Yellow:
GameArchiveManager.player_info.yellow_key += 1
KeyType.Blue:
GameArchiveManager.player_info.blue_key += 1
KeyType.Red:
GameArchiveManager.player_info.red_key += 1
KeyType.Green:
GameArchiveManager.player_info.green_key += 1
GameArchiveManager.update_key_view()
queue_free()
GameArchiveManager.add_used_item(get_path())
AffectAudioPlayer.play_item()

View File

@ -1,5 +0,0 @@
extends Button
func _on_LoadGameButton_pressed():
GameArchiveManager.load_by_index(0)
pass # Replace with function body.

View File

@ -1,24 +0,0 @@
extends Node
var monster_data : Dictionary
# 根据json文件初始化怪物数据
func _ready():
var file = File.new()
file.open("res://monster.json",File.READ)
var json_result = JSON.parse(file.get_as_text())
if json_result.error != OK:
print(json_result.error_string)
else:
monster_data = json_result.result
file.close()
# 获取所有怪物名称
func get_monsters_name() -> Array:
if monster_data == null:
return []
return monster_data.keys()
# 根据怪物名称获取怪物信息
func get_info_by_name(name:String) -> Dictionary:
return monster_data[name]

View File

@ -1,42 +0,0 @@
extends AnimatedSprite
class_name MonsterSprite
var monster_info : Dictionary
func _on_Area2D_body_entered(body):
# 查询怪物信息
monster_info = MonsterBook.get_info_by_name(animation)
if monster_info == null:
print("未找到怪物",animation)
return
# 开始播放打斗动画
$AtkSprite.playing = true
# 打斗动画播放完成回调
func _on_AtkSprite_animation_finished():
AffectAudioPlayer.play_attack()
var atk_sprite =$AtkSprite
atk_sprite.playing = false
var player_info = GameArchiveManager.player_info
monster_info.hp -= get_hurt(player_info.atk - monster_info.def)
if monster_info.hp <= 0:
#怪物死亡计算
GameArchiveManager.add_used_item(get_path())
player_info.money += monster_info.money
GameArchiveManager.update_money_view()
queue_free()
return
player_info.hp -= get_hurt(monster_info.atk - player_info.def)
GameArchiveManager.update_hp_view()
if player_info.hp <=0:
print("game over")
else:
atk_sprite.playing = true
# 计算伤害
func get_hurt(hurt:int) -> int:
if hurt > 0:
return hurt
else:
return 0

View File

@ -1,61 +0,0 @@
tool
extends TileMap
class_name NavigationTileMap
var astar : AStar2D = AStar2D.new()
# 遮挡物
export(NodePath) var collsion_tilemap_path : NodePath
# 初始化tilemap配置
func _init():
self.tile_set = load("res://images/mota_tileset.tres")
self.cell_size = Vector2(32,32)
# 初始化node和edge
func _ready():
var cells := get_cells()
init_nodes(cells)
init_edges(cells)
# 初始化nodes
func init_nodes(cells:Array):
for index in range(cells.size()):
var cell_position = cells[index] * cell_size
cell_position.x += 16
cell_position.y += 16
astar.add_point(index, cell_position)
# 初始化edge
func init_edges(cells:Array):
for index in range(cells.size()):
var cell = cells[index]
#left
var left_cell_index = cells.find(Vector2(cell.x - 1,cell.y))
if left_cell_index != -1:
astar.connect_points(index,left_cell_index)
#right
var right_cell_index = cells.find(Vector2(cell.x + 1,cell.y))
if right_cell_index != -1:
astar.connect_points(index,right_cell_index)
#up
var up_cell_index = cells.find(Vector2(cell.x,cell.y - 1))
if up_cell_index != -1:
astar.connect_points(index,up_cell_index)
#down
var down_cell_index = cells.find(Vector2(cell.x,cell.y + 1))
if down_cell_index != -1:
astar.connect_points(index,down_cell_index)
# 返回显示的道路需要去除被遮挡的道路
func get_cells() -> Array:
var cells = get_used_cells()
if not collsion_tilemap_path.is_empty():
var collsion_tilemap = get_node(collsion_tilemap_path) as TileMap
var collsion_cells = collsion_tilemap.get_used_cells()
for collsion_cell in collsion_cells:
var index = cells.find(collsion_cell)
if index != -1:
cells.remove(index)
return cells

View File

@ -1,53 +0,0 @@
tool
extends KinematicBody2D
class_name PlayerKinematicBody2D
export(NodePath) var navigation_tile_map_path : NodePath
var navigation_tile_map : NavigationTileMap
var navigation_rect : Rect2
onready var array_tween : ArrayTween = $ArrayTween
onready var animation_tree : AnimationTree = $AnimationTree
# 初始化导航相关数据
func _ready():
if not navigation_tile_map_path.is_empty():
navigation_tile_map = get_node(navigation_tile_map_path)
navigation_rect = navigation_tile_map.get_used_rect()
navigation_rect.position *= navigation_tile_map.cell_size
navigation_rect.size *= navigation_tile_map.cell_size
# 监听屏幕点击事件
func _input(event):
if event is InputEventMouseButton and event.is_pressed() and navigation_tile_map != null:
if not navigation_rect.has_point(event.position):
return
var astar = navigation_tile_map.astar
var start_id = astar.get_closest_point(position)
var end_id = astar.get_closest_point(event.position)
var paths = astar.get_point_path(start_id,end_id)
animation_tree.active = true
array_tween.interpolate_array(paths)
func _on_ArrayTween_array_completed():
animation_tree.active = false
func _on_ArrayTween_array_value_step(step):
var diff = step - position
animation_tree["parameters/player/blend_position"] = diff
var result = move_and_collide(diff)
call_collider(result)
# 调用被碰撞对象的方法
func call_collider(collision:KinematicCollision2D):
if collision == null or collision.collider == null:
return
var collider = collision.collider
if collider is TileMap:
return
if collider.has_method("on_player_touched"):
collider.call("on_player_touched",self)

View File

@ -1,12 +0,0 @@
tool
extends Sprite
class_name PlayerSprite
# 默认数据初始化
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
self.region_rect = Rect2(192,192,128,96)
self.vframes = 3
self.hframes = 4

View File

@ -1,7 +0,0 @@
extends Button
class_name SaveGameButton
func _on_SaveGameButton_pressed():
GameArchiveManager.save_to_index(0)
pass # Replace with function body.

View File

@ -1,30 +0,0 @@
tool
extends Sprite
# 楼梯
class_name StairsSprite
enum StairsType { Up,Down }
export(StairsType) var stairs_type = StairsType.Up setget set_stairs_type
export var player_init_position : Vector2
func _init():
self.texture = load("res://images/mota.png")
self.region_enabled = true
func set_stairs_type(value):
stairs_type = value
match value:
StairsType.Up:
region_rect = Rect2(96,512,32,32)
StairsType.Down:
region_rect = Rect2(64,512,32,32)
func _on_Area2D_body_entered(body):
if stairs_type == StairsType.Up:
GameFloorManager.call_deferred("load_added_floor")
if stairs_type == StairsType.Down:
GameFloorManager.call_deferred("load_reduced_floor")

View File

@ -1,7 +0,0 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-63d61f13bea2972fb98d2318c1e93e56.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://settings/icon.png"
dest_files=[ "res://.import/icon.png-63d61f13bea2972fb98d2318c1e93e56.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/attack.ogg-f76ff4e84a599d537dd165b167a572d4.oggstr"
[deps]
source_file="res://sounds/attack.ogg"
dest_files=[ "res://.import/attack.ogg-f76ff4e84a599d537dd165b167a572d4.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/bgm.ogg-c456805944f69ed9f625bdcdec0091ed.oggstr"
[deps]
source_file="res://sounds/bgm.ogg"
dest_files=[ "res://.import/bgm.ogg-c456805944f69ed9f625bdcdec0091ed.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/bomb.ogg-5efebe2cad43415d948de40416af48a8.oggstr"
[deps]
source_file="res://sounds/bomb.ogg"
dest_files=[ "res://.import/bomb.ogg-5efebe2cad43415d948de40416af48a8.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/centerFly.ogg-a5ae664f2f23559847fabf1b6ad35834.oggstr"
[deps]
source_file="res://sounds/centerFly.ogg"
dest_files=[ "res://.import/centerFly.ogg-a5ae664f2f23559847fabf1b6ad35834.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/door.ogg-cf3de28e49b4d64c2a8dab40e5ce65a9.oggstr"
[deps]
source_file="res://sounds/door.ogg"
dest_files=[ "res://.import/door.ogg-cf3de28e49b4d64c2a8dab40e5ce65a9.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/equip.ogg-d2884a375a4158917c3155b455e88238.oggstr"
[deps]
source_file="res://sounds/equip.ogg"
dest_files=[ "res://.import/equip.ogg-d2884a375a4158917c3155b455e88238.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/floor.ogg-179348b5537b3ab90093a87b3d5e7d35.oggstr"
[deps]
source_file="res://sounds/floor.ogg"
dest_files=[ "res://.import/floor.ogg-179348b5537b3ab90093a87b3d5e7d35.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/item.ogg-9d12925afedc51e40ec0abb1b0542aa0.oggstr"
[deps]
source_file="res://sounds/item.ogg"
dest_files=[ "res://.import/item.ogg-9d12925afedc51e40ec0abb1b0542aa0.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/jump.ogg-de8df8640ff526968292c23fe5ec784f.oggstr"
[deps]
source_file="res://sounds/jump.ogg"
dest_files=[ "res://.import/jump.ogg-de8df8640ff526968292c23fe5ec784f.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View File

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/pickaxe.ogg-660fd619fe121f210ac6f9430a16ab5c.oggstr"
[deps]
source_file="res://sounds/pickaxe.ogg"
dest_files=[ "res://.import/pickaxe.ogg-660fd619fe121f210ac6f9430a16ab5c.oggstr" ]
[params]
loop=false
loop_offset=0

Some files were not shown because too many files have changed in this diff Show More