From c9abebbaf0212b02a90cc88129f888d49203e1d5 Mon Sep 17 00:00:00 2001 From: freewu32 <2217332562@qq.com> Date: Fri, 24 Jul 2020 14:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=80=AA=E7=89=A9=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=92=8C=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o.png-1efe533e58f8c71cd5432a9ffe791e0e.md5 | 3 + ....png-1efe533e58f8c71cd5432a9ffe791e0e.stex | Bin 0 -> 14027 bytes MainScene.tscn | 7 +- images/mota_tileset.tres | 16 +- project.godot | 8 +- scenes/Monster.tscn | 403 ++++++++++++++++++ scenes/floors/Floor1.tscn | 51 +-- scripts/DoorStaticBody2D.gd | 2 +- scripts/GameArchiveManager.gd | 18 +- scripts/MonsterBook.gd | 24 ++ scripts/MonsterSprite.gd | 41 ++ scripts/PlayerKinematicBody2D.gd | 2 +- 12 files changed, 505 insertions(+), 70 deletions(-) create mode 100644 .import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.md5 create mode 100644 .import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.stex create mode 100644 scenes/Monster.tscn create mode 100644 scripts/MonsterBook.gd create mode 100644 scripts/MonsterSprite.gd diff --git a/.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.md5 b/.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.md5 new file mode 100644 index 0000000..00ccef9 --- /dev/null +++ b/.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.md5 @@ -0,0 +1,3 @@ +source_md5="8e8d87361090ad2293d29fbc84740e92" +dest_md5="ece39710df6cdb65420858e51d9f920f" + diff --git a/.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.stex b/.import/logo.png-1efe533e58f8c71cd5432a9ffe791e0e.stex new file mode 100644 index 0000000000000000000000000000000000000000..81c7768974f667e3d5de1f08707a6448f1e2d753 GIT binary patch literal 14027 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 void: var player = get_player() player.position = self.player_info.position #更新楼层UI显示 + update_floor_view() + update_hp_view() + update_key_view() + +# 更新楼层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 diff --git a/scripts/MonsterBook.gd b/scripts/MonsterBook.gd new file mode 100644 index 0000000..8bef958 --- /dev/null +++ b/scripts/MonsterBook.gd @@ -0,0 +1,24 @@ +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] diff --git a/scripts/MonsterSprite.gd b/scripts/MonsterSprite.gd new file mode 100644 index 0000000..3dc7329 --- /dev/null +++ b/scripts/MonsterSprite.gd @@ -0,0 +1,41 @@ +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(): + 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: + dead() + 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 dead(): + GameArchiveManager.add_used_item(get_path()) + queue_free() + +# 计算伤害 +func get_hurt(hurt:int) -> int: + if hurt > 0: + return hurt + else: + return 0 diff --git a/scripts/PlayerKinematicBody2D.gd b/scripts/PlayerKinematicBody2D.gd index cd6d8a1..a1bff4f 100644 --- a/scripts/PlayerKinematicBody2D.gd +++ b/scripts/PlayerKinematicBody2D.gd @@ -50,4 +50,4 @@ func call_collider(collision:KinematicCollision2D): if collider is TileMap: return if collider.has_method("on_player_touched"): - collider.on_player_touched() + collider.call("on_player_touched",self)