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