【UE4 RTS】08-Setting up Game Clock

news2024/12/28 18:13:18

前言

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

效果

步骤

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.coloradmin.cn/o/859805.html

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

相关文章

【docker】设置 docker 国内镜像报错,解决方案

一、报错: [rootlocalhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.二、原因&#xf…

Excel---成绩相同者,名次并列排列,三步搞定

需求:一张成绩表,共341行(340条数据,第一条为标题),根据成绩进行排序,成绩相同进行名次并列 一、选择生成结果的位置,我这里点击了一下E2单元格 二、公式—>插入–>rank函数 数值:D2 表示…

IDEA新建类时自动设置类注释信息,署名和日期

IDEA设置路径 File --> Settings --> Editor --> File and Code Templates --> Include --> File Header 官方模板 这里 ${USER} 会读取计算机的用户名 ${DATE}是日期 ${TIME}是时间 /*** Author ${USER}* Date ${DATE} ${TIME}* Version 1.0*/

成都优优聚拥有丰富美团代运营经验!

成都优优聚美团代运营是一家专业的电商运营服务机构,致力于帮助商家提升线上业绩,增加销售额。他们以优良的售后服务和卓越的业绩,赢得了众多商家的认可和信赖。 与成都优优聚美团代运营合作的好处是多方面的。首先,他们拥有一支经…

java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显…

兰州https证书申请

https证书是由CA认证机构颁发的数字证书,可以为域名网站或者公网IP网站提供信息加密服务,正规CA认证机构签发的https证书可以兼容99%的主流浏览器和IOS、Windows系统,同样,现在流行的小程序也需要https证书。那么,该怎…

又一重磅数据将要来袭,今晚聚焦CPI

KlipC报道:北京时间周四20:30公布的美国7月消费者价格指数(CPI)报告。 KlipC的合伙人Andi D表示:“市场正在密切关注美国CPI数据,最新的消费者物价指数读数可能会改变人们对美联储今年是否再次加息的预期。 摩根大通的分析师表示&…

Java基础---自动装箱拆箱导致的NullPointerException问题

目录 问题描述 代码 简单分析 问题描述 在返回一个类型是boolean的方法中,将从map里面取出的Boolean类型的值直接返回,代码一运行,执行到这立即出现了空指针问题(问题一)于是就使用log分析,将字符和Bool…

Java之深入探究IO流操作与Lambda表达式

深入探究Java IO流操作与Lambda表达式的优雅结合 1. IO流1.1 IO流的概念1.2 IO流的分类1.3 常见的IO流操作1.3.1 字节流操作1.3.2 字符流操作1.3.3 缓冲流 2. Lambda表达式2.1 Lambda 表达式使用条件2.2 Lambda 表达式的分类2.3 Lambda 表达式在 IO 流操作中的应用2.4 常见的 I…

虹科新品 | 振动监测:提升风能行业效率与安全!

一、 CTC概览 服务于工业振动分析市场ISO 9001认证设计和测试以满足工业环境的实际需求无条件终身保修兼容所有主要数据采集器、分析仪和在线系统美国制造 二、风能行业:为什么要进行监测? 在风能行业,振动监测是一项至关重要的节约成本和安…

详解低代码和无代码的区别

低代码是近几年被炒的很热的一个概念,与之同样热议的还有无代码。那么针对这两个概念,背后的价值、面向的人群、发展的趋势是什么? 一、低代码 vs 无代码 低代码是什么? 低代码(Low-Code)这一概念是2014年一…

js 额外知识

加油,嘎嘎嘎 🤣 💕💕💕 文章目录 一、 with二、 eval 函数三、严格模式三、严格模式的限制 一、 with with语句 扩展一个语句的作用域链。 会形成一个自己的作用域不建议使用with语句,因为它可能是混淆错误…

Centos7.9_解决每次重启机器配置的java环境变量都需要重新source /etc/profile才生效的问题---Linux工作笔记060

这种情况需要把环境变量,java的环境变量在/root/.bashrc文件中也放一份,注意这个文件是隐藏的,默认是,需要进行ls -a才能显示. #jdk export JAVA_HOME/lib/jvm export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH${JAVA_HOME}/b…

STM32F105RCT6 -- ST-Link ITM Trace printf 打印日志

1. STM32 可以配置UASRT,使用串口来打印日志,还有另外一种方式,使用ITM 调试功能来打印日志, 主要使用到的三个函数 core_cm3.h 1.1 发送函数 static __INLINE uint32_t ITM_SendChar(uint32_t ch),相当于串口的发送函…

锚框【目标检测】

生成多个锚框 假设输入图像高为h,宽为w,我们以图像每个像素为中心生成不同形状的锚框,缩放比 s∈(0,1],宽高比为r>0。那么锚框的宽度和高度分别为和。当中心位置给定时, 已知宽和高的锚框是确定的。缩放比为锚框高与图像高的比值,然后得到一个正方形锚框面积。 ​​…

pytest接口自动化测试框架搭建的全过程

目录 一. 背景 二. 基础环境 三. 项目结构 四、框架解析 pytest是Python的一种单元测试框架,可用来组织用例执行,用例断言,下面这篇文章主要给大家介绍了关于pytest接口自动化测试框架搭建的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下 一. 背景 Pyte…

sql高频面试题-连续完成两个指定动作的用户统计

用户行为分析 业务背景 某购物APP最近上线了一个新功能,用户签到后可以跳转到大转盘抽奖,抽奖获得的奖金可以抵消购物的费用,以此来培养用户使用app的习惯。 数据表介绍 现有一张用户行为表action_log,主要字段如下&#xff0c…

7天获英国名校邀请函|CSC青骨获批成功案例补记

Q老师要求2周内拿到邀请函且必须是世界排名前200名的高校。我们在第7天就获得了世界百强名校-英国兰卡斯特大学的邀请函,导师的研究方向完全契合,提前实现了Q老师的委托目标,使其顺利获批CSC青骨项目。特别提示:青骨项目国内派出院…

5. 服务发现

当主机较少时,在抓取配置中手动列出它们的IP地址和端口是常见的做法,但不适用于较大规模的集群。尤其不适用使用容器和基于云的实例的动态集群,这些实例经常会变化、创建或销毁的情况。 Prometheus通过使用服务发现解决了这个问题&#xff1…

测试人员该怎样写软件缺陷报告?

软件测试过程中,每个公司都制订了软件的缺陷处理流程,每个公司的软件缺陷处理流程不尽相同,但是它们遵循的最基本流程是一样的,都要经过提交、分配、确认、处理、复测、关闭等环节,如图1所示。 缺陷处理流程 关于图1所…