【UE4 RTS】08-Setting up Game Clock

前言

本篇实现的效果是在游戏运行后能够记录当前的游戏时间(年月日时分秒),并且可以通过修改变量从而改变游戏时间进行的快慢。

效果

步骤

1. 在Blueprints文件夹中新建如下两个文件夹,分别命名为“GameSettings”、“Player”

将“RTS_CameraPawn_BP”和“RTS_PlayerController_BP”移动到“Player”文件夹中

 将“RTS_GameModeBase_BP”移动到“GameSettings”文件夹中

新建一个游戏状态基础

命名为“RTS_GameState_BP”

 新建一个文件夹,命名为“Library”

在该文件夹中新添加一个蓝图函数库

命名为“RTS_FuncLib”

 再添加一个蓝图接口

命名为“RTS_GameTime_IF”

 

 2. 打开蓝图函数库“RTS_FuncLib”,重命名新函数为“SetGameTime”

添加三个输入和两个输出,分别命名为“DeltaTime”、“GameSpeed”、“InitialGameTime”、“GameTime”、“DayCount”

添加如下节点

3. 打开蓝图接口“RTS_GameTime_IF”,将新函数重命名为“UpdateGameSpeed”

添加一个输入,命名为“SpeedMultiplier”,浮点类型

4. 打开游戏状态基础“RTS_GameState_BP”,新建一个宏,命名为“ReferneceCasts”

在宏中添加如下节点来获取玩家控制器“RTS_PlayerController_BP”的引用,其中变量“ControllerRef”是类型转换后引脚“As RTS Player Controller BP”提升为的变量。

在事件图表中添加如下节点来执行宏

 每一帧执行蓝图函数库中的创建的函数“SetGameTime”

将引脚“GameSpeed”和“InitialGameTime”提升为变量,然后命名为“GameSpeed”和“GameTime”,默认值分别为150、0

 新添加一个整型变量,命名为“DayCounter”

 设置“GameTime”和“DayCounter”

添加如下三个整型变量,分别命名为“Hours”、“Minutes”、“Seconds” ,均为公有变量,这个变量用于表示当前的游戏时间。其中,“Hour”的默认值设置为11,表示游戏一开始游戏处于中午。

在游戏开始时,根据时分秒设置初始的游戏时间(单位:小时)

 再添加三个整型变量,分别命名为“Year”、“Month”、“Day”,用于表示当前的游戏日期,均为公有变量,这里默认值分别设置为2023、8、10

 

 添加一个整型数组类型变量,命名为“GameDate”

在设置初始游戏时间后继续设置初始游戏日期

新建一个浮点型变量,命名为“DefaultGameSpeed”,默认值设为150

设置初始游戏速度:

新建一个函数,命名为“SetClock”

 该函数逻辑如下:

再添加一个函数,命名为“SetCalendar”

函数逻辑如下:

再事件图表中去调用这两个函数

在类设置中添加蓝图接口“RTS_GameTime_IF”

新添加一个浮点型变量,命名为“SpeedMutiplier”,默认值设为1

 在事件图表中添加如下节点

 添加一个事件调度器,命名为“GameSpeedControl”

 添加一个浮点类型输入,命名为“GameTime”

 调用该事件调度器

 5. 打开游戏模式基础“RTS_GameModeBase_BP”,设置游戏状态类为“RTS_GameState_BP”

此时运行游戏可以看到视口左上角打印的年月日时分秒,如下所示:

 如果想加快游戏时间,可以将游戏状态“RTS_GameState_BP”中的变量“DefaultGameSpeed”的默认值设置小一点。

 比如我把变量“DefaultGameSpeed”的默认值设置为0.025,游戏时间就加快了:

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

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

相关文章

递归神经网络简介

一、说明 说起递归神经网络,递归神经网络(RNN)主要包括以下几种类型: 简单的RNN(Simple RNN):最基本的RNN类型,每个时刻的输出都与前面时刻的状态有关。 循环神经网络(R…

软件第三方CMA、CNAS测试的目的和意义,信息化建设验收测试依据是什么?

在当今互联网时代,软件的第三方CMA、CNAS测试成为了软件行业的重要环节。那么,这个测试的目的和意义是什么呢?另外,信息化建设验收测试依据又是什么呢?    一、软件测试第三方CMA、CNAS测试的目的和意义 1、研究进展 随着软件行业的迅…

C++ 混合Python编程 及 Visual Studio配置

文章目录 需求配置环节明确安装的是64位Python安装目录 创建Console C ProjectCpp 调用 Python Demo 参考 需求 接手了一个C应用程序,解析csv和生成csv文件,但是如果要把多个csv文件合并成一个Excel,分布在不同的Sheet中,又想在一…

在Echarts中的tooltip上添加点击按钮

需求&#xff1a; 在Echarts的tooltips中添加点击按钮并可以鼠标悬停点击该按钮 功能实现&#xff1a; 在option中的tooltip添加enterable: true的属性&#xff0c;表示鼠标可以移入tooltip中再在formatter中添加 <button onclick"onTooltipsFun()" stylecursor:…

【Android】MVC,MVP,MVVM三种架构模式的区别

MVC 传统的代码架构模式&#xff0c;仅仅是对代码进行了分层&#xff0c;其中的C代表Controller&#xff0c;控制的意思 将代码划分为数据层&#xff0c;视图层&#xff0c;控制层&#xff0c;三层之间可以任意交互 MVP MVP是在MVC基础上改进而来的一种架构&#xff0c;其中的…

【深度学习注意力机制系列】—— CBAM注意力机制(附pytorch实现)

CBAM&#xff08;Convolutional Block Attention Module&#xff09;是一种用于增强卷积神经网络&#xff08;CNN&#xff09;性能的注意力机制模块。它由Sanghyun Woo等人在2018年的论文[1807.06521] CBAM: Convolutional Block Attention Module (arxiv.org)中提出。CBAM的主…

接口自动化测试框架及接口测试自动化主要知识点

接口自动化测试框架&#xff1a; 接口测试框架&#xff1a;使用最流行的Requests进行接口测试接口请求构造&#xff1a;常见的GET/POST/PUT/HEAD等HTTP请求构造 接口测试断言&#xff1a;状态码、返回内容等断言JSON/XML请求&#xff1a;发送json\xml请求JSON/XML响应断言&…

数据结构:各种结构函数参数辨析

&#xff08;一&#xff09;顺序表 1&#xff09;结构 typedef int SLDateType;typedef struct SeqList {SLDateType* data;int size;int capacity; }SeqList;SeqList ps { 0 }; 2&#xff09;函数参数 // 对数据的管理:增删查改 void SeqListInit(SeqList* ps); void Seq…

Linux系统目录结构介绍

Linux系统目录结构介绍 一、目录结构 Linux系统的目录结构是一颗倒状树&#xff1a; “/”表示最顶层的目录&#xff0c;叫做根目录。 &#xff08;1&#xff09;pwd可以显示当前所在的目录。 &#xff08;2&#xff09;cd可以切换当前的目录&#xff0c;例如&#xff0c;…

【Linux】TCP协议——传输层

目录 TCP协议 谈谈可靠性 TCP协议格式 序号与确认序号 窗口大小 六个标志位 确认应答机制&#xff08;ACK&#xff09; 超时重传机制 连接管理机制 三次握手 四次挥手 流量控制 滑动窗口 拥塞控制 延迟应答 捎带应答 面向字节流 粘包问题 TCP异常情况 TC…

【文献阅读笔记】深度异常检测模型

文章目录 导读相关关键词及其英文描述记录深度异常检测模型Supervised deep anomaly detection 有监督深度异常检测Semi-Supervised deep anomaly detection 半监督深度异常检测Hybrid deep anomaly detection 混合深度异常检测One-class neural network for anomaly detection…

心跳跟随的心形灯(STM32(HAL)+WS2812+MAX30102)

文章目录 前言介绍系统框架原项目地址本项目开发开源地址硬件PCB软件功能 详细内容硬件外壳制作WS2812级联及控制MAX30102血氧传感器0.96OLEDFreeRTOS 效果视频总结 前言 在好几年前&#xff0c;我好像就看到了焊武帝 jiripraus在纪念结婚五周年时&#xff0c;制作的一个心跳跟…