Initial files
19
animations/btn_in.tres
Normal file
@@ -0,0 +1,19 @@
|
||||
[gd_resource type="Animation" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
resource/name = "anim_in"
|
||||
length = 0.7
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:rect/pos")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.4, 0.7 ),
|
||||
"transitions": FloatArray( 0.353553, 2.07053, 0.25 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 83, 263 ), Vector2( 83, 26 ), Vector2( 83, 54 ) ]
|
||||
}
|
||||
|
||||
BIN
bacground.kra
Normal file
7
colors/ramp_asteroid.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="ColorRamp" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
offsets = FloatArray( 0, 0.111111, 0.175439, 0.380117, 1 )
|
||||
colors = ColorArray( 1, 0, 0.09375, 0.114863, 0.980469, 0, 0.160858, 1, 1, 0, 0, 1, 1, 0.852417, 0.273438, 1, 0.933631, 1, 0.46905, 1 )
|
||||
|
||||
7
colors/smoke.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="ColorRamp" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
offsets = FloatArray( 0, 0.154696, 0.309392, 0.58011, 0.928177, 1 )
|
||||
colors = ColorArray( 1, 1, 1, 0, 0.421875, 0.304871, 0.304871, 0.563536, 0.333216, 0.251635, 0.251635, 1, 0.129032, 0.129032, 0.129032, 1, 0.15625, 0.0720215, 0.0720215, 1, 0.0390625, 0.0376892, 0.0376892, 0 )
|
||||
|
||||
40
engine.cfg
Normal file
@@ -0,0 +1,40 @@
|
||||
[application]
|
||||
|
||||
name="Tactical Ballistic Retro Missile Commander, Blin"
|
||||
main_scene="res://stages/main_stage.tscn"
|
||||
icon="res://icon.png"
|
||||
|
||||
[autoload]
|
||||
|
||||
game_manager="*res://scripts/game_manager.gd"
|
||||
|
||||
[display]
|
||||
|
||||
width=411
|
||||
height=256
|
||||
test_width=822
|
||||
test_height=512
|
||||
stretch_mode="2d"
|
||||
|
||||
[input]
|
||||
|
||||
slow_motion=[key(Return)]
|
||||
fire=[key(Space), mbutton(0, 1)]
|
||||
Start=[jbutton(0, 6)]
|
||||
B=[jbutton(0, 8)]
|
||||
Coin=[jbutton(0, 7)]
|
||||
A=[jbutton(0, 9)]
|
||||
Coin2=[jbutton(0, 4)]
|
||||
Select=[jbutton(0, 5)]
|
||||
Y=[jbutton(0, 10)]
|
||||
X=[jbutton(0, 11)]
|
||||
Blin1=[jbutton(0, 0)]
|
||||
Blin2=[jbutton(0, 2)]
|
||||
J_up=[jaxis(0, 2)]
|
||||
J_down=[jaxis(0, 3)]
|
||||
J_left=[jaxis(0, 0)]
|
||||
J_right=[jaxis(0, 1)]
|
||||
|
||||
[physics_2d]
|
||||
|
||||
motion_fix_enabled=true
|
||||
341
export.cfg
Normal file
@@ -0,0 +1,341 @@
|
||||
[convert_images]
|
||||
|
||||
action="none"
|
||||
compress_quality=0.7
|
||||
formats="png"
|
||||
shrink=1.0
|
||||
|
||||
[convert_samples]
|
||||
|
||||
action="none"
|
||||
max_hz=44100
|
||||
trim=false
|
||||
|
||||
[convert_scenes]
|
||||
|
||||
convert_text_scenes=true
|
||||
|
||||
[export_filter]
|
||||
|
||||
filter=""
|
||||
filter_exclude=""
|
||||
type="resources"
|
||||
|
||||
[platform:Android]
|
||||
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/public_key=""
|
||||
architecture/arm=true
|
||||
architecture/x86=false
|
||||
command_line/extra_args=""
|
||||
custom_package/debug=""
|
||||
custom_package/release=""
|
||||
debug/debugging_enabled=false
|
||||
keystore/release="/home/minzkraut/Documents/Godot/minzkraut123456.keystore"
|
||||
keystore/release_password="123456"
|
||||
keystore/release_user="minzkraut"
|
||||
one_click_deploy/clear_previous_install=true
|
||||
package/icon="res://sprites/logo.png"
|
||||
package/name="TBM Commander"
|
||||
package/signed=true
|
||||
package/unique_name="com.minzkraut.tbmc"
|
||||
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
|
||||
screen/immersive_mode=true
|
||||
screen/orientation=0
|
||||
screen/support_large=true
|
||||
screen/support_normal=true
|
||||
screen/support_small=true
|
||||
screen/support_xlarge=true
|
||||
screen/use_32_bits_view=true
|
||||
user_permissions/0=""
|
||||
user_permissions/1=""
|
||||
user_permissions/10=""
|
||||
user_permissions/11=""
|
||||
user_permissions/12=""
|
||||
user_permissions/13=""
|
||||
user_permissions/14=""
|
||||
user_permissions/15=""
|
||||
user_permissions/16=""
|
||||
user_permissions/17=""
|
||||
user_permissions/18=""
|
||||
user_permissions/19=""
|
||||
user_permissions/2=""
|
||||
user_permissions/3=""
|
||||
user_permissions/4=""
|
||||
user_permissions/5=""
|
||||
user_permissions/6=""
|
||||
user_permissions/7=""
|
||||
user_permissions/8=""
|
||||
user_permissions/9=""
|
||||
version/code=4
|
||||
version/name="2.3"
|
||||
|
||||
[platform:BlackBerry 10]
|
||||
|
||||
debug/debugging_enabled=true
|
||||
package/category="core.games"
|
||||
package/custom_template=""
|
||||
package/description="Game made with Godot Engine"
|
||||
package/icon=""
|
||||
package/name=""
|
||||
package/unique_name="com.godot.noname"
|
||||
release/author="Cert. Name"
|
||||
release/author_id="Cert. ID"
|
||||
version/code=1
|
||||
version/name="1.0"
|
||||
|
||||
[platform:HTML5]
|
||||
|
||||
browser/enable_run=false
|
||||
custom_package/debug=""
|
||||
custom_package/release=""
|
||||
debug/debugging_enabled=true
|
||||
html/controls_enabled=true
|
||||
html/font_family="arial,sans-serif"
|
||||
html/head_include=""
|
||||
html/style_include=""
|
||||
html/title=""
|
||||
options/memory_size=3
|
||||
|
||||
[platform:Linux X11]
|
||||
|
||||
binary/64_bits=false
|
||||
custom_binary/debug=""
|
||||
custom_binary/release="/home/minzkraut/.godot/templates/Godot_2.1.4_ReleaseBuild_RaspberryPi3"
|
||||
debug/debugging_enabled=false
|
||||
resources/bundle_dependencies_(for_optical_disc)=true
|
||||
resources/pack_mode=1
|
||||
|
||||
[platform:Mac OSX]
|
||||
|
||||
application/bits_mode=0
|
||||
application/copyright=""
|
||||
application/icon=""
|
||||
application/identifier="org.godotengine.macgame"
|
||||
application/info="Made with Godot Engine"
|
||||
application/name=""
|
||||
application/short_version="1.0"
|
||||
application/signature="godotmacgame"
|
||||
application/version="1.0"
|
||||
custom_package/debug=""
|
||||
custom_package/release=""
|
||||
debug/debugging_enabled=true
|
||||
display/high_res=false
|
||||
|
||||
[platform:Windows Desktop]
|
||||
|
||||
binary/64_bits=true
|
||||
custom_binary/debug=""
|
||||
custom_binary/release=""
|
||||
debug/debugging_enabled=true
|
||||
resources/bundle_dependencies_(for_optical_disc)=true
|
||||
resources/pack_mode=1
|
||||
|
||||
[platform:Windows Universal]
|
||||
|
||||
architecture/target=1
|
||||
capabilities/all_Joyn=false
|
||||
capabilities/appointments=false
|
||||
capabilities/blocked_Chat_Messages=false
|
||||
capabilities/bluetooth=false
|
||||
capabilities/chat=false
|
||||
capabilities/code_Generation=false
|
||||
capabilities/contacts=false
|
||||
capabilities/enterprise_Authentication=false
|
||||
capabilities/internet_Client=false
|
||||
capabilities/internet_Client_Server=false
|
||||
capabilities/location=false
|
||||
capabilities/microphone=false
|
||||
capabilities/music_Library=false
|
||||
capabilities/objects_3D=false
|
||||
capabilities/phone_Call=false
|
||||
capabilities/pictures_Library=false
|
||||
capabilities/private_Network_Client_Server=false
|
||||
capabilities/proximity=false
|
||||
capabilities/removable_Storage=false
|
||||
capabilities/shared_User_Certificates=false
|
||||
capabilities/user_Account_Information=false
|
||||
capabilities/videos_Library=false
|
||||
capabilities/voip_Call=false
|
||||
capabilities/webcam=false
|
||||
command_line/extra_args=""
|
||||
custom_package/debug=""
|
||||
custom_package/release=""
|
||||
debug/debugging_enabled=true
|
||||
identity/product_guid="00000000-0000-0000-0000-000000000000"
|
||||
identity/publisher_guid="00000000-0000-0000-0000-000000000000"
|
||||
images/background_color="transparent"
|
||||
images/splash_screen=null
|
||||
images/square150x150_logo=null
|
||||
images/square310x310_logo=null
|
||||
images/square44x44_logo=null
|
||||
images/square71x71_logo=null
|
||||
images/store_logo=null
|
||||
images/wide310x150_logo=null
|
||||
orientation/landscape=true
|
||||
orientation/landscape_flipped=true
|
||||
orientation/portrait=true
|
||||
orientation/portrait_flipped=true
|
||||
package/description="Godot Engine"
|
||||
package/display_name=""
|
||||
package/publisher="CN=GodotEngine"
|
||||
package/publisher_display_name="Godot Engine"
|
||||
package/short_name="Godot"
|
||||
package/unique_name="Godot.Engine"
|
||||
tiles/show_name_on_square150x150=false
|
||||
tiles/show_name_on_square310x310=false
|
||||
tiles/show_name_on_wide310x150=false
|
||||
version/build=0
|
||||
version/major=1
|
||||
version/minor=0
|
||||
version/revision=0
|
||||
|
||||
[script]
|
||||
|
||||
action="compile"
|
||||
encrypt_key=""
|
||||
1
icon.png.flags
Normal file
@@ -0,0 +1 @@
|
||||
gen_mipmaps=false
|
||||
83
samplelibrary.tres
Normal file
@@ -0,0 +1,83 @@
|
||||
[gd_resource type="SampleLibrary" load_steps=12 format=1]
|
||||
|
||||
[ext_resource path="res://sounds/explosion_1.wav" type="Sample" id=1]
|
||||
[ext_resource path="res://sounds/explosion_2.wav" type="Sample" id=2]
|
||||
[ext_resource path="res://sounds/explosion_3.wav" type="Sample" id=3]
|
||||
[ext_resource path="res://sounds/explosion_4.wav" type="Sample" id=4]
|
||||
[ext_resource path="res://sounds/explosion_5.wav" type="Sample" id=5]
|
||||
[ext_resource path="res://sounds/level_up.wav" type="Sample" id=6]
|
||||
[ext_resource path="res://sounds/loose_3.wav" type="Sample" id=7]
|
||||
[ext_resource path="res://sounds/loose_1.wav" type="Sample" id=8]
|
||||
[ext_resource path="res://sounds/loose_2.wav" type="Sample" id=9]
|
||||
[ext_resource path="res://sounds/loose_4.wav" type="Sample" id=10]
|
||||
[ext_resource path="res://sounds/missile_launch.wav" type="Sample" id=11]
|
||||
|
||||
[resource]
|
||||
|
||||
samples/explosion_1 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 1 )
|
||||
}
|
||||
samples/explosion_2 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 2 )
|
||||
}
|
||||
samples/explosion_3 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 3 )
|
||||
}
|
||||
samples/explosion_4 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 4 )
|
||||
}
|
||||
samples/explosion_5 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 5 )
|
||||
}
|
||||
samples/level_up = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 6 )
|
||||
}
|
||||
samples/loose3 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 7 )
|
||||
}
|
||||
samples/loose_1 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 8 )
|
||||
}
|
||||
samples/loose_2 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 9 )
|
||||
}
|
||||
samples/loose_4 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 10 )
|
||||
}
|
||||
samples/missile_launch = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 11 )
|
||||
}
|
||||
|
||||
159
scenes/asteroid.tscn
Normal file
@@ -0,0 +1,159 @@
|
||||
[gd_scene load_steps=12 format=1]
|
||||
|
||||
[ext_resource path="res://scripts/asteroid.gd" type="Script" id=1]
|
||||
[ext_resource path="res://sprites/asteroid.png" type="Texture" id=2]
|
||||
[ext_resource path="res://colors/ramp_asteroid.tres" type="ColorRamp" id=3]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 6.56525, 2.73226, 5.8742, 6.37177, 2.05041, 6.18749, 5.73599, 0.659113 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 5.73599, 0.659113, -5.27712, 1.15746, -7.82946, -3.23257, -7.62617, -6.45307, -4.46126, -8.03552, -0.326464, -6.8104, 6.42704, -3.80966 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 5.73599, 0.659113, 2.05041, 6.18749, -2.55657, 6.46391, -4.30723, 5.49644, -5.27712, 1.15746 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 3.84713, -7.17275, 6.42704, -3.80966, -0.326464, -6.8104, 1.00076, -7.62715 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 6.56525, 2.73226, 5.8742, 6.37177, 2.05041, 6.18749, 5.73599, 0.659113 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 5.73599, 0.659113, -5.27712, 1.15746, -7.82946, -3.23257, -7.62617, -6.45307, -4.46126, -8.03552, -0.326464, -6.8104, 6.42704, -3.80966 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 5.73599, 0.659113, 2.05041, 6.18749, -2.55657, 6.46391, -4.30723, 5.49644, -5.27712, 1.15746 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 3.84713, -7.17275, 6.42704, -3.80966, -0.326464, -6.8104, 1.00076, -7.62715 )
|
||||
|
||||
[node name="Asteroid" type="KinematicBody2D"]
|
||||
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/1/trigger = false
|
||||
shapes/2/shape = SubResource( 3 )
|
||||
shapes/2/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/2/trigger = false
|
||||
shapes/3/shape = SubResource( 4 )
|
||||
shapes/3/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/3/trigger = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1024
|
||||
collision/margin = 0.08
|
||||
script/script = ExtResource( 1 )
|
||||
speed_min = 5
|
||||
speed_max = 45
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/scale = Vector2( 0.25, 0.25 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="FireParticlesBack" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.649553, -0.311569 )
|
||||
transform/rot = -180.0
|
||||
z/z = -1
|
||||
config/amount = 64
|
||||
config/lifetime = 1.0
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 5, 2 )
|
||||
params/direction = 0.0
|
||||
params/spread = 0.0
|
||||
params/linear_velocity = 20.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.5
|
||||
params/final_size = 0.2
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 1.0
|
||||
color/color_ramp = ExtResource( 3 )
|
||||
|
||||
[node name="FireParticlesFront" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0.892595, 5.7285 )
|
||||
transform/rot = -180.0
|
||||
z/z = 1
|
||||
config/amount = 32
|
||||
config/lifetime = 0.4
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 5, 2 )
|
||||
params/direction = 0.0
|
||||
params/spread = 20.0
|
||||
params/linear_velocity = 20.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.5
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 1.0
|
||||
color/color_ramp = ExtResource( 3 )
|
||||
|
||||
[node name="CollisionArea" type="Area2D" parent="."]
|
||||
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
shapes/1/shape = SubResource( 6 )
|
||||
shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/1/trigger = true
|
||||
shapes/2/shape = SubResource( 7 )
|
||||
shapes/2/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/2/trigger = true
|
||||
shapes/3/shape = SubResource( 8 )
|
||||
shapes/3/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/3/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
collision/mask = 1024
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CollisionArea"]
|
||||
|
||||
visibility/visible = false
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( -7.82946, -3.23257, -5.27712, 1.15746, -4.30723, 5.49644, -2.55657, 6.46391, 2.05041, 6.18749, 5.8742, 6.37177, 6.56525, 2.73226, 5.73599, 0.659113, 6.42704, -3.80966, 3.84713, -7.17275, 1.00076, -7.62715, -0.326464, -6.8104, -4.46126, -8.03552, -7.62617, -6.45307 )
|
||||
shape_range = Vector2( 0, 3 )
|
||||
trigger = true
|
||||
|
||||
|
||||
59
scenes/base.tscn
Normal file
@@ -0,0 +1,59 @@
|
||||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://scripts/base.gd" type="Script" id=1]
|
||||
[ext_resource path="res://sprites/base.png" type="Texture" id=2]
|
||||
[ext_resource path="res://sprites/cannon.png" type="Texture" id=3]
|
||||
[ext_resource path="res://scripts/ray.gd" type="Script" id=4]
|
||||
|
||||
[node name="Base" type="StaticBody2D"]
|
||||
|
||||
transform/pos = Vector2( 216.299, 209.498 )
|
||||
input/pickable = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
script/script = ExtResource( 1 )
|
||||
health = 100
|
||||
reload_time = 0.8
|
||||
|
||||
[node name="BaseSprite" type="Sprite" parent="."]
|
||||
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CannonSprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.0346317, -7.63508 )
|
||||
transform/scale = Vector2( 0.25, 0.25 )
|
||||
texture = ExtResource( 3 )
|
||||
offset = Vector2( 0.0179825, -27.3786 )
|
||||
|
||||
[node name="CannonTip" type="Position2D" parent="CannonSprite"]
|
||||
|
||||
transform/pos = Vector2( 0, -56.1053 )
|
||||
|
||||
[node name="Ray" type="Node2D" parent="CannonSprite"]
|
||||
|
||||
z/z = -1
|
||||
script/script = ExtResource( 4 )
|
||||
|
||||
[node name="SoundRoomParams" type="SoundRoomParams" parent="."]
|
||||
|
||||
reverb/mode = 3
|
||||
params/speed_of_scale = 1.0
|
||||
params/doppler_factor = 1.0
|
||||
params/pitch_scale = 1.0
|
||||
params/volume_scale_db = 0.0
|
||||
params/reverb_send = 1.0
|
||||
params/chorus_send = 2.0
|
||||
params/attenuation_scale = 1.0
|
||||
params/attenuation_hf_cutoff = 5000.0
|
||||
params/attenuation_hf_floor_db = -24.0
|
||||
params/attenuation_hf_ratio_exp = 1.0
|
||||
params/attenuation_reverb_scale = 0.0
|
||||
force_to_all_sources = true
|
||||
|
||||
|
||||
224
scenes/explosion.tscn
Normal file
@@ -0,0 +1,224 @@
|
||||
[gd_scene load_steps=10 format=1]
|
||||
|
||||
[ext_resource path="res://colors/ramp_asteroid.tres" type="ColorRamp" id=1]
|
||||
[ext_resource path="res://colors/smoke.tres" type="ColorRamp" id=2]
|
||||
[ext_resource path="res://sprites/under.png" type="Texture" id=3]
|
||||
[ext_resource path="res://scripts/explosion.gd" type="Script" id=4]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "extends Particles2D
|
||||
|
||||
func _ready():
|
||||
set_emitting(true)
|
||||
"
|
||||
|
||||
[sub_resource type="GDScript" id=2]
|
||||
|
||||
script/source = "extends Particles2D
|
||||
|
||||
func _ready():
|
||||
set_emitting(true)
|
||||
"
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
|
||||
resource/name = "flash"
|
||||
length = 0.4
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:transform/scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.1, 0.3 ),
|
||||
"transitions": FloatArray( 1, -4, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0.05, 0.05 ), Vector2( 0.3, 0.3 ), Vector2( 1e-05, 1e-05 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:transform/rot")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 0.3 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 180.0, 0.0 ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath(".:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/imported = false
|
||||
tracks/2/keys = {
|
||||
"times": FloatArray( 0, 0.1, 0.3 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.0470588, 0.0470588, 0.0470588, 1 ), Color( 0.83606, 1, 0.382812, 1 ), Color( 1, 0, 0.046875, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
|
||||
resource/name = "flash_counter"
|
||||
length = 0.4
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:transform/scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.1, 0.3 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0.05, 0.05 ), Vector2( 0.3, 0.3 ), Vector2( 1e-05, 1e-05 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:transform/rot")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 0.3 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 180.0 ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath(".:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/imported = false
|
||||
tracks/2/keys = {
|
||||
"times": FloatArray( 0, 0.1, 0.3 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.0470588, 0.0470588, 0.0470588, 1 ), Color( 0.83606, 1, 0.382812, 1 ), Color( 1, 0, 0.046875, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 77.0607
|
||||
|
||||
[node name="Explosion" type="Particles2D"]
|
||||
|
||||
config/amount = 1024
|
||||
config/lifetime = 2.0
|
||||
config/emit_timeout = 0.1
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
params/direction = 0.0
|
||||
params/spread = 180.0
|
||||
params/linear_velocity = 50.0
|
||||
params/spin_velocity = 20.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 50.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 2.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/direction = 1.0
|
||||
randomness/linear_velocity = 0.5
|
||||
randomness/orbit_velocity = 0.5
|
||||
randomness/final_size = 1.0
|
||||
color/color_ramp = ExtResource( 1 )
|
||||
script/script = SubResource( 1 )
|
||||
|
||||
[node name="Smoke" type="Particles2D" parent="."]
|
||||
|
||||
config/amount = 32
|
||||
config/lifetime = 3.0
|
||||
config/emit_timeout = 0.5
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 2, 2 )
|
||||
params/direction = 180.0
|
||||
params/spread = 90.0
|
||||
params/linear_velocity = 5.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 180.0
|
||||
params/gravity_strength = 2.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 5.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 0.5
|
||||
color/color_ramp = ExtResource( 2 )
|
||||
script/script = SubResource( 2 )
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( 0.0889397, 0.0746803 )
|
||||
transform/rot = 120.0
|
||||
transform/scale = Vector2( 0.3, 0.3 )
|
||||
texture = ExtResource( 3 )
|
||||
offset = Vector2( -4.4341, 11.1493 )
|
||||
flip_h = true
|
||||
flip_v = true
|
||||
modulate = Color( 0.83606, 1, 0.382812, 1 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite1"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/flash = SubResource( 3 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "flash"
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( -0.0113325, -0.0332518 )
|
||||
transform/scale = Vector2( 1e-05, 1e-05 )
|
||||
texture = ExtResource( 3 )
|
||||
offset = Vector2( 1.61146, -10.8665 )
|
||||
modulate = Color( 1, 0, 0.046875, 1 )
|
||||
script/script = ExtResource( 4 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/flash = SubResource( 3 )
|
||||
anims/flash_counter = SubResource( 4 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "flash_counter"
|
||||
|
||||
[node name="ExplosionArea" type="Area2D" parent="Sprite"]
|
||||
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/ExplosionArea"]
|
||||
|
||||
shape = SubResource( 5 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
|
||||
86
scenes/missile.tscn
Normal file
@@ -0,0 +1,86 @@
|
||||
[gd_scene load_steps=6 format=1]
|
||||
|
||||
[ext_resource path="res://scripts/missile.gd" type="Script" id=1]
|
||||
[ext_resource path="res://sprites/cannon.png" type="Texture" id=2]
|
||||
[ext_resource path="res://colors/ramp_asteroid.tres" type="ColorRamp" id=3]
|
||||
[ext_resource path="res://samplelibrary.tres" type="SampleLibrary" id=4]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 1.36986
|
||||
height = 10.1431
|
||||
|
||||
[node name="Missile" type="KinematicBody2D"]
|
||||
|
||||
input/pickable = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
collision/margin = 0.08
|
||||
script/script = ExtResource( 1 )
|
||||
speed_mult = 180
|
||||
|
||||
[node name="MissileSprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0.0276022, 0.0552044 )
|
||||
transform/scale = Vector2( 0.1, 0.2 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="FlameParticles" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0, 5.52227 )
|
||||
z/z = -1
|
||||
config/amount = 64
|
||||
config/lifetime = 1.0
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 0.5, 0 )
|
||||
config/local_space = false
|
||||
params/direction = 0.0
|
||||
params/spread = 20.0
|
||||
params/linear_velocity = 5.0
|
||||
params/spin_velocity = 5.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 2.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/direction = 1.0
|
||||
randomness/spread = 5.0
|
||||
color/color_ramp = ExtResource( 3 )
|
||||
|
||||
[node name="CollisionArea" type="Area2D" parent="."]
|
||||
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="CollisionArea"]
|
||||
|
||||
shape = SubResource( 1 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Audio" type="SamplePlayer2D" parent="."]
|
||||
|
||||
params/volume_db = 0.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 1.0
|
||||
params/attenuation/max_distance = 2048.0
|
||||
params/attenuation/distance_exp = 1.0
|
||||
config/polyphony = 5
|
||||
config/samples = ExtResource( 4 )
|
||||
config/pitch_random = 0.0
|
||||
|
||||
|
||||
10
scenes/spawner_asteroids.tscn
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_scene load_steps=2 format=1]
|
||||
|
||||
[ext_resource path="res://scripts/spawner_asteroids.gd" type="Script" id=1]
|
||||
|
||||
[node name="Spawner Asteroids" type="Node"]
|
||||
|
||||
script/script = ExtResource( 1 )
|
||||
amount = 2
|
||||
|
||||
|
||||
BIN
screenshots/Screenshot_2017-10-18-09-48-05.png
Normal file
|
After Width: | Height: | Size: 407 KiB |
BIN
screenshots/Screenshot_2017-10-18-09-48-26.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
screenshots/Screenshot_2017-10-18-09-48-41.png
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
screenshots/Screenshot_2017-10-18-09-49-05.png
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
screenshots/Screenshot_2017-10-18-09-49-57.png
Normal file
|
After Width: | Height: | Size: 245 KiB |
BIN
screenshots/Screenshot_2017-10-18-09-50-40.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
40
scripts/asteroid.gd
Normal file
@@ -0,0 +1,40 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
var explosion = preload("res://scenes/explosion.tscn")
|
||||
var velocity = Vector2()
|
||||
export var speed_min = 10
|
||||
export var speed_max = 50
|
||||
|
||||
func _ready():
|
||||
randomize()
|
||||
var rand_x = rand_range(0, get_viewport_rect().size.width)
|
||||
set_global_pos(Vector2(rand_x, rand_range(-5, -60))) #random offset for easy "random timing"
|
||||
|
||||
rand_x = rand_range(0, get_viewport_rect().size.width)
|
||||
var target = Vector2(rand_x, get_viewport_rect().size.height)
|
||||
|
||||
set_rot(get_global_pos().angle_to_point(target)+deg2rad(180))
|
||||
velocity = Vector2(0, rand_range(speed_min, speed_max))
|
||||
get_node("Sprite").set_rotd(rand_range(0,360))
|
||||
set_process(true)
|
||||
|
||||
func _process(delta):
|
||||
move(velocity.rotated(get_rot())*delta)
|
||||
check_bounds()
|
||||
|
||||
func check_bounds():
|
||||
if get_pos().y > get_viewport_rect().size.y - 5:
|
||||
print("Asteroid out of bounds")
|
||||
game_manager.get_node_from_root("Node/Base").damage(10)
|
||||
destroy()
|
||||
|
||||
func destroy():
|
||||
get_node("CollisionArea").queue_free()
|
||||
game_manager.remove_asteroid()
|
||||
var new_explosion = explosion.instance()
|
||||
new_explosion.set_pos(get_pos())
|
||||
game_manager.get_node_from_root("Node").add_child(new_explosion)
|
||||
queue_free()
|
||||
|
||||
func on_rocket_hit():
|
||||
destroy()
|
||||
110
scripts/base.gd
Normal file
@@ -0,0 +1,110 @@
|
||||
extends StaticBody2D
|
||||
|
||||
var state
|
||||
var local_health
|
||||
var missile_scn = preload("res://scenes/missile.tscn")
|
||||
var states = {"STATE_AIMING": StateAiming, "STATE_FIRING": StateFiring}
|
||||
var cannon_rotation = 90
|
||||
var cannon_rot_dir = 0
|
||||
export var health = 100
|
||||
export var reload_time = 0.8
|
||||
|
||||
signal state_change
|
||||
|
||||
func _ready():
|
||||
set_state("STATE_AIMING")
|
||||
set_process_input(true)
|
||||
set_process(true)
|
||||
local_health = health
|
||||
|
||||
func _process(delta):
|
||||
state.update(delta)
|
||||
|
||||
|
||||
func _input(event):
|
||||
if state.has_method("input"):
|
||||
state.input(event)
|
||||
|
||||
func damage(dmg):
|
||||
local_health -= dmg
|
||||
if local_health <= 0 and not game_manager.state == game_manager.STATE_GAMEOVER:
|
||||
game_manager.game_over()
|
||||
|
||||
func set_state(new_state):
|
||||
if state: state._exit()
|
||||
emit_signal("state_change", self, new_state)
|
||||
print("State change to %s" % new_state)
|
||||
var new_state_instance = states[new_state].new(self)
|
||||
self.state = new_state_instance
|
||||
|
||||
|
||||
func get_state():
|
||||
return state.to_string()
|
||||
|
||||
class StateFiring:
|
||||
func to_string():
|
||||
return "STATE_FIRING"
|
||||
var base
|
||||
var missile_spawn
|
||||
var missile_rot
|
||||
func _init(_base):
|
||||
self.base = _base
|
||||
missile_spawn = base.get_node("CannonSprite/CannonTip")
|
||||
missile_rot = base.get_node("CannonSprite").get_global_rot()
|
||||
|
||||
func update(delta):
|
||||
shoot_missile()
|
||||
|
||||
func shoot_missile():
|
||||
var missile = base.missile_scn.instance()
|
||||
missile.init(base)
|
||||
base.add_child(missile)
|
||||
missile.set_global_rot(missile_rot)
|
||||
missile.set_global_pos(missile_spawn.get_global_pos())
|
||||
print("Fired")
|
||||
base.set_state("STATE_AIMING")
|
||||
|
||||
|
||||
func _exit():
|
||||
pass
|
||||
|
||||
class StateAiming:
|
||||
func to_string():
|
||||
return "STATE_AIMING"
|
||||
var base
|
||||
var cannon
|
||||
var ray
|
||||
var reload_timer
|
||||
func _init(_base):
|
||||
self.base = _base
|
||||
reload_timer = base.reload_time
|
||||
cannon = base.get_node("CannonSprite")
|
||||
ray = cannon.get_node("Ray")
|
||||
|
||||
func update(delta):
|
||||
if reload_timer > 0:
|
||||
reload_timer -= delta
|
||||
ray.ray_color = ray.colors.red
|
||||
else: ray.ray_color = ray.colors.green
|
||||
#var mouse_pos = base.get_global_mouse_pos()
|
||||
#cannon.look_at(mouse_pos)
|
||||
#cannon.set_rot(cannon.get_global_pos().angle_to_point(mouse_pos))
|
||||
base.cannon_rotation += base.cannon_rot_dir
|
||||
cannon.set_rot(deg2rad(base.cannon_rotation))
|
||||
|
||||
func input(event):
|
||||
if event.is_action_pressed("slow_motion"):
|
||||
OS.set_time_scale(0.15)
|
||||
if event.is_action_released("fire") or event.is_action_released("A") and reload_timer <= 0:
|
||||
print("We fire")
|
||||
base.set_state("STATE_FIRING")
|
||||
if event.is_action("ui_left") or event.is_action("J_left"):
|
||||
base.cannon_rot_dir = 1
|
||||
if event.is_action("ui_right") or event.is_action("J_right"):
|
||||
base.cannon_rot_dir = -1
|
||||
if event.is_action_released("ui_right") or event.is_action_released("ui_left") or event.is_action_released("J_right") or event.is_action_released("J_left"):
|
||||
base.cannon_rot_dir = 0
|
||||
|
||||
func _exit():
|
||||
pass
|
||||
|
||||
21
scripts/explosion.gd
Normal file
@@ -0,0 +1,21 @@
|
||||
extends Sprite
|
||||
|
||||
var ttl = 4
|
||||
|
||||
func _ready():
|
||||
set_process(true)
|
||||
get_node("AnimationPlayer").connect("finished", self, "anim_finished")
|
||||
get_node("ExplosionArea").connect("body_enter", self, "on_collision")
|
||||
|
||||
func anim_finished():
|
||||
get_node("ExplosionArea").queue_free()
|
||||
|
||||
func on_collision(other):
|
||||
if other != null and other.has_method("on_rocket_hit"):
|
||||
other.on_rocket_hit()
|
||||
print("R ON R")
|
||||
|
||||
func _process(delta):
|
||||
if ttl <= 0:
|
||||
get_parent().queue_free()
|
||||
else: ttl -= delta
|
||||
86
scripts/game_manager.gd
Normal file
@@ -0,0 +1,86 @@
|
||||
extends Node
|
||||
const STATE_STARTUP = 0
|
||||
const STATE_PLAYING = 1
|
||||
const STATE_GAMEOVER = 2
|
||||
const STAGE_TIME = 30
|
||||
var active_asteroids = 0
|
||||
var stage = 1
|
||||
var total_time = 0
|
||||
var slowmo_time = 5
|
||||
var score = 0
|
||||
var time_next_stage = 25
|
||||
var state = STATE_STARTUP
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
update_ui()
|
||||
|
||||
func game_over():
|
||||
state = STATE_GAMEOVER
|
||||
var restart_btn = game_manager.get_node_from_root("Node/UI/Restart")
|
||||
restart_btn.show()
|
||||
restart_btn.get_node("AnimationPlayer").connect("finished", self, "game_over_ts")
|
||||
restart_btn.get_node("AnimationPlayer").play("anim_in")
|
||||
func game_over_ts():
|
||||
OS.set_time_scale(0.03)
|
||||
|
||||
func reset():
|
||||
get_tree().reload_current_scene()
|
||||
stage = 1
|
||||
active_asteroids = 0
|
||||
total_time = 0
|
||||
slowmo_time = 0
|
||||
score = 0
|
||||
time_next_stage = 25
|
||||
OS.set_time_scale(1)
|
||||
state = STATE_PLAYING
|
||||
update_ui()
|
||||
|
||||
func get_node_from_root(node_name):
|
||||
return get_tree().get_root().get_node(node_name)
|
||||
|
||||
func _fixed_process(delta):
|
||||
total_time += delta
|
||||
if not state == STATE_GAMEOVER: slowmo_update(delta)
|
||||
stage_update(delta)
|
||||
|
||||
func stage_update(delta):
|
||||
time_next_stage -= delta
|
||||
if time_next_stage <= 0:
|
||||
get_node_from_root("Node/WorldAudio").play("level_up")
|
||||
stage += 1
|
||||
update_ui()
|
||||
time_next_stage = STAGE_TIME
|
||||
|
||||
func slowmo_update(delta):
|
||||
if slowmo_time >= 0:
|
||||
slowmo_time -= delta / OS.get_time_scale()
|
||||
else: set_slowmo(false)
|
||||
if OS.get_time_scale() != 1.0: get_node_from_root("Node/UI/SlowmoBar").update_value(slowmo_time)
|
||||
|
||||
func set_slowmo(slowmo, time=5, scale=0.5):
|
||||
if slowmo:
|
||||
slowmo_time = time
|
||||
OS.set_time_scale(scale)
|
||||
get_node_from_root("Node/UI/SlowmoBar").set_max_val(time)
|
||||
else:
|
||||
OS.set_time_scale(1)
|
||||
|
||||
func update_ui():
|
||||
var health = get_node_from_root("Node/Base").local_health
|
||||
get_node_from_root("Node/UI/ScoreLabel").update_text(stage, active_asteroids, health)
|
||||
|
||||
func get_active_asteroids():
|
||||
return active_asteroids
|
||||
|
||||
func add_asteroid():
|
||||
active_asteroids += 1
|
||||
update_ui()
|
||||
if active_asteroids > stage + 7:
|
||||
game_manager.set_slowmo(true, 15, 0.2)
|
||||
elif active_asteroids > stage + 5:
|
||||
game_manager.set_slowmo(true, 10, 0.25)
|
||||
elif active_asteroids > stage + 3:
|
||||
game_manager.set_slowmo(true, 10, 0.5)
|
||||
func remove_asteroid():
|
||||
active_asteroids -= 1
|
||||
update_ui()
|
||||
47
scripts/missile.gd
Normal file
@@ -0,0 +1,47 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
export var speed_mult = 100
|
||||
var speed = Vector2(0,-1)
|
||||
var origin
|
||||
var exploded = false
|
||||
|
||||
func init(_origin):
|
||||
randomize()
|
||||
origin = _origin
|
||||
speed = speed * speed_mult
|
||||
|
||||
func _ready():
|
||||
#OS.set_time_scale(0.21)
|
||||
get_node("Audio").play("missile_launch")
|
||||
set_process(true)
|
||||
get_node("CollisionArea").connect("area_enter", self, "_on_collision")
|
||||
randomize()
|
||||
|
||||
func _process(delta):
|
||||
move_forward(delta)
|
||||
if origin: check_bounds()
|
||||
if exploded and not get_node("Audio").is_voice_active(2): queue_free()
|
||||
|
||||
func move_forward(delta):
|
||||
move(speed.rotated(get_rot())*delta)
|
||||
|
||||
func _on_collision(other):
|
||||
if other.get_owner().has_method("on_rocket_hit"):
|
||||
other.get_owner().on_rocket_hit()
|
||||
var explosion_audio = "explosion_%s" % ceil(rand_range(1, 5))
|
||||
print("Playing %s" % explosion_audio)
|
||||
get_node("Audio").play(explosion_audio, 2)
|
||||
print("target destroyed")
|
||||
hide()
|
||||
get_node("CollisionArea").queue_free()
|
||||
exploded = true
|
||||
|
||||
func check_bounds():
|
||||
var origin_pos = origin.get_global_pos()
|
||||
var max_dist = origin_pos.distance_to(Vector2(0,0))
|
||||
var current_dist = get_global_pos().distance_to(origin_pos)
|
||||
if current_dist > max_dist:
|
||||
print("Missile out of bounds")
|
||||
queue_free()
|
||||
|
||||
|
||||
15
scripts/ray.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
extends Node2D
|
||||
|
||||
var colors = {
|
||||
"red" : Color(255,0,0, 0.5),
|
||||
"green":Color(0,255,0, 0.5)
|
||||
}
|
||||
var ray_color = colors.red
|
||||
func _ready():
|
||||
set_process(true)
|
||||
|
||||
func _process(delta):
|
||||
update()
|
||||
|
||||
func _draw():
|
||||
draw_line(get_pos(), get_pos()+Vector2(0,-1) * 10000, ray_color, 2.5)
|
||||
23
scripts/spawner_asteroids.gd
Normal file
@@ -0,0 +1,23 @@
|
||||
extends Node
|
||||
|
||||
const WAVE_TIME = 12
|
||||
onready var asteroid_scn = preload("res://scenes/asteroid.tscn")
|
||||
export var amount = 2
|
||||
var timer = 5
|
||||
|
||||
func _ready():
|
||||
set_process(true)
|
||||
|
||||
|
||||
func _process(delta):
|
||||
if game_manager.state == game_manager.STATE_GAMEOVER: return
|
||||
timer -= delta
|
||||
if timer <= 0:
|
||||
for i in range(amount + game_manager.stage):
|
||||
spawn_asteroid()
|
||||
timer = WAVE_TIME
|
||||
|
||||
func spawn_asteroid():
|
||||
var new_asteroid = asteroid_scn.instance()
|
||||
add_child(new_asteroid)
|
||||
game_manager.add_asteroid()
|
||||
BIN
sounds/explosion_1.wav
Normal file
BIN
sounds/explosion_2.wav
Normal file
BIN
sounds/explosion_3.wav
Normal file
BIN
sounds/explosion_4.wav
Normal file
BIN
sounds/explosion_5.wav
Normal file
BIN
sounds/level_up.wav
Normal file
BIN
sounds/loose_1.wav
Normal file
BIN
sounds/loose_2.wav
Normal file
BIN
sounds/loose_3.wav
Normal file
BIN
sounds/loose_4.wav
Normal file
BIN
sounds/missile_launch.wav
Normal file
BIN
sprites/asteroid.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
sprites/background.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
sprites/base.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
1
sprites/base.png.flags
Normal file
@@ -0,0 +1 @@
|
||||
filter=false
|
||||
BIN
sprites/cannon.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
2
sprites/cannon.png.flags
Normal file
@@ -0,0 +1,2 @@
|
||||
filter=false
|
||||
gen_mipmaps=false
|
||||
BIN
sprites/cover.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
sprites/logo.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
sprites/logo.png~
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
sprites/over.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
sprites/over.png~
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
sprites/progress.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
sprites/start_button.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
sprites/start_button.png~
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
sprites/try_again.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
sprites/under.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
274
stages/main_stage.tscn
Normal file
@@ -0,0 +1,274 @@
|
||||
[gd_scene load_steps=17 format=1]
|
||||
|
||||
[ext_resource path="res://scenes/base.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://sprites/background.png" type="Texture" id=2]
|
||||
[ext_resource path="res://scenes/spawner_asteroids.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://sprites/under.png" type="Texture" id=4]
|
||||
[ext_resource path="res://sprites/over.png" type="Texture" id=5]
|
||||
[ext_resource path="res://sprites/progress.png" type="Texture" id=6]
|
||||
[ext_resource path="res://sprites/try_again.png" type="Texture" id=7]
|
||||
[ext_resource path="res://animations/btn_in.tres" type="Animation" id=8]
|
||||
[ext_resource path="res://samplelibrary.tres" type="SampleLibrary" id=9]
|
||||
[ext_resource path="res://sprites/start_button.png" type="Texture" id=10]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "extends Label
|
||||
|
||||
export var template_str = \"%s %s\"
|
||||
func update_text(stage, asteroids, health):
|
||||
var new_text = template_str % [stage, asteroids, health]
|
||||
set_text(new_text)
|
||||
|
||||
"
|
||||
|
||||
[sub_resource type="Theme" id=2]
|
||||
|
||||
|
||||
[sub_resource type="GDScript" id=3]
|
||||
|
||||
script/source = "extends TextureProgress
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = \"textvar\"
|
||||
func set_max_val(max_val):
|
||||
set_max(max_val)
|
||||
|
||||
func update_value(val):
|
||||
if val > 0:
|
||||
if not is_visible(): show()
|
||||
set_value(val)
|
||||
else:
|
||||
hide()
|
||||
"
|
||||
|
||||
[sub_resource type="GDScript" id=4]
|
||||
|
||||
script/source = "extends TextureButton
|
||||
func _ready():
|
||||
connect(\"button_down\", self, \"restart\")
|
||||
game_manager.update_ui()
|
||||
connect(\"visibility_changed\", self, \"on_visibility_changed\")
|
||||
|
||||
func on_visibility_changed():
|
||||
randomize()
|
||||
print(\"WE ARE NOW VISIBLE? %s\" % is_visible())
|
||||
if is_visible():
|
||||
get_node(\"Audio\").play(\"loose_%s\" % ceil(rand_range(0.1,4)))
|
||||
|
||||
func restart():
|
||||
game_manager.reset()"
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
|
||||
resource/name = "default"
|
||||
length = 1.0
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:rect/pos")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0 ),
|
||||
"transitions": FloatArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 83, 54 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="GDScript" id=6]
|
||||
|
||||
script/source = "extends TextureButton
|
||||
|
||||
func _ready():
|
||||
if not game_manager.state == game_manager.STATE_STARTUP: on_button_clicked()
|
||||
connect(\"button_down\", self, \"on_button_clicked\")
|
||||
var anim_player = get_node(\"AnimationPlayer\")
|
||||
anim_player.connect(\"finished\", self, \"anim_finished\")
|
||||
anim_player.play(\"anim_in\")
|
||||
|
||||
func anim_finished():
|
||||
print(\"SETTING QTIME SACALE\")
|
||||
OS.set_time_scale(0)
|
||||
|
||||
func on_button_clicked():
|
||||
OS.set_time_scale(1)
|
||||
hide()
|
||||
"
|
||||
|
||||
[node name="Node" type="Node"]
|
||||
|
||||
[node name="Base" parent="." instance=ExtResource( 1 )]
|
||||
|
||||
transform/pos = Vector2( 211, 240 )
|
||||
|
||||
[node name="Background" type="CanvasLayer" parent="."]
|
||||
|
||||
layer = -2
|
||||
offset = Vector2( 0, 0 )
|
||||
rotation = 0.0
|
||||
scale = Vector2( 1, 1 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Background"]
|
||||
|
||||
transform/pos = Vector2( 0, -32.4442 )
|
||||
transform/scale = Vector2( 0.401467, 0.376672 )
|
||||
texture = ExtResource( 2 )
|
||||
centered = false
|
||||
|
||||
[node name="Spawner Asteroids" parent="." instance=ExtResource( 3 )]
|
||||
|
||||
[node name="UI" type="CanvasLayer" parent="."]
|
||||
|
||||
layer = 1
|
||||
offset = Vector2( 0, 0 )
|
||||
rotation = 0.0
|
||||
scale = Vector2( 1, 1 )
|
||||
|
||||
[node name="ScoreLabel" type="Label" parent="UI"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = 10.0
|
||||
margin/top = 10.0
|
||||
margin/right = 411.0
|
||||
margin/bottom = 40.0
|
||||
valign = 1
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
script/script = SubResource( 1 )
|
||||
template_str = "Stage: %s Asteroids: %s Health: %s"
|
||||
|
||||
[node name="SlowmoBar" type="TextureProgress" parent="UI"]
|
||||
|
||||
visibility/visible = false
|
||||
rect/scale = Vector2( 0.25, 0.25 )
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
size_flags/stretch_ratio = 2.0
|
||||
theme/theme = SubResource( 2 )
|
||||
margin/left = 357.0
|
||||
margin/top = 21.0
|
||||
margin/right = 485.0
|
||||
margin/bottom = 149.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = ExtResource( 4 )
|
||||
texture/over = ExtResource( 5 )
|
||||
texture/progress = ExtResource( 6 )
|
||||
mode = 4
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( -1, 8 )
|
||||
script/script = SubResource( 3 )
|
||||
|
||||
[node name="Restart" type="TextureButton" parent="UI"]
|
||||
|
||||
visibility/visible = false
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 83.0
|
||||
margin/top = 54.0
|
||||
margin/right = 339.0
|
||||
margin/bottom = 183.0
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
textures/normal = ExtResource( 7 )
|
||||
params/resize_mode = 0
|
||||
params/stretch_mode = 0
|
||||
script/script = SubResource( 4 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="UI/Restart"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/anim_in = ExtResource( 8 )
|
||||
anims/default = SubResource( 5 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = ""
|
||||
|
||||
[node name="Audio" type="SamplePlayer2D" parent="UI/Restart"]
|
||||
|
||||
params/volume_db = 0.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 1.0
|
||||
params/attenuation/max_distance = 2048.0
|
||||
params/attenuation/distance_exp = 1.0
|
||||
config/polyphony = 1
|
||||
config/samples = ExtResource( 9 )
|
||||
config/pitch_random = 0.0
|
||||
|
||||
[node name="Start" type="TextureButton" parent="UI"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 83.0
|
||||
margin/top = 54.0
|
||||
margin/right = 339.0
|
||||
margin/bottom = 182.0
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
textures/normal = ExtResource( 10 )
|
||||
params/resize_mode = 0
|
||||
params/stretch_mode = 0
|
||||
script/script = SubResource( 6 )
|
||||
|
||||
[node name="Label" type="Label" parent="UI/Start"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = 33.0
|
||||
margin/top = 142.0
|
||||
margin/right = 233.0
|
||||
margin/bottom = 156.0
|
||||
custom_colors/font_color = Color( 1, 0.533081, 0.121094, 1 )
|
||||
text = "PRO TIP: Tap and drag to aim!!!!"
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="UI/Start"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/anim_in = ExtResource( 8 )
|
||||
anims/default = SubResource( 5 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = ""
|
||||
|
||||
[node name="WorldAudio" type="SamplePlayer2D" parent="."]
|
||||
|
||||
params/volume_db = 0.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 1.0
|
||||
params/attenuation/max_distance = 2048.0
|
||||
params/attenuation/distance_exp = 1.0
|
||||
config/polyphony = 10
|
||||
config/samples = ExtResource( 9 )
|
||||
config/pitch_random = 0.0
|
||||
|
||||
|
||||