【UE4 RTS】11-HUD functionality Part1

前言

本篇实现了将游戏状态中的游戏时间和游戏日期通过蓝图接口的方式传递给控件蓝图,并且正确显示,另外还实现了控件蓝图界面上切换12小时和24小时制的游戏时间显示方式。

效果

步骤

一、显示游戏日期

1. 打开蓝图接口“RTS_GameTime_IF”

添加一个新函数,命名为“SetGameClock”

 添加函数的输入输出如下

继续新添加一个函数命名为“SetGameCalender”

添加如下输入输出

2. 打开控件蓝图“GameTime_HUD”

 在图表的类设置中添加蓝图接口“RTS_GameTimeIF”

 3. 打开游戏状态“RTS_GameState_BP”

打开函数“SetCalendar”

 

添加如下节点

 打开函数“SetClock”,添加如下节点

 此时,我们在游戏状态中的游戏日期和游戏时间就可以通过蓝图接口传递到控件蓝图了。

 4. 回到控件蓝图“GameTime_HUD”中,打开接口函数“SetGameCalendar”

将函数输入的GameDate提升为变量,设置输出的Success引脚为True

 在设计器中,选中用于显示第几日的文本,对其本文内容创建一个绑定函数。

 绑定函数命名为“Get_TextBlock_Day_GetDay”

 函数内容如下,其中,“DayLocal”和“DayTextLocal”是局部变量

 此时运行游戏可以看到控件“TextBlock_Day”会显示当前游戏日期中的日。

5. 新建一个枚举类型,命名为“MonthsNamesEnum”,用于表示每个月的月名

 添加如下枚举值

 6. 回到控件蓝图“GameTime_HUD”,对用于显示月份的文本控件的文本内容创建一个绑定函数,绑定函数命名为“Get_TextBlock_Month_GetMonth”

 新添加一个变量,命名为“MonthNameRef”,变量类型为“MonthsNamesEnum”

 函数“Get_TextBlock_Month_GetMonth”的逻辑如下

 此时运行游戏就可以看到游戏日期中的月份了。

在设计器中对用于显示游戏日期中的年份的控件创建一个绑定函数,绑定函数命名为“Get_TextBlock_Year_GetYear”

 

 函数逻辑如下,其中“YearLocal”为数组“GameDate”中的第三个元素提升为的局部变量

 此时运行游戏可以看到游戏日期中年月日都能够正确显示。

二、显示游戏时间

1. 打开控件蓝图“GameTime_HUD”中的接口函数“SetGameClock”

将输入的“GameTime”提升为变量

 增加按钮“Button_MC”的按钮点击事件

添加一个布尔类型的变量,命名为“IsMilitaryTime” ,默认值为True

 按钮“Button_MC”的点击事件逻辑如下,主要用于切换12小时和24小时制

 回到设计器中,对用于显示小时的文本控件的文本内容创建一个绑定函数

 重命名绑定函数的函数名为“Get_TextBlock_Hour_GetHour”

 首先获取数组“GameTime”中的第三个元素,提升为局部变量“HoursLocal”

添加一个字符串类型的局部变量,命名为“HoursTextLocal”,设置默认值为0

 添加如下节点

在设计器中对文本控件“TextBlock_Minute”的文本内容创建一个绑定函数

 绑定的函数命名为“Get_TextBlock_Minute_GetMinute”

 先将数组“GameTime”中的第二个元素取出提升为局部变量,命名为“MinutesLocal”

 新建一个局部变量“MinutesTextLocal”,设置默认值为0

 继续添加如下节点

对如下文本控件的文本内容创建一个绑定函数

 绑定函数命名为“Get_TextBlock_AMOrPM_GetSecondSpecial”

 先将数组“GameTime”中的第一个元素提升为局部变量,命名为“SecondSpecialLocal”

 新建一个局部变量,命名为“SecondSpecialTextLocal”,默认值为0

 继续在函数内添加如下节点

 在设计器中,对如下文本控件的文本内容创建一个绑定函数

 绑定函数命名为“Get_TextBlock_TimeSpace2_SetSpacerSpecial”

 创建一个局部变量“SpecialSpacerLocal”,默认值为“:”

 在函数内添加如下节点

 此时可以看到界面上已经能够正确显示当前游戏的日期和时间:

 如果将游戏状态“RTS_GameState_BP”中的变量“DefaultGameSpeed”和“GameSpeed”从150改为1的话,可以明显看到界面的时间变化加快了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sCrypt于8月12日在上海亮相BSV数字未来论坛

2023年8月12日,由上海可一澈科技有限公司(以下简称“可一科技”)、 临港国际科创研究院发起,携手美国sCrypt公司、福州博泉网络科技有限公司、复旦大学区块链协会,举办的BSV数字未来论坛在中国上海成功落下帷幕。 本次…

如何在windows电脑安装多个tomcat服务器和乱码问题

前提条件安装jdk 以17版本为例,将jdk8卸载干净 1.首先进入tomcat官网下载 tomcat网址 这里下载tomcat10为例子 1.1 这里选择方式一 下载解压版 2.解压后拷贝三份 分别命名为 8081、 8082、 8083 3.分别对每个tomcat执行以下操作 3.1 找到tomcat所在webapps文…

机器学习基础之《分类算法(2)—K-近邻算法》

一、K-近邻算法(KNN) 1、定义 KNN K:就是一个自然数 N:nearest,最近的 N:neighbourhood,邻居 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这…

深度学习入门-3-计算机视觉-卷积神经网络

一、计算机视觉 1.概述 计算机视觉作为一门让机器学会如何去“看”的学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场…

FastAPI和Flask:构建RESTful API的比较分析

Python 是一种功能强大的编程语言,广泛应用于 Web 开发领域。FastAPI 和 Flask 是 Python Web 开发中最受欢迎的两个框架。本文将对 FastAPI 和 Flask 进行综合对比,探讨它们在语法和表达能力、生态系统和社区支持、性能和扩展性、开发工具和调试支持、安…

电脑键盘打不了字按哪个键恢复?最新分享!

“有没有朋友知道电脑键盘为什么会莫名其妙就打不了字?明明用得好好的,突然就打不了字了,真的让人很迷惑!有什么方法可以解决吗?” 电脑键盘为我们的办公提供了很大的方便,我们可以利用键盘输入我们需要的文…

探索Chevereto图床:使用Docker Compose快速搭建个人图床

家人们!图片在今天的社交媒体、博客和论坛中扮演着至关重要的角色。然而,随着图片数量的增加,寻找一个可靠的图片托管解决方案变得越来越重要。Chevereto图床是一个备受赞誉的解决方案,而使用Docker Compose搭建它更是一种高效、可维护的方法…

Linux-C++开发项目:基于主从Reactor模式的高性能并发服务器

目录 1.项目介绍2.1项目部署2.2安装版本较高的编译器 2.项目开发过程2.1网络库模块开发2.1.1简单日志宏的实现2.1.2Buffer模块实现2.1.3Socket模块实现2.1.4Channel模块实现2.1.5Poller模块实现2.1.6TimerWheel模块实现2.1.7EventLoop模块实现2.1.8整合测试12.1.9LoopThread模块…

toB营销如何从品牌营销转向获客营销?

“解构纷享新营销,赋能用户新增长”,这是2023年下半年,纷享销客践行“以客户成功定义成功”价值观,针对企业用户市场营销领域的全国巡回研讨会,希望把纷享销客在成长路上经历的、收获的经验、踩过的“坑”与用户共享&a…

stack 、 queue的语法使用及底层实现以及deque的介绍【C++】

文章目录 stack的使用queue的使用适配器queue的模拟实现stack的模拟实现deque stack的使用 stack是一种容器适配器&#xff0c;具有后进先出&#xff0c;只能从容器的一端进行元素的插入与提取操作 #include <iostream> #include <vector> #include <stack&g…

简单线性回归:预测事物间简单关系的利器

文章目录 &#x1f340;简介&#x1f340;什么是简单线性回归&#xff1f;&#x1f340;简单线性回归的应用场景使用步骤&#xff1a;注意事项&#xff1a; &#x1f340;代码演示&#x1f340;结论 &#x1f340;简介 在数据科学领域&#xff0c;线性回归是一种基本而强大的统…

PHP实现在线年龄计算器

1. 输入日期查询年龄 2. php laravel框架实现 代码 /*** 在线年龄计算器*/public function ageDateCal(){// 输入的生日时间$birthday $this->request(birthday);// 当前时间$currentDate date(Y-m-d);// 计算周岁$age date_diff(date_create($birthday), date_create($…