From: Stephen Seo Date: Sat, 13 Apr 2024 07:16:11 +0000 (+0900) Subject: Work X-Git-Url: https://git.seodisparate.com/stephenseo/static/gitweb.css?a=commitdiff_plain;h=36cc125c7c68eb9b8dadc5d5b91d5055cebcc445;p=LD55 Work Add DungeonEntrance and DungeonGuard. Some scripting for main character's movement. --- diff --git a/DungeonEntrance.tscn b/DungeonEntrance.tscn new file mode 100644 index 0000000..1c3d0b7 --- /dev/null +++ b/DungeonEntrance.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=4 format=3 uid="uid://b55f770t7xs6a"] + +[ext_resource type="Texture2D" uid="uid://npjqgc3tdgs1" path="res://gimp/DungeonEntrance.png" id="1_vo6aq"] +[ext_resource type="Texture2D" uid="uid://nocjsuuft8qx" path="res://gimp/DungeonGuard.png" id="2_nujkm"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_18p8i"] +radius = 15.0 +height = 32.0 + +[node name="Node2D" type="Node2D"] + +[node name="DungeonEntrance" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(-1, -320) +texture = ExtResource("1_vo6aq") + +[node name="StaticBody2D" type="StaticBody2D" parent="DungeonEntrance"] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DungeonEntrance/StaticBody2D"] +polygon = PackedVector2Array(-160, 127, -159, -129, 160, -126, 161, 127, 21, 127, 21, 79, -19, 79, -19, 127) + +[node name="DungeonGuard" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(0, -208) +texture = ExtResource("2_nujkm") + +[node name="StaticBody2D" type="StaticBody2D" parent="DungeonGuard"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DungeonGuard/StaticBody2D"] +shape = SubResource("CapsuleShape2D_18p8i") diff --git a/MainLogic.gd b/MainLogic.gd index 6777f65..36234c1 100644 --- a/MainLogic.gd +++ b/MainLogic.gd @@ -17,6 +17,10 @@ const start_text = "You seek the elementals?\nProve your worth!\nShow the elemen const intro_text_00 = "The name's Gander Schwartz.\nBut my friends call me the \"Wandering Gander\"." const intro_text_01 = "I'm what most would call a \"third-rate summoner\",\nbut there's a reason for that.\nI summon \"items\", not \"beasts\"." const intro_text_02 = "Most summoners summon beasts to fight for them.\nI summon items to fight with, or even tools to solve puzzles in dungeons." +const intro_text_03 = "There is one dungeon I've been itching to conquer.\nThe elemental dungeon!" +const intro_text_04 = "If I beat the elemental dungeon,\nI'll be able to enhance my summons with elemental properties!" +const intro_text_05 = "No longer would I need to light an oil lantern with flint and steel,\nor keep lugging around leather skins for water!" +const intro_text_06 = "But the dungeon is a challenge.\nA challenge I hope to best with my wits and my item summoning!" const diamond_angle_rate = 1.2 const diamond_dist_rate = 50.0 @@ -33,7 +37,16 @@ enum StateT { Introduction_01, Introduction_01_post, Introduction_02, - Introduction_02_post + Introduction_02_post, + Introduction_03, + Introduction_03_post, + Introduction_04, + Introduction_04_post, + Introduction_05, + Introduction_05_post, + Introduction_06, + Introduction_06_post, + Dungeon_Entrance } static var state_dict = {} @@ -110,6 +123,22 @@ func _process(delta): update_text(intro_text_02, StateT.Introduction_02_post) StateT.Introduction_02_post: pass + StateT.Introduction_03: + update_text(intro_text_03, StateT.Introduction_03_post) + StateT.Introduction_03_post: + pass + StateT.Introduction_04: + update_text(intro_text_04, StateT.Introduction_04_post) + StateT.Introduction_04_post: + pass + StateT.Introduction_05: + update_text(intro_text_05, StateT.Introduction_05_post) + StateT.Introduction_05_post: + pass + StateT.Introduction_06: + update_text(intro_text_06, StateT.Introduction_06_post) + StateT.Introduction_06_post: + pass _: pass @@ -153,6 +182,51 @@ func _unhandled_input(event): state_dict["timer"] = 0.0 state_dict["text_idx"] = 0 main_label.text = intro_text_02 + StateT.Introduction_02_post: + state_dict["state"] = StateT.Introduction_03 + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = "" + StateT.Introduction_03: + state_dict["state"] = StateT.Introduction_03_post + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = intro_text_03 + StateT.Introduction_03_post: + state_dict["state"] = StateT.Introduction_04 + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = "" + StateT.Introduction_04: + state_dict["state"] = StateT.Introduction_04_post + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = intro_text_04 + StateT.Introduction_04_post: + state_dict["state"] = StateT.Introduction_05 + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = "" + StateT.Introduction_05: + state_dict["state"] = StateT.Introduction_05_post + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = intro_text_05 + StateT.Introduction_05_post: + state_dict["state"] = StateT.Introduction_06 + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = "" + StateT.Introduction_06: + state_dict["state"] = StateT.Introduction_06_post + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = intro_text_06 + StateT.Introduction_06_post: + state_dict["state"] = StateT.Dungeon_Entrance + state_dict["timer"] = 0.0 + state_dict["text_idx"] = 0 + main_label.text = "" _: pass diff --git a/gander_schwartz.gd b/gander_schwartz.gd new file mode 100644 index 0000000..bfd086a --- /dev/null +++ b/gander_schwartz.gd @@ -0,0 +1,48 @@ +extends CharacterBody2D + +@onready var animated = $AnimatedSprite2D + +const SPEED = 150.0 +const ANIM_DEADZONE = 0.3 + +func _physics_process(delta): + var vec2 = Vector2() + if Input.is_action_pressed("Left"): + vec2.x = -1.0 + elif Input.is_action_pressed("Right"): + vec2.x = 1.0 + if Input.is_action_pressed("Up"): + vec2.y = -1.0 + elif Input.is_action_pressed("Down"): + vec2.y = 1.0 + + if vec2.length() > 0.1: + vec2 = vec2.normalized() + else: + vec2.x = 0.0 + vec2.y = 0.0 + + if vec2.x > ANIM_DEADZONE: + animated.play("walking_right") + elif vec2.x < -ANIM_DEADZONE: + animated.play("walking_left") + elif vec2.y > ANIM_DEADZONE: + animated.play("walking_front") + elif vec2.y < -ANIM_DEADZONE: + animated.play("walking_back") + else: + match animated.animation: + "walking_right": + animated.play("facing_right") + "walking_left": + animated.play("facing_left") + "walking_front": + animated.play("facing_front") + "walking_back": + animated.play("facing_back") + _: + pass + + velocity = vec2 * SPEED + + move_and_slide() diff --git a/gander_schwartz.tscn b/gander_schwartz.tscn index 984d93f..4deb67f 100644 --- a/gander_schwartz.tscn +++ b/gander_schwartz.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=19 format=3 uid="uid://ktxqc7xtqkex"] +[gd_scene load_steps=21 format=3 uid="uid://ktxqc7xtqkex"] +[ext_resource type="Script" path="res://gander_schwartz.gd" id="1_6ob4s"] [ext_resource type="Texture2D" uid="uid://cv0qw4j1q78r8" path="res://gimp/GanderSchwartz_spritesheet.png" id="1_n7bds"] [sub_resource type="AtlasTexture" id="AtlasTexture_mj0lb"] @@ -157,14 +158,23 @@ animations = [{ "speed": 5.0 }] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_u3k2h"] +radius = 15.0 +height = 80.0 + [node name="GanderSchwartz" type="CharacterBody2D"] +motion_mode = 1 +script = ExtResource("1_6ob4s") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] texture_filter = 1 -position = Vector2(0, -24) +position = Vector2(0, -51) +scale = Vector2(2.11, 2.11) sprite_frames = SubResource("SpriteFrames_i348s") animation = &"walking_front" frame = 3 frame_progress = 0.126405 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -40) +shape = SubResource("CapsuleShape2D_u3k2h") diff --git a/gimp/DungeonEntrance.png b/gimp/DungeonEntrance.png new file mode 100644 index 0000000..24eaa40 Binary files /dev/null and b/gimp/DungeonEntrance.png differ diff --git a/gimp/DungeonEntrance.png.import b/gimp/DungeonEntrance.png.import new file mode 100644 index 0000000..8421bda --- /dev/null +++ b/gimp/DungeonEntrance.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://npjqgc3tdgs1" +path="res://.godot/imported/DungeonEntrance.png-d5377cb906979b90475313ef20f7ee37.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://gimp/DungeonEntrance.png" +dest_files=["res://.godot/imported/DungeonEntrance.png-d5377cb906979b90475313ef20f7ee37.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gimp/DungeonGuard.png b/gimp/DungeonGuard.png new file mode 100644 index 0000000..7ae6a27 Binary files /dev/null and b/gimp/DungeonGuard.png differ diff --git a/gimp/DungeonGuard.png.import b/gimp/DungeonGuard.png.import new file mode 100644 index 0000000..fb92cc7 --- /dev/null +++ b/gimp/DungeonGuard.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nocjsuuft8qx" +path="res://.godot/imported/DungeonGuard.png-dc8dcbb58e4d6814aac7a93a7908bbc9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://gimp/DungeonGuard.png" +dest_files=["res://.godot/imported/DungeonGuard.png-dc8dcbb58e4d6814aac7a93a7908bbc9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/main_scene.tscn b/main_scene.tscn index d4427ac..7b8fe7f 100644 --- a/main_scene.tscn +++ b/main_scene.tscn @@ -13,14 +13,14 @@ script = ExtResource("1_43no1") [node name="Camera2D" type="Camera2D" parent="."] [node name="MainLabel" type="Label" parent="Camera2D"] -z_index = 1 +z_index = 5 offset_left = -277.0 offset_top = -96.0 offset_right = 278.0 offset_bottom = 97.0 [node name="LowerLabel" type="Label" parent="Camera2D"] -z_index = 1 +z_index = 5 offset_left = -237.0 offset_top = 101.0 offset_right = 239.0