diff --git a/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.md5 b/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.md5 new file mode 100644 index 0000000..c15d2b9 --- /dev/null +++ b/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.md5 @@ -0,0 +1,3 @@ +source_md5="426cdc1f72a1a968d6c5bc4771f56445" +dest_md5="291b35e22065f46e999fb828cbe4a7b9" + diff --git a/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.stex b/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.stex new file mode 100644 index 0000000..434d5df Binary files /dev/null and b/.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.stex differ diff --git a/Enemy1.tscn b/Enemy1.tscn index 8dc85de..7f3a572 100644 --- a/Enemy1.tscn +++ b/Enemy1.tscn @@ -1,40 +1,41 @@ -[gd_scene load_steps=19 format=2] +[gd_scene load_steps=20 format=2] [ext_resource path="res://KinematicEnemy1.gd" type="Script" id=1] -[ext_resource path="res://enemy/amg1_lf1.png" type="Texture" id=2] -[ext_resource path="res://enemy/amg1_lf2.png" type="Texture" id=3] -[ext_resource path="res://enemy/amg1_rt1.png" type="Texture" id=4] -[ext_resource path="res://enemy/amg1_rt2.png" type="Texture" id=5] -[ext_resource path="res://enemy/amg1_bk1.png" type="Texture" id=6] -[ext_resource path="res://enemy/amg1_bk2.png" type="Texture" id=7] -[ext_resource path="res://enemy/amg1_fr1.png" type="Texture" id=8] -[ext_resource path="res://enemy/amg1_fr2.png" type="Texture" id=9] -[ext_resource path="res://Enemy/KnightBody.gd" type="Script" id=10] -[ext_resource path="res://images/pixel_under_health.png" type="Texture" id=11] -[ext_resource path="res://images/health_bar.png" type="Texture" id=12] -[ext_resource path="res://images/pixel_health.png" type="Texture" id=13] +[ext_resource path="res://waepons/Wooden_sword.tscn" type="PackedScene" id=2] +[ext_resource path="res://enemy/amg1_lf1.png" type="Texture" id=3] +[ext_resource path="res://enemy/amg1_lf2.png" type="Texture" id=4] +[ext_resource path="res://enemy/amg1_rt1.png" type="Texture" id=5] +[ext_resource path="res://enemy/amg1_rt2.png" type="Texture" id=6] +[ext_resource path="res://enemy/amg1_bk1.png" type="Texture" id=7] +[ext_resource path="res://enemy/amg1_bk2.png" type="Texture" id=8] +[ext_resource path="res://enemy/amg1_fr1.png" type="Texture" id=9] +[ext_resource path="res://enemy/amg1_fr2.png" type="Texture" id=10] +[ext_resource path="res://Enemy/KnightBody.gd" type="Script" id=11] +[ext_resource path="res://images/pixel_under_health.png" type="Texture" id=12] +[ext_resource path="res://images/health_bar.png" type="Texture" id=13] +[ext_resource path="res://images/pixel_health.png" type="Texture" id=14] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 13.272, 16.0447 ) [sub_resource type="SpriteFrames" id=2] animations = [ { -"frames": [ ExtResource( 2 ), ExtResource( 3 ) ], +"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], "loop": true, "name": "LEFT", "speed": 5.0 }, { -"frames": [ ExtResource( 4 ), ExtResource( 5 ) ], +"frames": [ ExtResource( 5 ), ExtResource( 6 ) ], "loop": true, "name": "RIGHT", "speed": 5.0 }, { -"frames": [ ExtResource( 6 ), ExtResource( 7 ) ], +"frames": [ ExtResource( 7 ), ExtResource( 8 ) ], "loop": true, "name": "UP", "speed": 5.0 }, { -"frames": [ ExtResource( 8 ), ExtResource( 9 ) ], +"frames": [ ExtResource( 9 ), ExtResource( 10 ) ], "loop": true, "name": "DOWN", "speed": 5.0 @@ -55,6 +56,9 @@ extents = Vector2( 14.0223, 16.4362 ) scale = Vector2( 0.7, 0.7 ) script = ExtResource( 1 ) +[node name="Sword" parent="KinematicEnemy1" instance=ExtResource( 2 )] +scale = Vector2( 0.714286, 0.714286 ) + [node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicEnemy1" groups=[ "noheavy", ]] @@ -67,7 +71,9 @@ animation = "RIGHT" [node name="Body" type="Area2D" parent="KinematicEnemy1" groups=[ "noheavy", ]] -script = ExtResource( 10 ) +editor/display_folded = true +visible = false +script = ExtResource( 11 ) [node name="CollisionShape2D2" type="CollisionShape2D" parent="KinematicEnemy1/Body"] position = Vector2( -0.71698, 0 ) @@ -88,9 +94,9 @@ margin_right = 11.2376 margin_bottom = -18.5248 max_value = 150.0 value = 20.0 -texture_under = ExtResource( 11 ) -texture_over = ExtResource( 12 ) -texture_progress = ExtResource( 13 ) +texture_under = ExtResource( 12 ) +texture_over = ExtResource( 13 ) +texture_progress = ExtResource( 14 ) fill_mode = 1 nine_patch_stretch = true @@ -100,6 +106,10 @@ editor/display_folded = true [node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicEnemy1/Area2D"] shape = SubResource( 5 ) +[node name="Camera2D" type="Camera2D" parent="."] +scale = Vector2( 0.791308, 1.34034 ) +current = true +zoom = Vector2( 0.3, 0.3 ) [connection signal="area_entered" from="KinematicEnemy1/Body" to="KinematicEnemy1/Body" method="_on_Body_area_entered"] [connection signal="area_exited" from="KinematicEnemy1/Body" to="KinematicEnemy1/Body" method="_on_Body_area_exited"] [connection signal="area_entered" from="KinematicEnemy1/HitZone" to="KinematicEnemy1" method="_on_HitZone_area_entered"] diff --git a/KinematicEnemy1.gd b/KinematicEnemy1.gd index f843cb4..7c45964 100644 --- a/KinematicEnemy1.gd +++ b/KinematicEnemy1.gd @@ -6,6 +6,11 @@ var health:int = 150 var PlayerPos = Vector2(0,0) var CanHitPlayer:bool = false var BulletDamage:int = 10 +var side + +# +#func _ready(): +# $"../Sword".set_sword_position(17, "right") func _physics_process(delta): $HealthBar.set_value(health) @@ -29,29 +34,37 @@ func rotation_loop(): # Супер сложная математическая if(PlayerPos.x < 0 && PlayerPos.y < 0): # 1 ая четверть окружности if(abs(PlayerPos.y) < abs(PlayerPos.x)):# нижняя половина четверти $AnimatedSprite.play("LEFT") # Начать проигрывать анимацию + side = "left" elif(abs(PlayerPos.y) > abs(PlayerPos.x)):# верхняя половина четверти $AnimatedSprite.play("UP") + side = "up" else: $AnimatedSprite.stop() elif(PlayerPos.x > 0 && PlayerPos.y < 0): # 2 ая четверть четверти if(abs(PlayerPos.y) < abs(PlayerPos.x)):# нижняя половина четверти $AnimatedSprite.play("RIGHT") + side = "right" elif(abs(PlayerPos.y) > abs(PlayerPos.x)):# верхняя половина четверти $AnimatedSprite.play("UP") + side = "up" else: $AnimatedSprite.stop() elif(PlayerPos.x > 0 && PlayerPos.y > 0): # 3 ая четверть четверти if(abs(PlayerPos.y) < abs(PlayerPos.x)):# верхняя половина четверти $AnimatedSprite.play("RIGHT") + side = "right" elif(abs(PlayerPos.y) > abs(PlayerPos.x)):# нижняя половина четверти $AnimatedSprite.play("DOWN") + side = "down" else: $AnimatedSprite.stop() elif(PlayerPos.x < 0 && PlayerPos.y > 0): # 4 ая четверть четверти if(abs(PlayerPos.y) > abs(PlayerPos.x)):# нижняя половина четверти $AnimatedSprite.play("DOWN") + side = "down" elif(abs(PlayerPos.y) < abs(PlayerPos.x)):# верхняя половина четверти $AnimatedSprite.play("LEFT") + side = "left" else: $AnimatedSprite.stop() # Перестать проигрывать анимацию else: @@ -60,6 +73,7 @@ func rotation_loop(): # Супер сложная математическая func attack(): IsPlayerNear = true + func stop_attack(): $AnimatedSprite.stop() IsPlayerNear = false @@ -68,6 +82,10 @@ func _on_HitZone_area_entered(area): # Функция будущей атаки, var groups = area.get_groups() if (groups.has("player")): CanHitPlayer = true + print(side) + $Sword.set_sword_position(20, side) + $Sword.show() + $Sword.enable_sword() func _on_Area2D_area_entered(area): var groups = area.get_groups() @@ -79,3 +97,5 @@ func _on_HitZone_area_exited(area): var groups = area.get_groups() if (groups.has("player")): CanHitPlayer = false + $Sword.hide() + $Sword.disable_sword() \ No newline at end of file diff --git a/enemy/waepons/Wooden_sword.png b/enemy/waepons/Wooden_sword.png new file mode 100644 index 0000000..69abcdd Binary files /dev/null and b/enemy/waepons/Wooden_sword.png differ diff --git a/enemy/waepons/Wooden_sword.png.import b/enemy/waepons/Wooden_sword.png.import new file mode 100644 index 0000000..0167e89 --- /dev/null +++ b/enemy/waepons/Wooden_sword.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://enemy/waepons/Wooden_sword.png" +dest_files=[ "res://.import/Wooden_sword.png-5b2d518d7ba176daa681b994606cc83b.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 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..3c70456 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,197 @@ +[preset.0] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +graphics/32_bits_framebuffer=true +one_click_deploy/clear_previous_install=true +custom_package/debug="" +custom_package/release="" +command_line/extra_args="" +version/code=1 +version/name="1.0" +package/unique_name="" +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/xxxhdpi_192x192="" +launcher_icons/xxhdpi_144x144="" +launcher_icons/xhdpi_96x96="" +launcher_icons/hdpi_72x72="" +launcher_icons/mdpi_48x48="" +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=true +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 diff --git a/fonts/PixelFont.tres b/fonts/PixelFont.tres index 665f270..6c5abcc 100644 --- a/fonts/PixelFont.tres +++ b/fonts/PixelFont.tres @@ -10,4 +10,3 @@ font_data = ExtResource( 1 ) [resource] default_font = SubResource( 1 ) - diff --git a/scenes/playernode.tscn b/scenes/playernode.tscn index 864423c..4488139 100644 --- a/scenes/playernode.tscn +++ b/scenes/playernode.tscn @@ -13,4 +13,3 @@ script = ExtResource( 1 ) [node name="KinematicPlayer" parent="." instance=ExtResource( 3 )] position = Vector2( 689.217, 356.237 ) - diff --git a/waepons/Wooden_sword.gd b/waepons/Wooden_sword.gd new file mode 100644 index 0000000..5eec00d --- /dev/null +++ b/waepons/Wooden_sword.gd @@ -0,0 +1,134 @@ +extends KinematicBody2D + +var center_position:Vector2 = position +var sword_side +var radius +var speed = 1 +var last_rotation +var long = 2.5 +var attack = false + +func _ready(): + #set_sword_position(40, "left") + hide() + $Area2D/CollisionShape2D.disabled = true + +func disable_sword(): + $Area2D/CollisionShape2D.disabled = true + +func enable_sword(): + $Area2D/CollisionShape2D.disabled = true + +func rotation_loop(mv): # x^2 + y^2 = r^2 + if(sword_side == "up"): + + if (position.x > radius/long): + speed = -speed + if (position.x < -radius/long): + speed = -speed + if (position.y > radius): + speed = -speed + if (position.y < -radius): + speed = -speed + position.x += speed + if(speed > 0): + position.y = -sqrt(radius*radius - position.x*position.x) * speed + if(speed < 0): + position.y = sqrt(radius*radius - position.x*position.x) * speed + rotation_degrees += speed + + if(sword_side == "down"): + + if (position.x > radius/long): + speed = -speed + if (position.x < -radius/long): + speed = -speed + if (position.y > radius): + speed = -speed + if (position.y < -radius): + speed = -speed + position.x += speed + if(speed > 0): + position.y = sqrt(radius*radius - position.x*position.x) * speed + if(speed < 0): + position.y = -sqrt(radius*radius - position.x*position.x) * speed + rotation_degrees -= speed + + if(sword_side == "right"): + if (position.x > radius): + speed = -speed + if (position.x < -radius): + speed = -speed + if (position.y > radius/long): + speed = -speed + if (position.y < -radius/long): + speed = -speed + position.y += speed + if(speed > 0): + position.x = sqrt(radius*radius - position.y*position.y) * speed + if(speed < 0): + position.x = -sqrt(radius*radius - position.y*position.y) * speed + rotation_degrees += speed + + if(sword_side == "left"): + if (position.x > radius): + speed = -speed + if (position.x < -radius): + speed = -speed + if (position.y > radius/long): + speed = -speed + if (position.y < -radius/long): + speed = -speed + position.y += speed + if(speed > 0): + position.x = -sqrt(radius*radius - position.y*position.y) * speed + if(speed < 0): + position.x = sqrt(radius*radius - position.y*position.y) * speed + rotation_degrees -= speed + + +# if (position.x > radius): +# speed = -speed +# if (position.x < -radius): +# speed = -speed +# if (position.y > radius): +# speed = -speed +# if (position.y < -radius): +# speed = -speed +# position.x += speed * mv +# if(speed > 0): +# position.y = radius*radius - position.x*position.x +# if(speed < 0): +# position.y = -(radius*radius - position.x*position.x) + #print(position.x, " | ", position.y, " | ", mv) + +func stop_play(): + attack = false + +func set_sword_position(move, side): + attack = true + sword_side = side + radius = move + position.x = 0 + position.y = 0 + if(side == "left"): + position.x = -move + rotation_degrees = -135 + elif(side == "right"): + position.x = move + rotation_degrees = 45 + elif(side == "up"): + position.y = -move + rotation_degrees = -45 + elif(side == "down"): + position.y = move + rotation_degrees = 135 + last_rotation = rotation_degrees + print(position.x, " | ", position.y) + + + +func _physics_process(delta): + if(attack): + rotation_loop(delta) + pass \ No newline at end of file diff --git a/waepons/Wooden_sword.tscn b/waepons/Wooden_sword.tscn new file mode 100644 index 0000000..8ec90cb --- /dev/null +++ b/waepons/Wooden_sword.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://waepons/Wooden_sword.gd" type="Script" id=1] +[ext_resource path="res://enemy/waepons/Wooden_sword.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 9.68418, 3.46865 ) + +[node name="Sword" type="KinematicBody2D"] +scale = Vector2( 0.5, 0.5 ) +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) + +[node name="Area2D" type="Area2D" parent="." groups=[ +"waepon", +"1", +]] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2( 6.30433, -6.49831 ) +rotation = -0.785398 +scale = Vector2( 1, 1 ) +shape = SubResource( 1 ) + +[node name="Debug" type="Node" parent="."] +editor/display_folded = true + +[node name="DebugCamera" type="Camera2D" parent="Debug"] +current = true +zoom = Vector2( 0.1, 0.1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 6.30433, -6.49831 ) +rotation = -0.785398 +shape = SubResource( 1 )