Godot实现吸血鬼幸存者游戏
Godot类吸血鬼幸存者游戏部分基本功能实现,教程地址https://www.udemy.com/course/create-a-complete-2d-arena-survival-roguelike-game-in-godot-4/
1 | card_instance.selected.connect(on_upgrade_selected.bind(upgrade)) #使用bind可以直接传值 |
升级流程
experienceManager触发升级信号level_up(new_level: int)到upgradeManager,upgradeManager实例化upgradeScreen同时生成几个随机升级项调用set_ability_upgrades方法设置升级项(实例化upgradeCardScene并设置属性,实例化后会使用get_tree().paused = true暂停游戏,upgradeCardScene需设置process中mode为Always);连接selected信号同时将升级数据通过bind方法传递过去(selected信号为选择升级项后触发,该信号会触发upgrade_selected信号);连接upgrade_selected信号。
当玩家选择一项升级后触发selected信号解除暂停游戏同时在selected信号中触发upgrade_selected(upgrade: AbilityUpgrade)信号进行升级
各信号作用
level_up(new_level: int):位于experienceManager中,负责experienceManager与upgradeManager通信 experienceManager触发
selected: 位于abilityUpgradeCard中,负责动画以及升级数据传递 on_gui_input(event:InputEvent)中单击左键选择升级项触发
upgrade_selected(upgrade: AbilityUpgrade):位于upgradeScreen中,负责实际升级 selected中触发
攻击/受伤流程
怪物通过hurtBoxComponent接受伤害并调用healthComponent方法扣除血量;武器通过ability中hitBoxComponent设置伤害
hurtBoxComponent、hitBoxComponent均为场景且其中未设置collision,由具体敌人或ability设置collision
敌人未使用hitBoxComponent仅用单独的CollisionShape2D造成伤害且伤害写死在player中为1
玩家受伤未使用hurtBoxtComponent而是单独的CollisionArea2D且怪物伤害均为1



