Esempio n. 1
0
        public IEnumerator SpawnEnemy(Wave wave)
        {
            var enemies = wave.enemies;

            foreach (var enemy in enemies)
            {
                GameObject newEnemy = null;
                if (enemy.GetComponent <Enemy>().flyable == Enemy.Flyable.Ground)
                {
                    newEnemy = Instantiate(enemy, gameManager.startOnGround.position, Quaternion.identity);
                }
                else if (enemy.GetComponent <Enemy>().flyable == Enemy.Flyable.Air)
                {
                    newEnemy = Instantiate(enemy, gameManager.startInAir.position, Quaternion.identity);
                }
                SpawnEnemyEvent?.Invoke(newEnemy.GetComponent <Enemy>());
                yield return(new WaitForSeconds(wave.enemyInterval));
            }
        }
Esempio n. 2
0
File: TMX.cs Progetto: JovannyM/DB
        public void Load(string _location, Action <object, BulletSpawnArgs> shoot)
        {
            Walls      = new List <Sprite>();
            OtherImage = new List <Sprite>();
            LevelDoors = new List <Sprite>();

            LocationFile_tmx = _location;
            XmlDocument document = new XmlDocument();

            document.Load(LocationFile_tmx);
            XmlElement Element = document.DocumentElement;

            foreach (XmlNode Node in Element)
            {
                foreach (XmlNode Child in Node.ChildNodes)
                {
                    if (Node.Name == "objectgroup" && Child.Name == "object")
                    {
                        if (Child.Attributes.Count == 4)
                        {
                            if (Child.Attributes.GetNamedItem("name").Value == "Start")
                            {
                                StartPositionForTank = PositionObj(Child, "x", "y");
                            }
                            else if (Child.Attributes.GetNamedItem("name").Value == "Boss")
                            {
                                //x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture);
                                //y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture);
                                //SpawnEnemy.Invoke(this, new SpawnEnemyArgs(x, y, 2));
                            }
                            else if (Child.Attributes.GetNamedItem("name").Value == "Tor")
                            {
                                float x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture);
                                float y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture);
                                SpawnEnemyEvent.Invoke(this, new SpawnEnemyArgs(new TorEnemy(new Vector2f(x, y), shoot)));
                            }
                            else if (Child.Attributes.GetNamedItem("name").Value == "Speed")
                            {
                                float x = Convert.ToSingle(Child.Attributes.GetNamedItem("x").Value, CultureInfo.InvariantCulture);
                                float y = Convert.ToSingle(Child.Attributes.GetNamedItem("y").Value, CultureInfo.InvariantCulture);
                                SpawnEnemyEvent.Invoke(this, new SpawnEnemyArgs(new SpeedEnemy(new Vector2f(x, y))));
                            }
                        }
                        else if (Child.Attributes.Count == 6)
                        {
                            if (Child.Attributes.GetNamedItem("name").Value == "Door")
                            {
                                LevelDoors.Add(SetSprite(Child));
                            }
                        }
                        else
                        {
                            Walls.Add(SetSprite(Child));
                        }
                    }
                    if (Node.Name == "imagelayer" && Child.Name == "image")
                    {
                        if (Node.Attributes.GetNamedItem("name").Value == "Level")
                        {
                            string LocationTextureTile = Child.Attributes.GetNamedItem("source").Value;
                            LevelImage = new Sprite()
                            {
                                Texture     = new Texture(LocationTextureTile),
                                TextureRect = SizeObj(Child)
                            };
                        }
                        else if (Node.Attributes.Count > 2)
                        {
                            string LocationTextureTile = Child.Attributes.GetNamedItem("source").Value;
                            OtherImage.Add(new Sprite()
                            {
                                Position    = PositionObj(Node, "offsetx", "offsety"),
                                TextureRect = SizeObj(Child),
                                Texture     = new Texture(LocationTextureTile)
                            });
                        }
                    }
                }
            }
        }