场景关卡和怪物的设计与开发
2024/10/1718 浏览综合
- 区域规划以及刷怪逻辑的整体设计
这里采用在场景中建立多个刷怪点,怪物从刷怪点刷出,并且沿着大致的路线向玩家进攻,消灭所有敌人则为通过当前波次,一直到消灭最后BOSS为通过当前关卡.除了正常的游戏关卡,也会设置一个练功房来测试各种技能物品效果
如果怪物区分地上怪物和天空怪物,需要先规划碰撞区域和刷怪路线,飞行路线可以穿过蓝色碰撞区域,而红色区域是都不能穿过,这是在开发过程中需要非常注意的.
- 开发方式
- 进入场景编辑器,在区域中划分碰撞区域.从右侧菜单选择地形-->碰撞-->不可行走为蓝色碰撞区域,意味着不能行走但是能飞过去的地方
- 在场景编辑界面,确认刷怪点. 从右侧菜单选择区域-->线.然后设计出怪物需要进攻的路线,注意区分陆地怪物和飞行怪物的路线
- 在数据编辑器中配置好怪物单位/关卡波数配置,如果需要直接关联路线,则在数据编辑器的路径中配置就行.这里采用触发编辑器中进行选择路线
- 在触发编辑器中配置刷怪函数,具体参考幸存者示例项目.这里需要在创建单位那里进行修改:把创建单位的点修改成我们地编上面对应的线,并且选择第1个点.这里有个比较方便的配置方式:使用一个数组变量存放所有的地编线,在刷怪的时候直接从数组中随机抽取一条路线刷新怪物,并且配置按照路线进行进攻就完成刷怪
- 练功房的配置,因为练功的怪物不需要移动和进攻,所以怪物单位血量设计成9999999,并且打上周期被动:每隔N秒执行回复血量999999,然后在对应的场景中配置刷怪点,直接在生成练功房怪物单位那绑定地编点就行
- 简化触发代码,这里在刷怪函数那传递个刷怪类型,使用switch进行区分,比如传入99的时候刷练功房的怪,除99以外的正常刷怪
- 创建好刷怪后,需要对场上怪物数量进行检测,这里使用一个全局计时器,每1秒对场上所有单位进行计算,如果怪物单位为0则通过当前波次,如果波次达到上限则直接通过关卡
- 在游戏中还有些功能,比如多倍速,关闭粒子特效,可以从界面编辑器里设置按钮操作.