コード例 #1
0
        protected override void OnPlayerBulletInit()
        {
            Collider = GetComponent <CircleCollider2D>();

            ActivateCollider = new FuncAfterDelay(this, () => Collider.enabled = true, EntranceAnimationTime);
            var fadeIn = new FadeTo(this, 0, Alpha, EntranceAnimationTime);

            VelocityChange = new VelocityChange(this, Vector2.zero, Vector2.zero, EntranceAnimationTime);
            var easeVelocityOut = new EaseOut(VelocityChange);

            EntranceAnimation = new ConcurrentGameTask(fadeIn, easeVelocityOut, ActivateCollider);
        }
コード例 #2
0
        private void InitAnimation()
        {
            const float FinalAlpha = 1.0f;

            ScaleTo grow = new ScaleTo(this, InitialScale, FinalScale, AnimationTime);

            FadeTo   fadeIn       = new FadeTo(this, InitialAlpha, FinalAlpha, FadeTime);
            Delay    fadeDelay    = new Delay(this, AnimationTime - (2 * FadeTime));
            FadeTo   fadeOut      = new FadeTo(this, FinalAlpha, 0, FadeTime);
            Sequence fadeSequence = new Sequence(fadeIn, fadeDelay, fadeOut);

            Animation = new ConcurrentGameTask(grow, fadeSequence);
            Animation.FinishSelf();
        }
コード例 #3
0
        protected override void OnInit()
        {
            var initialSize = GetComponent <Renderer>().bounds.size;

            float spawnMinX = SpaceUtil.WorldMap.Left.x + initialSize.x;
            float spawnMinY = (SpaceUtil.WorldMap.Bottom.y + SpaceUtil.WorldMap.Center.y) * 0.5f;

            SpawnMin = new Vector2(spawnMinX, spawnMinY);

            float spawnMaxX = SpaceUtil.WorldMap.Right.x - initialSize.x;
            float spawnMaxY = (SpaceUtil.WorldMap.Center.y + SpaceUtil.WorldMap.Top.y) * 0.5f;

            SpawnMax = new Vector2(spawnMaxX, spawnMaxY);

            var activateCanCollide = new GameTaskFunc(this, () => CanCollide = true);

            float fullBrightAlpha = Alpha;

            var entranceFadeIn   = new FadeTo(this, 0f, fullBrightAlpha, FadeTime);
            var entranceScaleIn  = new ScaleTo(this, float.Epsilon, LocalScale, FadeTime);
            var entranceSequence = new Sequence(entranceFadeIn, entranceScaleIn, activateCanCollide);

            var fadeOut            = new FadeTo(this, fullBrightAlpha, TravelAlpha, FadeTime);
            var fadeOutEase        = new EaseIn3(fadeOut);
            var scaleOut           = new ScaleTo(this, LocalScale, TravelSizeScale, FadeTime);
            var scaleOutEase       = new EaseIn3(scaleOut);
            var fadeOutConcurrence = new ConcurrentGameTask(fadeOutEase, scaleOutEase);

            TravelMove     = MoveTo.Default(this, 1.0f);
            TravelMoveEase = new EaseInOut(TravelMove);

            var fadeIn            = new FadeTo(this, TravelAlpha, fullBrightAlpha, FadeTime);
            var scaleIn           = new ScaleTo(this, TravelSizeScale, LocalScale, FadeTime);
            var fadeInConcurrence = new ConcurrentGameTask(fadeIn, scaleIn);

            TravelSequence = new Sequence(fadeOutConcurrence, TravelMoveEase, fadeInConcurrence, activateCanCollide);

            CanCollide         = false;
            LocalScale         = float.Epsilon;
            transform.position = SpaceUtil.WorldMap.Center;
            RunTask(entranceSequence);
        }
コード例 #4
0
        //private Delay DeactivateDelay { get; set; }
        //private Sequence FallbackDeactivate { get; set; }

        //public float FallbackDeactivationTime
        //{
        //    get => _fallbackDeactivationTime;
        //    set
        //    {
        //        const float TimeDelta = 5f / 60f;

        //        if (_fallbackDeactivationTime != value)
        //        {
        //            _fallbackDeactivationTime = value;
        //            DeactivateDelay.Duration = (value - FadeInTime) + TimeDelta;
        //            FallbackDeactivate.RecalculateDuration();
        //        }
        //    }
        //}

        protected override void OnPlayerBulletInit()
        {
            float worldHeight = SpaceUtil.WorldMap.Height;

            float spriteHeight = Sprite.size.y;
            float heightScale  = worldHeight / spriteHeight;

            transform.localScale = new Vector3(0f, heightScale, 1f);

            Alpha = 0f;

            Vector3 scaleInitial = new Vector3(0f, heightScale, 1f);
            Vector3 scaleFinal   = new Vector3(1f, heightScale, 1f);

            ScaleIn = new ScaleTo(this, scaleInitial, scaleFinal, FadeInTime);
            var fadeIn = new FadeTo(this, MaxAlpha, float.Epsilon); //  FadeInTime * 0.25f

            SpawnAnimation = new ConcurrentGameTask(ScaleIn, fadeIn);

            //DeactivateDelay = new Delay(this, FallbackDeactivationTime - FadeInTime);
            //var deactivate = new GameTaskFunc(this, DeactivateSelf);
            //FallbackDeactivate = new Sequence(concurrence, DeactivateDelay, deactivate);
        }
コード例 #5
0
        protected override void OnPermanentVelocityBulletInit()
        {
            Scale = SpaceUtil.WorldMap.Height;

            var scaleIn   = new ScaleTo(this, float.Epsilon, Scale, ScaleInTime);
            var scaleEase = new EaseIn3(scaleIn);

            MoveToCenter = new MoveTo(this, Vector3.zero, new Vector3(1f, 1f), ScaleInTime);

            var scaleAndMove = new ConcurrentGameTask(scaleEase, MoveToCenter);

            var calmExplosion = new GameTaskFunc(this, () => IsExploding = false);

            var fade     = new FadeTo(this, 0, FadeTime);
            var fadeEase = new EaseOut(fade);

            Sequence = new Sequence(scaleAndMove, calmExplosion, fadeEase);

            //ManagedMiscSprites = new List<ValkyrieSprite>();
            ManagedEnemies       = new TrackedPooledObjectSet <Enemy>();
            ManagedEnemyBullets  = new TrackedPooledObjectSet <EnemyBullet>();
            ManagedPlayerBullets = new TrackedPooledObjectSet <PlayerBullet>();
            ManagedPickups       = new TrackedPooledObjectSet <Pickup>();
        }