// Use this for initialization void Awake() { fenetre = GameObject.FindGameObjectWithTag("SystemInfos"); param = GameObject.FindGameObjectWithTag("GameManager").GetComponent <Parameters>(); cost = GameObject.FindGameObjectWithTag("cout").GetComponent <Text>(); system = GameObject.FindGameObjectWithTag("universewintext").GetComponentInChildren <Text>(); ship = GameObject.FindGameObjectWithTag("ship").GetComponent <shipMovement>(); eventW = GameObject.FindGameObjectWithTag("eventdisplay").GetComponent <RandomEventWindow>(); ep = GameObject.FindGameObjectWithTag("GameManager").GetComponent <EventProbability>(); }
static void SetShipMovement(GameObject ship) { shipMovement move = ship.GetComponent <shipMovement>(); foreach (Transform trans in ship.transform) { if (trans.tag == WARP) { move.warpParticle = trans.gameObject.particleSystem; break; } } }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (_started) { _timer -= (float)gameTime.ElapsedGameTime.TotalSeconds; } if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } // TODO: Add your update logic here prevKey = newKeyboardState; newKeyboardState = Keyboard.GetState(); if (newKeyboardState.IsKeyDown(Keys.Escape)) { Exit(); } if (eat < 2 && newKeyboardState.IsKeyDown(Keys.Space)) { _started = true; _draw = true; _sound = false; if (died) { shipRect.X = 900; shipRect.Y = 900; rotation = 0; direction = new Vector2(0, -1); _timer = 21; } //eats the first space to prevent firing on start eat += 1; } if (_started) { if (_timer % 3 == 0)//(newKeyboardState.IsKeyDown(Keys.R) && !_meteorsStarted && prevKey.IsKeyDown(Keys.R)) { _meteorsStarted = true; _enemySprite = new List <Sprite>() { new Enemies(rock, this) { Position = new Vector2(100, 100), Enemy = new Enemy(Content.Load <Texture2D>("rock no trail")) } }; } if ((newKeyboardState.IsKeyDown(Keys.Up) && (newKeyboardState.IsKeyDown(Keys.Left))) || (newKeyboardState.IsKeyDown(Keys.W) && (newKeyboardState.IsKeyDown(Keys.A)))) { movement = shipMovement.UpLeft; } else if ((newKeyboardState.IsKeyDown(Keys.Up) && (newKeyboardState.IsKeyDown(Keys.Right))) || (newKeyboardState.IsKeyDown(Keys.W) && (newKeyboardState.IsKeyDown(Keys.D)))) { movement = shipMovement.UpRight; } else if ((newKeyboardState.IsKeyDown(Keys.Down) && (newKeyboardState.IsKeyDown(Keys.Left))) || (newKeyboardState.IsKeyDown(Keys.S) && (newKeyboardState.IsKeyDown(Keys.A)))) { movement = shipMovement.DownLeft; } else if ((newKeyboardState.IsKeyDown(Keys.Down) && (newKeyboardState.IsKeyDown(Keys.Right))) || (newKeyboardState.IsKeyDown(Keys.S) && (newKeyboardState.IsKeyDown(Keys.D)))) { movement = shipMovement.DownRight; } else if (newKeyboardState.IsKeyDown(Keys.Up) || newKeyboardState.IsKeyDown(Keys.W)) { movement = shipMovement.Up; } else if (newKeyboardState.IsKeyDown(Keys.Down) || newKeyboardState.IsKeyDown(Keys.S)) { movement = shipMovement.Down; } else if (newKeyboardState.IsKeyDown(Keys.Left) || newKeyboardState.IsKeyDown(Keys.A)) { movement = shipMovement.Left; } else if (newKeyboardState.IsKeyDown(Keys.Right) || newKeyboardState.IsKeyDown(Keys.D)) { movement = shipMovement.Right; } else { movement = shipMovement.Idle; } } if (_started && _draw) { switch (movement) { case shipMovement.UpLeft: shipRect.Y -= 7; shipRect.X -= 7; rotation = (float)-.5; direction = new Vector2(-1, -1); moving = true; break; case shipMovement.UpRight: shipRect.Y -= 7; shipRect.X += 7; rotation = (float).5; direction = new Vector2(1, -1); moving = true; break; case shipMovement.DownRight: shipRect.Y += 7; shipRect.X += 7; rotation = (float)2.2; direction = new Vector2(1, 1); moving = true; break; case shipMovement.DownLeft: shipRect.Y += 7; shipRect.X -= 7; rotation = (float)-2.2; direction = new Vector2(-1, 1); moving = true; break; case shipMovement.Up: shipRect.Y -= 10; rotation = 0; effect = SpriteEffects.None; direction = new Vector2(0, -1); moving = true; break; case shipMovement.Down: shipRect.Y += 10; rotation = (float)3.125; direction = new Vector2(0, 1); moving = true; break; case shipMovement.Left: shipRect.X -= 10; rotation = (float)-1.6; direction = new Vector2(-1, 0); moving = true; break; case shipMovement.Right: shipRect.X += 10; rotation = (float)1.6; direction = new Vector2(1, 0); moving = true; break; case shipMovement.Idle: moving = false; break; default: break; } if (_enemyParticles != null) { foreach (var enemy in _enemyParticles) { enemy.Update(gameTime); } } explosionParticleSystem.Update(gameTime); shipParticleSystem.Update(gameTime); fireParticalSystem.Update(gameTime); } //keep ship on screen if (shipRect.X < 0 + (shipRect.Width / 2)) { shipRect.X = 0 + (shipRect.Width / 2); } if (shipRect.X > GraphicsDevice.Viewport.Width - (shipRect.Width / 2)) { shipRect.X = GraphicsDevice.Viewport.Width - (shipRect.Width / 2); } if (shipRect.Y < 0 + (shipRect.Height / 2)) { shipRect.Y = 0 + (shipRect.Height / 2); } if (shipRect.Y > GraphicsDevice.Viewport.Height - (shipRect.Height / 2)) { shipRect.Y = GraphicsDevice.Viewport.Height - (shipRect.Height / 2); } foreach (var sprite in _sprite.ToArray()) { sprite.Update(gameTime, _sprite, direction, 0); } if (_enemySprite != null) { foreach (var sprite in _enemySprite.ToArray()) { sprite.Update(gameTime, _enemySprite, direction, 5); } } if (_timer <= 0 && !_sound) { if (_enemySprite != null) { for (int i = 1; i < _enemySprite.Count; i++) { _enemySprite.RemoveAt(i); } } died = true; _draw = false; _started = false; var instance = soundEffects[0].CreateInstance(); instance.Play(); _sound = true; eat = 0; displayScore = score; score = 0; } if (_enemySprite != null) { for (int e = 1; e < _enemySprite.Count; e++) { scored = false; for (int i = 1; i < _sprite.Count; i++) { try { if (_enemySprite[e] == null || _sprite[i] == null) { continue; } else if (_sprite[i].isRemoved) { _sprite.RemoveAt(i); i--; } else if (colliding(_enemySprite[e].Position, _sprite[i].Position)) { if (!scored) { _timer++; scored = true; score++; _enemySprite.RemoveAt(e); _sprite.RemoveAt(i); } } } catch (ArgumentOutOfRangeException oor) { continue; } if (scored) { continue; } } try { if (shipRect.Intersects(toRect(_enemySprite[e].Position))) { for (int i = 1; i < _enemySprite.Count; i++) { _enemySprite.RemoveAt(i); } died = true; _draw = false; _started = false; var instance = soundEffects[0].CreateInstance(); instance.Play(); eat = 0; displayScore = score; score = 0; break; } } catch (ArgumentOutOfRangeException oor) { continue; } } } player.Update(gameTime); base.Update(gameTime); }