制作单机游戏体力系统

本文探讨了在单机游戏中实现体力系统的过程和挑战。由于没有服务器验证,设计依赖于设备时间进行体力恢复。作者指出,玩家可能通过调整时间作弊,因此设置了体力恢复的最大上限。体力恢复时间以分钟为单位存储,并在游戏重新进入时保持倒计时。文章涵盖了初始化、UI刷新和体力恢复计算的要点。
摘要由CSDN通过智能技术生成

做单机游戏的时候,制作人突然提了一个“体力系统”的需求。目前的很多游戏无论是网游还是单机,都有体力系统,我想可能是因为平衡玩家而限制游戏玩法或者是怕玩家无限制的玩游戏疲惫的原因吧。不管怎么说,让我们一起来研究一下体力系统应该怎么做。

本来我以为体力系统挺容易的,后来一做才发现并不是很简单。先在网上搜了一下有关体力的系统的设计思路,结果没有搜到相关信息,算了,自己设计吧。

对于单机游戏来说,因为没有联网的服务器验证,所以只能靠获取设备系统的时间来做体力恢复。这样的话,我在candycrash的小游戏中遇到过这种情况:当玩家体力耗尽时,把系统的时间向后调若干小时,那么再进游戏,游戏体力时满的,此时游戏再次用完后 ,仍可以继续往后调时间,体力继续恢复满了。但是,一旦用户把时间调回当前时间,那么倒计时显示的分钟数将计算为先前调时间最长的时间,也就是几百甚至上千上万分钟,要想继续玩只能向后大幅度调时间。这样做可能有些弊端,就是玩家一旦调整时间,会极大的限制玩家。所以经过商议,我确定将最大体力恢复上限设定一个固定值,当超过上限以后,按最大值倒计时,即使玩家向后调了时间,当改回系统时间的时候,仍然可以等待一点时间继续游戏。

体力系统的恢复时间需要涉及到存储,一旦退出游戏,再次进入游戏的时候仍然要显示体力恢复倒计时。我设计的体力恢复时间存储的最小单位是分钟(minute),当然,也可以以秒(second)为单位存储。存储的时间是体力不满时恢复到所有的体力时的时间点(忽略秒),而想到这个存储的内容,基本上也就解决了体力恢复系统的核心问题。 以下例子是以分钟为单位编写的。

1.首先是进入游戏时体力系统的初始化:

</pre><pre name="code" class="csharp">
</pre><pre name="code" class="csharp">public void DealPower(){
	//判断是不是第一次进游戏,如果是第一次进游戏那么体力给满格,记录数据
	if(!Pl
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值