UnrealEngine蓝图进阶学习笔记(六):按波次生成敌人

2020.04.03

一、创建敌人生成点及相关变量

1.部署生成点

左部面板搜索TargetPoint至场景(2250,0,0),ctrl+w进行复制至(0,2250,0)(-2250,0,0)(0,-2250,0),注意生成点尽可能替升90个单位以防character生成在地板中;

2.编辑游戏逻辑

在蓝图-游戏逻辑文件夹中打开GameMode,打开完整蓝图;

新建变量CurrentWave(目前波次,设置0),RemainSpawnNum(现存敌人数),此两个变量不点亮眼睛不予修改,后面变量均可修改;

BaseSpawnNum(目标敌人数,设置整数8),

DifficultyMultiplier(难度系数,设置1.5),SpawnFrequency(每只蜘蛛生成间隔,设置1),WaveFrequercy(每波生成间隔,设置5);

IsPlayerDead(玩家状态,设为布尔值不可修改)

二、获取随机生成点

3.随机生成点的相关设置

创建GetAllSqawnPoints函数(查找场上所有生成点),创建GetAllActorsOfClass节点,提升变量AllSpawnPoint,注意设置Actor类为TargetPoint

创建GetRandomSpawnPoint函数((为每只蜘蛛)设置随机生成点),拖拽Get复制节点,拖拽LastIndex上一索引节点,勾选纯函数常量;

创建SpawnWave函数(生成新一波敌人),每轮自增敌人数,拖拽生成Increment(++自增)节点,创建SetTimerByFunctionName(以函数名设置定时器)节点,每轮生成都调用以下生成单个敌人函数来生成;

创建SpawnSingleEnemy函数(生成单个敌人),拖拽创建SpawnActorFormClass节点;GetActorTransform节点,

此时的生成无法停止,也不知道生成时间,难度也无递增;

三、按波次于难度生成敌人

4.对所有生成的蜘蛛进行注册

设置Spider-Enemy变量AllEnemyRefs,点击小人调成九宫格数组类型;

编辑SpawnSingleEnemy函数,判定怪物有效在场则将生成的Actor加入到AllEnemyRefs数组中;

5.每波生成数及生成延迟的相关设置

创建IsCurrentWareComplete函数,勾选纯函数及常量;当场上怪物生成完了且场上敌人都被消灭,则当前波次结束;

创建SetNextWaveRemainSpawnNum函数,设置下一波生成敌人数;Round(舍入)节点;

在事件图表中创建自定义事件EndWave;

先创建生成RegisterEnemyDeath函数(蜘蛛死亡后注销),拖拽生成RemoveItem节点;

四、订阅玩家死亡事件于完善生成敌人功能

6.初始化第一波次

编辑事件图表,增加延迟后调用生成

7.绑定玩家死亡事件

获取玩家角色,AssignPlayerDead绑定玩家死亡事件的分发器;

8.生成前判定玩家是否死亡

9.敌人死亡后将其注销

编辑蜘蛛蓝图,调用游戏模式并转换类型,调用RegisterEnemyDeath函数,拖拽引出self对自身的引用;

编辑蜘蛛蓝图中的视图,选中跟节点,调节Pawn选项中自动控制Al设置为已放置在场景中或已生成(以前的调试为前者自动赋予Al,此时自动生成敌人为后者)

此时测试蜘蛛将随波次增量生成;

总结:

此节学习了TargetPoint生成点的使用,在游戏模式中完成相关波次的设置;

1.开始运行时设置基础敌人数,获取所有随机生成点,初始化调用第一波次;

2.获取玩家死亡事件生成器并设置相应变量,在蜘蛛生成前判定玩家是否死亡;

3.在SpawnWave函数中设置波数(用于计算该波生成数),用定时器调用生成单个敌人的函数;

4.在生成单个蜘蛛时时调用GetRandomSpawnPoint函数获取该只的生成点并生成Actor,并注册到敌人数组中(用于判断当前场上敌人是否死光;且该波敌人生成完并死亡后该波结束);

5.在SetNextWaveRemainSpawnNum函数设置下一波敌人生成数,下一波数 = 基础生成数 + 当前波数 x 难度系数;

6.蜘蛛死亡后在敌人数组中注销,当前波次完成后调用EndWave事件;

7.EndWave事件中当前波次结束后获取下一波生成数,延迟后调用SpawnWave函数再次开启新波次

UnrealEngine蓝图进阶学习笔记(六):按波次生成敌人相关推荐

  1. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  2. opencv进阶学习笔记3:像素运算和图像亮度对比度调节

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版目录: python+opencv进阶版学习笔记目录(适合有一定基础) 像素运算 要求两张图大小,以及格式(np ...

  3. JavaSE进阶学习笔记-目录汇总(待完成)

    声明:此博客来自于黑马程序员学习笔记,并非商用,仅仅是为了博主个人日后学习复习用,如有冒犯,请联系qq208820388立即删除博文,最后,来跟我一起喊黑马牛逼黑马牛逼黑马牛逼 JavaSE进阶学习笔 ...

  4. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  5. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  6. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  7. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  8. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

最新文章

  1. 好物推荐 | 直男の送礼指南(下周七夕,欲买从速
  2. Effective Java读书笔记六:方法
  3. 在没有安装OpenCV的电脑运行OpenCV程序
  4. ABAP OO的八大理由(四)
  5. DNN出错:The compiler failed with error code 1.
  6. Android之开源框架NineOldAndroids动画库
  7. 在微型计算机系统中,打印机一般是通过( ,2013湖南省计算机等级考试试题 二级C试题最新考试试题库...
  8. Eos的Wasm智能合约的局限性
  9. 摄氏温度和华氏温度换算(vb源码)
  10. 调节RStudio的代码字体大小
  11. [CM311-1A]-安卓设备视频分辨率 DPI 以及刷新率问题
  12. Visual Basic Script 程序参考手册-学习第1天:初步认识VBS,编写第一个Hello World程序,解决中文字符乱码问题,推荐参考书
  13. Google App Engine初探
  14. matplotlib绘图配色colormap问题
  15. 数值代数中的数学原理及其证明(一)
  16. 如何使用Xcode的Targets来管理开发和生产版本的构建
  17. 根据表达式序列(前缀、中缀、后缀)构建表达式树
  18. Machine Learning 简介与学习路线
  19. js[中英文排序-获取中文拼音]
  20. 张小龙回应一切!2019微信公开课一人撑到半夜,4小时演讲3万字实录

热门文章

  1. 第五章(3)行逻辑链接的顺序表
  2. Golang实现IP地址匹配
  3. 用certbot申请https证书
  4. [译] 超快速的分析器(一):优化扫描器
  5. storyboard(故事版)新手教程 图文详解 1.创建一个无约束的导航栏加选项卡(tabbar)故事版
  6. CIO圈子里的“老行家”:太平绅士赖锡璋
  7. python用cartopy包画地图_python – 使用Cartopy在地图上显示图像时的投影问题
  8. Pr零基础入门指南笔记一——项目、序列、预设
  9. 【芝麻背调百科】员工提交辞职信后又要求收回,公司能拒绝吗?
  10. android 获取build,分析,读取 android build.prop