当前位置: 首页>>代码示例>>C#>>正文


C# Stats.ConsumeEnergy方法代码示例

本文整理汇总了C#中Stats.ConsumeEnergy方法的典型用法代码示例。如果您正苦于以下问题:C# Stats.ConsumeEnergy方法的具体用法?C# Stats.ConsumeEnergy怎么用?C# Stats.ConsumeEnergy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Stats的用法示例。


在下文中一共展示了Stats.ConsumeEnergy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ChargeCoroutine

    private IEnumerator ChargeCoroutine(Transform SpellOrb, Transform Caster, Stats casterStats, Action action)
    {
        float startTime = Time.realtimeSinceStartup;
        AnimInfo.Activated = true;
        casterStats.EnergyRegenPause = true;

        SpellFX newFx = OnActivateFX[0].StartSpell(SpellOrb);
        GrowingOrbAnimation goa = newFx.GetComponent<GrowingOrbAnimation>();
        goa.GrowingBallParent = this;

        //foreach(SpellFX fx in OnActivateFX)
        //    fx.StartSpell(SpellOrb);

        StartCoroutine(ChargeAnimationInfoCoroutine(startTime));

        // If not enough energy for the full cast
        float negativeEnergy = casterStats.ConsumeEnergy(ActivationCost);
        if (negativeEnergy > 0)
            AnimInfo.NegativeEnergyCast = true;

        float dt = 0;
        float charge = 0;

        // Wait till button is released
        while (action.IsDown() || AnimInfo.NegativeEnergyCast)
        {
            dt = Time.realtimeSinceStartup - startTime;

            if (dt > StartupTime)
            {
                AnimInfo.State = AnimationInfo.AnimState.Overcharging;
                // reduce energy
            }

            yield return null;
        }

        AnimInfo.InputReleased = true;
        dt = Time.realtimeSinceStartup - startTime;

        // Wait atleast till startupTime
        if (dt < StartupTime)
            yield return new WaitForSeconds(StartupTime - dt);

        // Dt and charge calculation
        if (AnimInfo.State == AnimationInfo.AnimState.Overcharging)
            charge = AnimInfo.AnimStateProgress;

        // Gather Direction
        Vector3 dir = SpellOrb.position - Caster.position;
        dir.Normalize();

        // Consume energy and launch
        casterStats.ConsumeEnergy(FullChargeCost * charge);
        Bullet bullet = Bullet.Launch(SpellOrb.position, dir, Mathf.Lerp(MinDamage, MaxDamage, charge));

        float scale = minSize + (maxSize-minSize)*charge;
        bullet.transform.localScale = new Vector3(scale, scale, scale);

        AnimInfo.State = AnimationInfo.AnimState.Cooldown;
        coolDownStarted = Time.realtimeSinceStartup;

        casterStats.EnergyRegenPause = false;

        // Replace by Cooldown Animation Handler
        yield return new WaitForSeconds(CooldownTime);

        resetAnimationInfo();
    }
开发者ID:Bahamutho,项目名称:GJ03-ParagonShmup,代码行数:69,代码来源:GrowingBall.cs


注:本文中的Stats.ConsumeEnergy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。