• 大小: 1.19MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-20
  • 语言: 其他
  • 标签:

资源简介

休闲游戏只有有体力才能进入关卡,每玩一关会扣除一个体力,当体力不足时不能继续游戏,需要购买。本功能是自动恢复体力,游戏离线也会恢复体力。

资源截图

代码片段和文件信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public class EnergyJudge : MonoBehaviour
{


    [SerializeField]
    private Text energyCountTxt;

    [SerializeField]
    private Text timeCountTxt;

    [SerializeField Header(“surPlusTime转化成时间格式之后的字符串“)]
    private string strTime;

    TimeSpan spanTime;

    [SerializeField Header(“恢复下一点体力剩余时间“)]
    private int surPlusTime = 0;//恢复下一点体力剩余时间

    [SerializeField Header(“600秒 即10分钟恢复一点体力“)]
    public int recoverTimeLength = 600;//600秒 即10分钟恢复一点体力
    void Start()
    {

        Debug.LogFormat(“进入游戏时间{0}“ DateTime.Now);

        energyCountTxt.text = GetEnergyCount.ToString();
        spanTime = DateTime.Now - GetEndGameTime();

        int totalLeaveTime = (int)Math.Floor(spanTime.TotalSeconds);//游戏离开总时间
        Debug.LogFormat(“游戏离线时长{0} 秒“ totalLeaveTime);

        int countRecover = totalLeaveTime / recoverTimeLength;//离线了多少个10分钟

        SetEnergyCount(GetEnergyCount + countRecover);//保存更新之后的体力值

        if (GetEnergyCount >= 20)//如果体力大于20  就把时间时间倒计时设置为不可见  同时不进行倒计时
        {
            SetGameobjectState(timeCountTxt.gameobject false);
        }
        else  //体力 还是没有恢复满
        {
            int seconds = totalLeaveTime % recoverTimeLength;//求出余数

            if (GetGameOverTime > seconds)
            {
                surPlusTime = GetGameOverTime - seconds;

            }
            else if (GetGameOverTime <= seconds)//上次退出时  剩余恢复体力时间,小于离线时间去整之后的余数,说明体力还可以加一点
            {
                surPlusTime = recoverTimeLength - (seconds - GetGameOverTime);
                SetEnergyCount(GetEnergyCount + 1);//保存更新之后的体力值  体力加1
                if (GetEnergyCount >= 20)
                {
                    SetGameobjectState(timeCountTxt.gameobject false);
                }
            }
            Debug.LogFormat(“恢复下一点体力剩余时间{0}“ surPlusTime);
        }

        FormatLongToTimeStr(surPlusTime);
        timeCountTxt.text = strTime;
        energyCountTxt.text = GetEnergyCount.ToString();
    }


    void Update()
    {
        //测试体力增加减少
        TestReduceEnergy();
        CalcTimer();
    }





    #region 计时器

    public float timer = 0;
    /// 
    /// 体力值是否满了  20为满
    /// 

    public bool IsFullEnergy
    {
        get
        {
            if (GetEnergyCount < 20)
            {
                return false;
            }
            return true;
        }
    }

    void CalcTimer()
    {
        if (IsFullEnergy)//如果体力是满的,就让恢复体力的剩余时间为0
        {

            timer = 0;
            surPlusTime = recoverTimeLength;
            timeCountTxt.text = strTime;//把转化成时间格式的字符串更新到UI
            SetGameobjectState(timeCountTxt.gameobject false);

            return;
        }
        else
        {
            SetGameobjectState(timeCountTxt.gameobject true);
        }
        time

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     138104  2019-12-16 20:54  EnergyJudge\1576500899(1).jpg

     文件     130899  2019-12-16 20:55  EnergyJudge\1576500956(1).jpg

     文件       7612  2019-12-16 20:30  EnergyJudge\EnergyJudge.cs

     文件    1067020  2019-12-16 20:42  EnergyJudge\GIF.gif

     目录          0  2019-12-16 20:56  EnergyJudge

----------- ---------  ---------- -----  ----

              1343635                    5


评论

共有 条评论

相关资源