使用前端时间 直接获取终端的时间,用来计时,这种方式是很多单机游戏使用的方式。 这种方式时存在漏洞的,例如我们记录进入关卡的时间(客户端时间),然后开始计时,每10分钟恢复1点体力。 当我修改了我的客户端时间之后,体力的值也随之变化了。 即使在后端做了校验,前端显示也会有问题,体验并不好。 或者如果我前端的时间更快,前端显示我已经恢复了体力,但是发送到后端校验时缺失败了。
2.
使用后端时间 另外一种方式时都使用后端时间,这又会有什么问题呢? 最明显的就是当前后端不在同一个时区的时,获取的时间并不一致。 另外就是后端的时间每次都去更新比较麻烦。 比如说我要显示倒计时,每次打开界面的时候都需要请求一次系统时间, 然后需要另外在开一个定时器,每秒做一次减一 *** 作。
3.
兼顾前后端时间 这是我们游戏最终才有的一种方法。
1.在页面使用Timer控件.2.设置属性:
Interval:步长.即每隔多长时间执行
Enabled:默认为False,需要时执行objtmr.Start(),或关闭计时objtmr.Stop()
如果设置为true,则窗体打开时自动计时.
3.在Timer.Tick()中定义执行的语句或调用方法.
private void objtmr_Tick(object sender, EventArgs e)
{
//语句,或调用方法
...
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)