效果
步骤
打开项目设置,重新设置玩家状态类为“MyGameState”
打开“MyGameState”,
点击类设置,选中父类为“GameStateBase”
接着创建一些变量:
(1)“TimeUnit”,浮点型,私有,默认值为1.0
(2)“Clockwork”,浮点型,私有,默认值为0.0
(3)“Seconds”,整型,公有,默认值为0
(4)“Minutes”,整型,公有,默认值为0
(5)“Hours”,整型,公有,默认值为0
(6)“GameTime”,整型数组,私有,默认值为0
(7)“Day”,整型,公有,默认值为1
(8)“Month”,整型,公有,默认值为1
(9)“Year”,整型,公有,默认值为1
(10)“GameDate”,整型数组,私有,默认值为0
(11)“DayTick”,整型,私有,默认值为0
添加如下节点:
将选中的节点重叠到函数
重命名该函数为“Set Clockwork”
双击打开“Set Clockwork”,重命名输入输出节点,设置为纯函数
添加一个新函数,命名为“Clock”,用于来计算当前的游戏时间(时分秒)
在函数内添加如下节点:
然后在事件图表中使用该函数
此时运行游戏就可以打印当前游戏的运行时间:
可以看到已经打印出了格式为时分秒的游戏时间,但是游戏时间走的太快了,我们可以修改“TimeUnit”这个变量的默认值为2.5
此时游戏里的一天(24h)就相当于现实世界的一分钟。
按照这样计算,我们修改“TimeUnit”这个变量的默认值为150,则游戏里的一天就相当于现实世界的一个小时。
此时的游戏时间就走的比较慢了:
创建一个新函数,命名为“Calendar”,用来计算当前的游戏日期
在函数内添加如下节点:
在事件图表中调用该函数:
调小变量“TimeUnit”的默认值,让游戏时间变得更快
此时运行游戏效果如下:
可以看到随着游戏时间的增加,游戏中的日期也会增加
为了能够在游戏开始前,能够根据用户设置的时间来设置游戏起始时间,我们在事件图表中添加如下节点:
我设置变量“Year”、“Month”、“Day”的默认值分别为2022、12、31,运行结果如下: