c# - 有没有办法制造各种类型的敌人?
问题描述
我正在制作一个统一的平台游戏。我需要一些具有不同模式的敌人。
例如,有一个史莱姆等待玩家并向玩家跳跃,一个蝙蝠在玩家周围飞行,还有一个地精射箭向玩家巡逻和射击。会有更多各种各样的敌人,但我不知道如何有效地制造和管理它们。
我能想到的唯一方法是为一种敌人制作一个脚本;但我认为这是效率低下的方式,并且如果我需要的话很难管理敌人(例如,我不能让敌人阵列)。有此类工作的示例或示例吗?
解决方案
您可以创建一个具有所有统计数据(如速度、伤害、健康...),并且还具有主要功能(如生成、死亡、攻击、移动、跳跃)的 Enemy 类。
您应该使这些值和函数尽可能简单,然后为更具体的(如蝙蝠或弓箭手)继承该脚本。你也可以让一些功能来自接口,无论你喜欢哪个。
关键是您可以将游戏中的所有敌人都视为“敌人”,而无需施放职业或检查其类型。
如果您不想为不同的敌人创建不同的类,那么您可以使 Enemy 脚本具有在编辑器中可见的值(如开关和选项),并创建一个系统,您可以通过更改来创建一个独特的敌人这些值(比如他能跳吗?他的移动速度有多快?他的精灵是什么?动画控制器?他造成多少伤害?他有二段跳吗?他能飞吗?他能往你脸上扔馅饼吗?等等。 .)
推荐阅读
- python - 如何使 file.split 找到一个多行字符串以将文件分成两部分?
- css - Select2 作为列表外观
- arrays - 将异构变量数组转换为结构的函数(保留名称)
- c - 使用 StringValueCStr 后是否释放内存?
- python-2.7 - 如何使用字典更新数据框中的一个值?
- json - 使用 Python 将数据帧转换为 JSON
- c - Linux ioctl for tty 提供 EPERM
- python - ValueError:无法将输入数组从形状 (6) 广播到形状 (1)
- javascript - 如何在 SAPUI5 快速视图中放置按钮?
- asp.net - Asp.Net Core 显式设置 Cookie 方案不起作用