コード例 #1
0
ファイル: HeroPhysics.cs プロジェクト: inonoa/tekiyoke2
    public static void HorizontalMoveInAir(this HeroMover hero, MoveInAirParams params_, float deltatime)
    {
        switch (hero.KeyDirection)
        {
        case 1:
            hero.velocity.X = Mathf.Min(
                hero.velocity.X + params_.HorizontalForce * deltatime,
                params_.HorizontalSpeedMax);
            break;

        case -1:
            hero.velocity.X = Mathf.Max(
                hero.velocity.X - params_.HorizontalForce * deltatime,
                -params_.HorizontalSpeedMax);
            break;

        case 0:
            if (hero.velocity.X > 0)
            {
                hero.velocity.X = Mathf.Max(
                    hero.velocity.X - params_.HorizontalResistance * deltatime,
                    0);
            }
            else
            {
                hero.velocity.X = Mathf.Min(
                    hero.velocity.X + params_.HorizontalResistance * deltatime,
                    0);
            }
            break;
        }
    }
コード例 #2
0
    public static IEnumerator SpawnKabezuris(this HeroMover hero, MoveInAirParams params_)
    {
        Try2SpawnKabezuri(hero);

        while (true)
        {
            float time = 0;
            yield return(null);

            while ((time += hero.TimeManager.DeltaTimeAroundHero) < params_.KabezuriInterval)
            {
                yield return(null);
            }

            Try2SpawnKabezuri(hero);
        }
    }