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); }
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(); }
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); }
//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); }
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>(); }