コード例 #1
0
        public void SetUp()
        {
            var videoMode = new VideoMode(0, 0);

            window           = new RenderWindow(videoMode, "Test");
            explosionFactory = new ExplosionFactory();
        }
コード例 #2
0
ファイル: Level1.cs プロジェクト: KMielnik/ASTROMARINES
        public Level1(IPlayer player)
        {
            backgroundTexture = new Texture(Resources.LevelBG);
            background        = new Sprite(backgroundTexture)
            {
                Scale = new Vector2f(WindowProperties.ScaleX, WindowProperties.ScaleY)
            };

            this.player = player;

            mousePointer = new MousePointer();

            enemyFactory     = new EnemyFactory();
            enemies          = new List <IEnemy>();
            enemyBullets     = new List <Bullet>();
            explosionFactory = new ExplosionFactory();
            explosions       = new List <Explosion>();
            levelClock       = new Clock();

            digitalClockFont = new Font(Resources.FontDigitalClock);
            digitalClock     = new Text("", digitalClockFont, 30)
            {
                Position = new Vector2f(WindowProperties.WindowWidth * 30 / 32,
                                        WindowProperties.WindowHeight * 30 / 32),
                Color = new Color(Color.White)
            };

            backgroundMusic = new Music(Resources.LevelBGMusic)
            {
                Loop = true
            };
            backgroundMusic.Play();
        }
コード例 #3
0
 public void Explode()
 {
     //var lol = _controller.GetPosition();
     ExplosionFactory.Create(_controller.GetPosition(), _explosionInfo);
     //StopCoroutine(ExpireCheckCoroutineHandler);
     Destroy(this.gameObject);
 }
コード例 #4
0
    void Start()
    {
        if (mInstance == null)
        {
            mInstance = this;


            // Create the explosions, initialise the active and available lists, put all enemies in the available list
            mActive   = new List <GameObject>();
            mInactive = new List <GameObject>();
            mPool     = new GameObject[EnemyPoolSize];
            for (int count = 0; count < mPool.Length; count++)
            {
                GameObject explosion = new GameObject("Explosion_PoolID" + (count + 1));
                Animator   anim      = explosion.AddComponent <Animator>();
                anim.runtimeAnimatorController = EnemyExplosionAnim;
                explosion.AddComponent <SpriteRenderer>();
                explosion.transform.localScale = new Vector3(20, 20, 1);

                explosion.transform.parent = transform;
                mPool[count] = explosion;
                mInactive.Add(explosion);
                explosion.SetActive(false);
            }
        }
        else
        {
            Debug.LogError("Only one ExplosionFactory allowed - destorying duplicate");
            Destroy(this.gameObject);
        }
    }
コード例 #5
0
    }                              // private constructor

    // static instance
    public static ExplosionFactory GetInstance()
    {
        if (_instance == null)
        {
            _instance = new ExplosionFactory();
            return(_instance);
        }

        return(_instance);
    }
コード例 #6
0
        public void Explode()
        {
            //Spinner explodes, creating an explosion and getting destroyed
            Explosion explosion = ExplosionFactory.CreateNew();

            explosion.Position = this.Position;

            DropAsterices();

            this.Destroy();
        }
コード例 #7
0
ファイル: Boat.cs プロジェクト: Vanane/Pirates
        private Explosion PlayExplosion()
        {
            float ExplosionDistanceX = this.BoatSpriteInstance.Width / 2;
            float ExplosionDistanceY = this.BoatSpriteInstance.Height / 2;
            float SpriteX, SpriteY;

            SpriteX = FlatRedBallServices.Random.Between(X - ExplosionDistanceX, X + ExplosionDistanceX);
            SpriteY = FlatRedBallServices.Random.Between(Y - ExplosionDistanceY, Y + ExplosionDistanceY);

            return(ExplosionFactory.CreateNew(SpriteX, SpriteY));
        }
コード例 #8
0
 public ShipStateDead(
     Settings settings, Ship ship,
     Signals.ShipCrashed shipCrashed,
     ExplosionFactory explosionFactory,
     BrokenShipFactory brokenShipFactory)
 {
     _brokenShipFactory = brokenShipFactory;
     _explosionFactory  = explosionFactory;
     _settings          = settings;
     _shipCrashed       = shipCrashed;
     _ship = ship;
 }
コード例 #9
0
ファイル: ShipStateDead.cs プロジェクト: zzragida/Zenject
 public ShipStateDead(
     Settings settings, Ship ship,
     GameEvents gameEvents,
     ExplosionFactory explosionFactory,
     BrokenShipFactory brokenShipFactory)
 {
     _brokenShipFactory = brokenShipFactory;
     _explosionFactory  = explosionFactory;
     _settings          = settings;
     _gameEvents        = gameEvents;
     _ship = ship;
 }
コード例 #10
0
 public HookStateDead(HookCrashedSignal hookCrashedSignal,
                      ExplosionFactory explosionFactory,
                      BrokenHookFactory brokenHookFactory,
                      Settings settings,
                      Hook hook)
 {
     _hookCrashedSignal = hookCrashedSignal;
     _explosionFactory  = explosionFactory;
     _brokenHookFactory = brokenHookFactory;
     _settings          = settings;
     _hook = hook;
 }
コード例 #11
0
 public ShipStateDead(
     Settings settings, Ship ship,
     ExplosionFactory explosionFactory,
     BrokenShipFactory brokenShipFactory,
     SignalBus signalBus)
 {
     _signalBus         = signalBus;
     _brokenShipFactory = brokenShipFactory;
     _explosionFactory  = explosionFactory;
     _settings          = settings;
     _ship = ship;
 }
コード例 #12
0
    private void BuildExplosionPool()
    {
        // build the pool
        for (int i = 0; i < explosionNumber; i++)
        {
            var newExplosion = ExplosionFactory.GetInstance().createRandomExplosion();

            // set the parent to the explosion container
            newExplosion.transform.parent = explosionContainer.transform;
            explosions.Enqueue(newExplosion);
        }
    }
コード例 #13
0
 public ShipStateDead(
     Settings settings, Ship ship,
     ExplosionFactory explosionFactory,
     BrokenShipFactory brokenShipFactory,
     ShipCrashedSignal shipCrashedSignal)
 {
     _shipCrashedSignal = shipCrashedSignal;
     _brokenShipFactory = brokenShipFactory;
     _explosionFactory  = explosionFactory;
     _settings          = settings;
     _ship = ship;
 }
コード例 #14
0
 public void DestroyEnemy(GameObject enemy)
 {
     if (DifficultyCurve.Levels[UserData.CurrentLevel].Length != 1)
     {
         SpawnPowerUp(enemy.transform.position);
     }
     else // If the enemy is a boss, then spawn pickup with a worth equal to the # of the level (i.e : Boss 3 drops is worth 9 powerups)
     {
         PowerUpFactory.Dispatch(enemy.transform.position);
     }
     UserData.IncreaseLevelPoints(enemy.GetComponent <EnemyBehaviour>().GetPointsValue());
     ExplosionFactory.Dispatch(enemy.transform.position);
     EnemyFactory.Return(enemy);
     mActiveEnemies.Remove(enemy);
     mActiveEnemies.TrimExcess();
 }
コード例 #15
0
    void Awake()
    {
        // 挂载各种控制组件

        director = Director.getInstance();
        director.currentSceneController = this;

        actionManager = gameObject.AddComponent <FirstSceneActionManager>();

        UFOfactory = gameObject.AddComponent <UFOFactory>();

        explosionFactory = gameObject.AddComponent <ExplosionFactory>();

        scorer            = Scorer.getInstance();
        difficultyManager = DifficultyManager.getInstance();


        loadResources();
    }
コード例 #16
0
ファイル: Level2.cs プロジェクト: KMielnik/ASTROMARINES
        public Level2(IPlayer player)
        {
            backgroundTexture = new Texture(Resources.LevelBG);
            background        = new Sprite(backgroundTexture)
            {
                Scale = new Vector2f(WindowProperties.ScaleX, WindowProperties.ScaleY)
            };
            this.player = player;

            mousePointer = new MousePointer();

            enemyFactory     = new EnemyFactory();
            enemies          = new List <IEnemy>();
            explosionFactory = new ExplosionFactory();
            explosions       = new List <Explosion>();
            levelClock       = new Clock();

            backgroundMusic = new Music(Resources.LevelBGMusic)
            {
                Loop = true
            };
            backgroundMusic.Play();
        }
コード例 #17
0
        internal State Play(GameDatabase db, State gameState, Boss boss, bool bossHasInstance,
                            StatsManager statsManager, GameTime gameTime, Random random)
        {
            State state = gameState;

            if (db.Players.GetAll().Any(s => s.Score >= 10000))
            {
                state = this.EnableBossMode(boss, bossHasInstance,
                                            db, gameState, gameTime);
            }
            else
            {
                for (int i = 0; i < db.Enemies.GetCount(); i++)
                {
                    BulletsFactory.EnemyShoot(db.Bullets, db.Enemies.GetAll()[i]);
                }

                //Creating entities
                EnemyFactory.CreateEnemies(db.Enemies, random);
                AsteroidFactory.CreateAsteroids(db.Asteroids, random);

                ItemFactory.CreateItems(db.Items, db.Enemies.GetAll().Cast <IGameObject>().ToList(), random);
                ItemFactory.CreateItems(db.Items, db.Asteroids.GetAll().Cast <IGameObject>().ToList(), random);

                // Handle collisions between players and enemy objects
                CollisionHandler.CheckForCollision(db.Asteroids.GetAll().Cast <IGameObject>().ToList(), db.Players.GetAll(), db.Explosions.GetAll());
                CollisionHandler.CheckForCollision(db.Enemies.GetAll().Cast <IGameObject>().ToList(), db.Players.GetAll(), db.Explosions.GetAll());

                // Handle collisions between players and enemy items
                CollisionHandler.CheckPlayerItemCollisions(db.Items.GetAll(), db.Players.GetAll());

                ExplosionFactory.CreateExplosion(db.Explosions, db.Enemies.GetAll().Cast <IGameObject>().ToList());
                ExplosionFactory.CreateExplosion(db.Explosions, db.Asteroids.GetAll().Cast <IGameObject>().ToList());

                //Updating entities
                db.Enemies.GetAll().ForEach(e => e.Update(gameTime));
                db.Asteroids.GetAll().ForEach(a => a.Update(gameTime));
                db.Items.GetAll().ForEach(i => i.Update(gameTime));

                // Cleaning with mr.Proper
                EntityCleanerHandler.ClearEnemies(db.Enemies);
                EntityCleanerHandler.ClearAsteroids(db.Asteroids);
                EntityCleanerHandler.ClearExplosion(db.Explosions);
                EntityCleanerHandler.ClearPlayers(db.Players);
            }

            //Update
            db.Bullets.GetAll().ForEach(b => b.Update(gameTime));
            db.Explosions.GetAll().ForEach(e => e.Update(gameTime));

            statsManager.UpdatePlayersStats(db.Players.GetAll());

            //Handle collisions between bullets and gameobjects
            CollisionHandler.CheckPlayerBulletsCollisions(db.Enemies.GetAll().Cast <IGameObject>().ToList(), db.Bullets.GetAll(), db.Players.GetAll(), db.Explosions.GetAll());
            CollisionHandler.CheckPlayerBulletsCollisions(db.Asteroids.GetAll().Cast <IGameObject>().ToList(), db.Bullets.GetAll(), db.Players.GetAll(), db.Explosions.GetAll());
            CollisionHandler.CheckEnemiesBulletsCollisions(db.Bullets.GetAll(), db.Players.GetAll());

            EntityCleanerHandler.ClearBullets(db.Bullets);

            return(state);
        }