【UE4 塔防游戏系列】09-防御塔升级、击杀敌人增加金钱

news2024/11/24 16:58:01

目录

效果 

步骤

一、控件蓝图文本控件内容绑定金钱数 

二、防御塔改造

三、击杀敌人增加金钱 

四、防御塔升级功能


效果 

步骤

一、控件蓝图文本控件内容绑定金钱数 

1. 打开“TaFangGameMode”,新增一个变量命名为“PlayerMoney”,默认值设为20,用于表示玩家的金钱数。金钱可以用来升级建筑。

2. 在“WBP_Player”新添加图像和文本控件

对文本控件创建一个绑定函数

绑定函数内容节点如下,将游戏模式中存储的玩家金额数与本文控件进行绑定。

 二、防御塔改造

1. 打开Ps,新建一个500x500像素的画布

先隐藏图层0

将前景色和背景色都设置为白色

 选择渐变工具

 选择“前景色到透明渐变”,然后点击确定

 选择中心渐变

 创建一个新图层

 从中心向边缘拉出一个白色渐变的圆

 用椭圆选框工具选择中心的一块圆形区域

 删除

然后导出该光环图

 再将其导入到虚幻编辑器中,

 

 2. 新建一个材质,命名为“M_Corona”

打开“M_Corona”,混合模式设置为半透明

 将纹理附加到材质上

可以对该材质创建一个材质实例

可以在材质实例中修改Color参数

3. 打开“BP_TowerBase”,添加一个平面

 设置平面材质为我们刚创建的那个光环材质实例

设置骨架网格体不可视

 4. 在视口中将所有可以设置炮塔的地方都放置上“BP_TowerBase”

5. 回到“BP_TowerBase”,添加一个整形变量,命名为“Grade”,用于表示炮塔的等级,默认为0级

 在炮塔旋转前对炮塔的当前等级进行判断

三、击杀敌人增加金钱 

打开“TotalEnemyCategory”(敌人总类),新建一个浮点型变量,命名为 “EnemyValue”,表示敌人自身价值(敌人死亡后可以为玩家增加多少金钱),默认值设置为1。

当敌人死亡时增加“TaFangGameMode”中的“PlayerMoney”变量

四、防御塔升级功能

1. 我们希望点击防御塔区域弹出一个选项框,上面提示玩家当前是选择升级防御塔还是出售防御塔

因此我们先创建这样一个控件蓝图,命名为“WBP_TowerMenu”

打开“WBP_TowerMenu”,选择自定义

 设置高度为200

 添加如下控件

 在图表中添加一个整形变量,命名为“TowerGrade”,表示当前防御塔的等级

 设置为可编辑实例,生成时公开

 对升级按钮的文本内容创建一个绑定事件

 绑定函数逻辑如下:

 同样的,对出售按钮的文本内容创建一个绑定事件

当防御塔升级到最大等级时应该不能再继续升级了,因此对升级按钮的可视性创建一个绑定

 在图表中再添加一个变量,命名为“TowerActor”

变量类型为“BP_TowerBase”的对象引用,设置为可编辑实例和生成时公开

 

 2. 打开“BP_TowerBase”

 创建两个自定义事件,分别表示防御塔升级事件、防御塔卖出事件

3. 回到控件蓝图“WBP_TowerMenu”,添加升级和出售按钮的点击事件

 4. 回到“BP_TowerBase”,当防御塔被点击时:

 防御塔升级:(这里只修改防御塔模型和光圈的颜色,下一篇文章会具体调整防御塔的伤害、攻击范围、子弹速度等。)

 防御塔出售:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/766877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dp算法 力扣152乘积最大子数组

本文是Java代码!! 152. 乘积最大子数组 - 力扣(LeetCode) 一、题目详情 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该…

【C++】STL栈和队列基本功能介绍、题目练习和模拟实现(容器适配器)

stack && queue 基本功能介绍、练习和模拟实现 前言正式开始基本函数功能三道经典栈题目讲解最小栈栈的弹出压入顺序逆波兰表达式求值 模拟实现stackqueue deque 前言 本篇基本功能不会介绍太多,主要是说一下STL库中的接口,还是在这个网站上的&…

【动态内存错误详解和C的内存分区】

常见的动态内存错误 1.动态内存错误2.经典案例分析2.1案例一2.1.1**问题分析**2.1.2**修改错误** 2.2案例二2.2.1 原因分析2.2.2 解决问题 c/c内存分布1.2 内存分区简介1.2.1 栈区(stack)1.2.2 堆区(heap)1.2.3 全局(静态)区1.2.4 常量区1.2.5 代码区 1.动态内存错误 &#xf…

DETR (DEtection TRansformer)基于自建数据集开发构建目标检测模型超详细教程

目标检测系列的算法模型可以说是五花八门,不同的系列有不同的理论依据,DETR的亮点在于它是完全端到端的第一个目标检测模型,DETR(Detection Transformer)是一种基于Transformer的目标检测模型,由Facebook A…

幼儿园门禁安全升级,其实是这么做的!

幼儿园门禁安全是确保幼儿园校园安全的重要方面。为了有效管理出入人员和防止未经授权者进入,幼儿园门禁系统起到了至关重要的作用。 人脸识别门禁系统作为一种先进的技术方案,通过准确识别个体的面部特征,提供了更高的安全性和便捷性。 客户…

HeidiSQL使用

​ 1、点击新建后,选择在根分类创建会话 2、左侧在会话名称下出现的Unnamed,右键选择Rename即可重命名。右侧选择数据库类型(mysql),输入主机名(默认本机127.0.0.1),用户名&#xff…

webpack打包之 copy-webpack-plugin

copy-webpack-plugin 打包复制文件插件。 1、什么时候要使用? 在离线应用中,前端所有文件都需在在本地,有些文件(比如iconFont以及一些静态img)需要转为离线文件,这些文件可以直接引用更方便些,这就需要在打…

0基础小白自学Java“基础语法合集”,新手看这一篇就够了!!

零基础开始学习Java,我们应该如何入手呢?本文将分享以下的6点以帮助朋友们更好的学习。 1、Java注释: 注释是什么,我们为什么要学习注释?注释的分类?注释使用的注意事项? 注释前后对比 注释概念: 注释…

Python基础合集 练习28 (数值运算函数)

from this import d x -120 x的绝对值 x1 abs(x) 同时输出商和余数 y 7 y1 divmod(x1, y) print(y1) /进行幂余运算 z可以省略 (x**y)%z pow(x,y[,z]) pow(3, pow(3, 99), 10000) 四舍五入函数 d是保留小数位数,默认为0 round(x,[,d]) print(round…

什么是JSON

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <script>//编写一个JavaScript对象var obj{name:"蒋铭基",id:3,age:19}//将对象转化…

bclinux执行df命令无反应解决方法、bclinux执行df命令卡死解决方法、进程追踪strace命令说明

文章目录 说明解决方法首先排除不是系统问题验证挂载信息追踪df进程strace命令安装strace命令定位df命令卡在哪解决卡住的进程问题解决&#xff0c;验证 说明 额 今天收到反馈&#xff0c;虚拟机执行df命令卡住 卡住状态如下图 解决方法 首先排除不是系统问题 很简单&…

Ceph分布式文件系统——文件系统MDS接口 块存储RDB接口 对象存储RGW接口

创建 CephFS 文件系统 MDS 接口 服务端操作 1&#xff09;在管理节点创建 mds 服务 cd /etc/ceph ceph-deploy mds create node01 node02 node03 2&#xff09;查看各个节点的 mds 服务 ssh rootnode01 systemctl status ceph-mdsnode01 ssh rootnode02 systemctl status ceph…

ERROR 4: Unable to open EPSG support file gcs.csv.

报错&#xff1a; ERROR 4: Unable to open EPSG support file gcs.csv. Try setting the GDAL_DATA environment variable to point to the directory containing EPSG csv files. 解决办法&#xff1a; 将gdal编译文件的data目录设置为用户变量&#xff0c;再运行&#xff…

设计一个web服务器

完整资料进入【数字空间】查看——baidu搜索"writebug" ​ 课程设计目的 《Java&.net》是一门实践性较强的软件基础课程&#xff0c;为了学好这门课程&#xff0c;必须在掌握理论知识的同时&#xff0c;加强上机实践。本课程设计的目的就是要达到理论与实际应用…

前端实现:点击硬币实现硬币翻转动画,且动画停止时正反面随机

html: <div class"pic-box" ref"animationBox"><div class"boxes" click"handleTransform"><div class"box">// 硬币正面图片<img :class"coin1 ? img-pic : img-text" :src"coinPic&…

智能载波远程集抄系统

智能载波远程集抄系统是一种基于物联网技术的先进能源管理系统&#xff0c;它通过利用电力载波通信技术&#xff0c;实现对用户用电数据的远程抄表和监控。该系统不仅可以提高能源管理的效率和精度&#xff0c;同时还可以减少能源浪费和节省成本。 智能载波远程集抄系统主要由三…

Ceph 应用

Ceph 应用 一、创建 CephFS 文件系统 MDS 接口 1.服务端操作 1&#xff09;在管理节点创建 mds 服务 cd /etc/ceph ceph-deploy mds create node01 node02 node032&#xff09;查看各个节点的 mds 服务 ssh rootnode01 systemctl status ceph-mdsnode01 ssh rootnode02 syst…

不满足于RPC,详解Dubbo的服务调用链路

系列文章目录 【收藏向】从用法到源码&#xff0c;一篇文章让你精通Dubbo的SPI机制 面试Dubbo &#xff0c;却问我和Springcloud有什么区别&#xff1f; 超简单&#xff0c;手把手教你搭建Dubbo工程&#xff08;内附源码&#xff09; Dubbo最核心功能——服务暴露的配置、使用…

学习opencv.js(一)

opencv.js是什么 OpenCV.js 是 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;的 JavaScript 版本。OpenCV 是一个广泛使用的计算机视觉和图像处理库&#xff0c;提供了一系列功能强大的算法和工具&#xff0c;用于处理图像、视频、特征提取、对象识别等…

LAXCUS:面向AI的数据计算平台

随着人工智能技术的快速发展&#xff0c;数据计算需求呈现出爆炸式增长。为了满足这一需求&#xff0c;越来越多的企业和研究机构开始寻求更加高效、灵活和可扩展的分布式操作系统。在这个背景下&#xff0c;LAXCUS分布式操作系统应运而生&#xff0c;它是一个面向人工智能的数…