贪吃的熊
频道主
关于跳转到指定时间的设计
!!!重要的事情说三遍,作者比较懒,午休时间不够,所以下面主要是思路和部分代码,不要直接复制!!!
!!!重要的事情说三遍,作者比较懒,午休时间不够,所以下面主要是思路和部分代码,不要直接复制!!!
!!!重要的事情说三遍,作者比较懒,午休时间不够,所以下面主要是思路和部分代码,不要直接复制!!!
/*设置一个功能,需要睡觉到第二天早上6点起床;
如果凌晨3点以后,会提示没必要睡觉了,继续嗨吧!(关键是这个时间睡觉的话,6点很难起床的)
如果在21点之前睡觉,提示 睡什么睡起来嗨!!
使用widget来实现
*/
<<link "睡觉">><<goSleep>><</link>>
<<widget "goSleep">>
/*首先判断时间*/
/*
已知参数
$nowGameTime 当前时间戳
$minute
$hour
$day
$month
$year
只需要判断hour即可
<<set $wakeUpTime =0>>
/*在Init里面初始化起床时间*/
可以用if也可以用switch来实现
*/
/*好吧,我后悔了,应该吧时间定义成一个数组,这样只需要重新定义一个就好了,但是这样还要改前面的代码,忍了*/
/*这些放到widget里面*/
<<set $wakeUpTimeYear=$year>>
<<set $wakeUpTimeMonty=$month>>
<<set $wakeUpTimeDay=$day>>
<<set $wakeUpTimeHour=$hour>>
<<set $wakeUpTimeMinute=$minute>>
<<if $hour>=3 && $hour <6>>
<<goto "继续嗨">>
<<elseif $hour>= 6 && $hour <21>>
<<goto "睡什么睡,起来high">>
<<else>>
/*剩下的只有21点到第二天3点前的这些时间了
理论上可以继续用elseif进行判断,不过为了清晰一些,我使用了新的if语句来判断
*/
<<if $hour >=21>>
/*零点之前*/
/*好麻烦,不想写了,需要判断临界值~*/
<<set $wakeUpTimeHour = 6>>
<<set $wakeUpTimeDay += 1>>
/*这里会出现2000年12月31日的情况,因为最初设定里面并没有31天的设定,所以需要进位,简单的判断,省略了~~*/
/*之后根据新的wakeupTime的数字,转换成时间戳的格式,跳转到对应的片段,并把$nowGameTime改成$wakeupTime就可以了*/
<<else>>
/*零点之后*/
<<set $wakeUpTimeHour = 6>>
/*参考上面的内容*/
<</if>>
<</widget>>
有兴趣的童鞋,可以补充完全贴到评论里面分享哈!~~
- 下载图片
- 复制图片
2024-08-12
浏览60
登录后评论
1
1
分享