Exemple #1
0
    void FixedUpdate()
    {
        switch (direction)
        {
        case WaveDirection.RIGHT:
            iterator += speed;

            if (iterator > xRange / 2f)
            {
                direction = WaveDirection.LEFT;
            }

            break;

        case WaveDirection.LEFT:
            iterator -= speed;

            if (iterator < -xRange / 2f)
            {
                direction = WaveDirection.RIGHT;
            }

            break;
        }

        Vector3 newPoint = new Vector3(iterator * 2f / xRange, iterator * iterator * yRange / 2f, 0);

        transform.position = newPoint + startPos;
    }
Exemple #2
0
        public Wave(int releaseTime, int monsterCount, string monsterName, WaveDirection direction)
        {
            this.releaseTime  = releaseTime;
            this.monsterCount = monsterCount;
            this.monsterName  = monsterName;
            this.direction    = direction;

            random = new Random();
        }
Exemple #3
0
        private void UpdateFlowAngle(WaveDirection direction)
        {
            switch (direction)
            {
            case WaveDirection.Left:
                _buoyancy.flowAngle = 0;
                break;

            case WaveDirection.Right:
                _buoyancy.flowAngle = 180;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public static WaveFront CreateWaveFront(WaveDirection direction)
        {
            switch (direction)
            {
            case WaveDirection.NE:
                return(new NorthEasternWaveFront());

            case WaveDirection.SE:
                return(new SouthEasternWaveFront());

            case WaveDirection.SW:
                return(new SouthWesternWaveFront());

            case WaveDirection.NW:
                return(new NorthWesternWaveFront());

            case WaveDirection.N:
                return(new NorthTravellingPolarWaveFront());

            case WaveDirection.S:
                return(new SouthTravellingPolarWaveFront());
            }
            return(null);  // To prevent compiler warning
        }
Exemple #5
0
        public List <Scene> BuildScenes(GameObject map)
        {
            List <Scene> scenes = new List <Scene>();

            XDocument file = OpenFile();

            List <XElement> sceneElements = file.Root.Elements("Scene").ToList();

            // Parsitaan jokainen scene läpi.
            for (int i = 0; i < sceneElements.Count; i++)
            {
                // Haetaan ylä ja ala osien tekstuurien nimet.
                string topName    = sceneElements[i].Attribute("Top").Value;
                string bottomName = sceneElements[i].Attribute("Bottom").Value;

                List <XElement> waveElements = sceneElements[i].Element("Waves").Elements("Wave").ToList();

                List <XElement> objectElements  = new List <XElement>();
                XElement        sceneObjectRoot = sceneElements[i].Element("Objects");

                if (sceneObjectRoot != null)
                {
                    objectElements = sceneObjectRoot.Elements("Object").ToList();
                }

                List <Wave> waves = new List <Wave>();

                // Parsitaan kaikki wavet.
                for (int j = 0; j < waveElements.Count; j++)
                {
                    XElement waveElement = waveElements[j];

                    int    releaseTime  = int.Parse(waveElement.Attribute("ReleaseTime").Value);
                    int    monsterCount = int.Parse(waveElement.Attribute("Count").Value);
                    string monsterName  = waveElement.Attribute("Monster").Value;

                    WaveDirection direction = (WaveDirection)Enum.Parse(typeof(WaveDirection), waveElement.Attribute("Direction").Value);

                    waves.Add(new Wave(releaseTime, monsterCount, monsterName, direction));
                }

                List <GameObject> objects = new List <GameObject>();

                // Parsitaan kaikki scene objectit.
                for (int j = 0; j < objectElements.Count; j++)
                {
                    XElement objectElement = objectElements[j];

                    string name = objectElement.Attribute("Name").Value;

                    GameObject sceneObject = map.Game.CreateGameObjectFromName(name, false);
                    sceneObject.Position = new Vector2(sceneObject.Position.X + i * map.Game.Window.ClientBounds.Width,
                                                       sceneObject.Position.Y);

                    objects.Add(sceneObject);
                }

                scenes.Add(new Scene(map.Game, waves, objects, topName, bottomName));
            }

            return(scenes);
        }