Beispiel #1
0
    // Use this for initialization
    void Start()
    {
        explosion = GetComponentInChildren <ExplosionAnimation>();

        startPosition = transform.position;

        game = Camera.mainCamera.GetComponent <GameController>();

        foreach (Transform child in transform)
        {
            if (child.name == "UpThruster")
            {
                upThruster = child.GetComponent <Thruster>();
            }
            else if (child.name == "DownThruster")
            {
                downThruster = child.GetComponent <Thruster>();
            }
            else if (child.name == "RightThruster")
            {
                rightThruster = child.GetComponent <Thruster>();
            }
        }

        movementOnScreenToCFactor = (transform.position.x / Gamma.GetGamma(game.GetCSpeed()));
    }
Beispiel #2
0
        public Panel(ContentManager content, Vector2 position, Stage stage, string itemType)
            : base(content, position, stage, "Panel")
        {
            _contentManager       = content;
            _health               = 1;
            _currentGlowFrame     = 0;
            _glowAnimatingforward = true;

            PlayerSpriteCollection spritecollection;
            Texture2D turrettileset;

            spritecollectionlist = new List <PlayerSpriteCollection>();
            turrettileset        = content.Load <Texture2D>("Sprites/Enemies/Panel");
            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion2"), WorldPosition, 5, 150, Color.White, 1f, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion2");

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(SwapColor(turrettileset, new Color(192, 32, 0), new Color(184, 28, 12)), position, 3, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(SwapColor(turrettileset, new Color(192, 32, 0), new Color(228, 68, 52)), position, 3, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(turrettileset, position, 3, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            _elapsedOpenCloseTime = FrameOpenCloseTime;

            _itemType = itemType;
        }
Beispiel #3
0
        protected override void Update(GameTime gameTime)
        {
#if !IOS
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }
#endif

            // TODO: Add your update logic here
            var tstate = TouchPanel.GetState(Window).GetState();
            var mstate = Mouse.GetState(Window);
            foreach (var touchpoint in tstate)
            {
                if (!explosions.ContainsKey(touchpoint.Id))
                {
                    var offsetPos = Vector2.Subtract(touchpoint.Position, new Point(64, 128).ToVector2());
                    var explosion = new ExplosionAnimation(new Point(128), new Point(12, 1), offsetPos, touchpoint.Id);
                    explosion.AnimationFinished += Explosion_AnimationFinished;
                    explosions.Add(touchpoint.Id, explosion);
                }
            }
            if (ButtonState.Pressed == mstate.LeftButton)
            {
                var id = explosions.Count + 1;
                if (!explosions.ContainsKey(id))
                {
                    var offsetPos = Vector2.Subtract(mstate.Position.ToVector2(), new Point(64, 128).ToVector2());
                    var explosion = new ExplosionAnimation(new Point(128), new Point(12, 1), offsetPos, id);
                    explosion.AnimationFinished += Explosion_AnimationFinished;
                    explosions.Add(id, explosion);
                }
            }
            base.Update(gameTime);
        }
Beispiel #4
0
        public Cannon(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            PlayerSpriteCollection spritecollection;

            spritecollectionlist = new List <PlayerSpriteCollection>();
            Texture2D cannonTileset = content.Load <Texture2D>("Sprites/Enemies/Cannon");

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(TextureHelper.SwapColor(cannonTileset, new Color(192, 32, 0), new Color(184, 28, 12)), position, 5, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(TextureHelper.SwapColor(cannonTileset, new Color(192, 32, 0), new Color(228, 68, 52)), position, 5, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(cannonTileset, position, 5, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            CollisionIsHazardous = false;

            _health = 15;

            _currentFrame     = 0;
            _animatingforward = true;

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion1"), position, 36, 36, 3, 150, Color.White, 1f, false, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion1");

            projectileTexture = content.Load <Texture2D>("Sprites/Projectiles/basicbullet");

            _gun = new EnemyGun(this, projectileTexture);
        }
        public PlayerItem(ContentManager content, Vector2 position, Stage stage, string itemType) : base(content, position, stage, itemType)
        {
            _imageTexture  = content.Load <Texture2D>(string.Format("Sprites/Enemies/PlayerItem{0}", itemType));
            ExplosionSound = content.Load <SoundEffect>("Sounds/playeritem");
            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion1"), this.WorldPosition, 36, 36, 3, 150, Color.White, 1f, false, false, this.CurrentStage);
            CollisionIsHazardous = false;
            VulnerableToBullets  = false;

            switch (itemType)
            {
            case "MachineGun":
                Gun = new PlayerGun();
                Gun.Initialize(content, GunType.MachineGun);
                break;

            case "RapidGun":
                Gun         = new PlayerGun();
                Gun.GunType = GunType.Rapid;
                break;

            case "SpreadGun":
                Gun = new PlayerGun();
                Gun.Initialize(content, GunType.Spread);
                break;
            }

            Velocity.X     = 0.7f;
            IsOnGround     = true;
            JumpInProgress = true;
            IsJumping      = true;

            JumpLaunchVelocity  = -1200f;
            GravityAcceleration = 300f;
            MaxJumpTime         = 0.6f;
        }
    public void Explode()
    {
        OnExplode();
        GameObject go = ExplosionPoolManager.Instance.GetPooledObject(explosionTyp);

        if (go != null)
        {
            go.transform.position = this.transform.position;
            go.SetActive(true);
            ExplosionAnimation explosionAnimation = go.GetComponent <ExplosionAnimation>();                     // pooled object can be used for different objects, if event is listened so the domain needs to be the same
            if (explosionAnimation != null)
            {
//				explosionAnimation.Explode ();
                explosionAnimation.EventDomain = this.gameObject;
            }
            else
            {
                Debug.LogError(go.name + " has no explosionAnimation Script attached, cant set EventDomain to recognize explosion animation end");
            }
        }
        else
        {
            Debug.LogError("pooling failed");
        }
    }
Beispiel #7
0
        public override void Die(CVGameTime gameTime)
        {
            IsDead = true;
            Active = false;
            Vector2 firstExplosionPosition = this.WorldPosition;

            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(0, 0), ExplosionAnimation.CreateCopy(), ExplosionSound, 0);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(-15, -10), ExplosionAnimation.CreateCopy(), ExplosionSound, 100);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(-15, 10), ExplosionAnimation.CreateCopy(), null, 200);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(5, -10), ExplosionAnimation.CreateCopy(), ExplosionSound, 300);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(5, 10), ExplosionAnimation.CreateCopy(), null, 400);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(25, -10), ExplosionAnimation.CreateCopy(), ExplosionSound, 500);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(25, 10), ExplosionAnimation.CreateCopy(), null, 600);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(45, -10), ExplosionAnimation.CreateCopy(), ExplosionSound, 700);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(45, 10), ExplosionAnimation.CreateCopy(), null, 800);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(65, -10), ExplosionAnimation.CreateCopy(), ExplosionSound, 900);
            CurrentStage.AddExplosion(firstExplosionPosition + new Vector2(65, 10), ExplosionAnimation.CreateCopy(), null, 1000);

            foreach (var tile in CurrentStage.StageTiles.Where(t => t.DestructionLayer1GID > 0))
            {
                tile.Status = StageTile.TileStatus.Destroyed;
            }

            CurrentStage.StartComplete(gameTime, this);
        }
        public FootSoldier(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            EnemyMoveSpeed    = 1.2f;
            _runningAnimation = new Animation();
            _runningAnimation.Initialize(content.Load <Texture2D>("Sprites/EnemyFootSoldierRunning"), this.WorldPosition, 32, 48, 6, 150, Color.White, 1, true, false, CurrentStage);

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion1"), this.WorldPosition, 36, 36, 3, 150, Color.White, 1f, false, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion1");
        }
        internal ProjectileClassAlpha()
        {
            // Used for lazy initialization in the bullet pool
            explosionAni = (ExplosionAnimation)((IPrototype<Animation>)prototypeExplosionAnimation).Clone();
            bulletAni = (BulletAnimation)((IPrototype<Animation>)prototypeBulletAnimation).Clone();

            explosionAni.AnimationPosition = Point.Empty;
            bulletAni.AnimationPosition = Point.Empty;
            bulletAni.Collider.Collided += BulletCollider_Collided;
        }
Beispiel #10
0
        internal ProjectileClassAlpha()
        {
            // Used for lazy initialization in the bullet pool
            explosionAni = (ExplosionAnimation)((IPrototype <Animation>)prototypeExplosionAnimation).Clone();
            bulletAni    = (BulletAnimation)((IPrototype <Animation>)prototypeBulletAnimation).Clone();

            explosionAni.AnimationPosition = Point.Empty;
            bulletAni.AnimationPosition    = Point.Empty;
            bulletAni.Collider.Collided   += BulletCollider_Collided;
        }
Beispiel #11
0
        public Level1BossPanel(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            _animation = new Animation();

            _animation.Initialize(content.Load <Texture2D>("Sprites/Bosses/Boss1Panel"), position, 26, 32, 3, 100, Color.White, 1f, true, true, CurrentStage);

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion2"), position, 32, 32, 5, 150, Color.White, 1f, false, false, CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion3");

            CollisionIsHazardous = false;
            _health = 50;
        }
Beispiel #12
0
        public Sniper(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            snipersprites = new PlayerSpriteCollection();
            snipersprites.Initialize(content.Load <Texture2D>("Sprites/Enemies/Sniper"), position, 5, Color.White, 1f);

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion1"), position, 36, 36, 3, 150, Color.White, 1f, false, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion1");

            projectileTexture = content.Load <Texture2D>("Sprites/Projectiles/basicbullet");

            _gun = new EnemyGun(this, projectileTexture);
        }
        public Level1BossBomber(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            _frames = new PlayerSpriteCollection();
            _frames.Initialize(content.Load <Texture2D>("Sprites/Bosses/boss1bomber"), position, 6, Color.White, 1f);
            _enemyType = enemytype;

            _health = 32;

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion2"), position, 32, 32, 5, 150, Color.White, 1f, false, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion1");

            projectileTexture = content.Load <Texture2D>("Sprites/Projectiles/redbullet_large");
        }
Beispiel #14
0
        public Capsule(ContentManager content, Vector2 position, Stage stage, string itemType) : base(content, position, stage, itemType)
        {
            _itemType       = itemType;
            _contentManager = content;
            _startPosition  = position;
            EnemyMoveSpeed  = 2.0f;

            _imageTexture = content.Load <Texture2D>("Sprites/Enemies/Capsule");

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion1"), this.WorldPosition, 36, 36, 3, 150, Color.White, 1f, false, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion1");

            _startingVerticalPosition = position.Y;

            CollisionIsHazardous = false;
        }
Beispiel #15
0
        public Turret(ContentManager content, Vector2 position, Stage stage, string enemytype)
            : base(content, position, stage, enemytype)
        {
            PlayerSpriteCollection spritecollection;
            Texture2D turrettileset;

            spritecollectionlist = new List <PlayerSpriteCollection>();
            turrettileset        = content.Load <Texture2D>("Sprites/Enemies/Turret");

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(TextureHelper.SwapColor(turrettileset, new Color(192, 32, 0), new Color(184, 28, 12)), position, 12, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(TextureHelper.SwapColor(turrettileset, new Color(192, 32, 0), new Color(228, 68, 52)), position, 12, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            spritecollection = new PlayerSpriteCollection();
            spritecollection.Initialize(turrettileset, position, 12, Color.White, 1f);
            spritecollectionlist.Add(spritecollection);

            CollisionIsHazardous = false;

            _health           = 15;
            _currentPosition  = 3;
            TimeTargetLocked  = 0.0f;
            _elapsedTime      = 0;
            _currentFrame     = 0;
            _animatingforward = true;

            // RGB colors for blinking animations of turret.
            //R 255 228  184
            //G 140 68   28
            //B 124 52   12

            projectileTexture = content.Load <Texture2D>("Sprites/Projectiles/basicbullet");

            ExplosionAnimation.Initialize(content.Load <Texture2D>("Sprites/Explosion2"), WorldPosition, 5, 150, Color.White, 1f, false, this.CurrentStage);
            ExplosionSound = content.Load <SoundEffect>("Sounds/Explosion2");

            _gun = new EnemyGun(this, projectileTexture);
        }
Beispiel #16
0
        public Explosion(Vector2f pos, bool infinite = false)
        {
            Position = pos;
            Origin   = new Vector2f(32f, 32f);
            Rotation = RAND.Next() % 360;

            if (TEXTURE == null)
            {
                LoadTexture();
            }
            this.Texture = TEXTURE;
            if (infinite)
            {
                this.TextureRect = RECTS.ElementAt(new Random().Next() % 16);
            }
            else
            {
                this.TextureRect = RECTS.First();
            }

            _boom = new ExplosionAnimation(this, infinite);
        }
Beispiel #17
0
 /// <summary>
 /// Setzt den Bewegungsalgorithmus der Partikel
 /// </summary>
 /// <param name="e">Algorithmustyp</param>
 public void SetAnimationAlgorithm(ExplosionAnimation e)
 {
     _algorithm = (int)e;
 }