// Update public override void Update(GameTime gameTime) { if (this.fire == true) { if (Math.Abs(this.position.X - Player.positionSent.X) < 5)// se a distancia entre o jogador e o inimigo for menor que 5 ele dispara { if (this.position.X - Player.positionSent.X > 0) { fireCounter += (float)gameTime.ElapsedGameTime.TotalSeconds; if (fireCounter >= fireInterval) { Vector2 pos = this.position + new Vector2((float)Math.Sin(rot) * size.Y, (float)Math.Cos(rot) * size.Y); Bala bullet = new Bala(cManager, "bulletTestes", new Vector2(pos.X - 2f, pos.Y), -rot, this.nomedaSprite, jogo); scene.AddSprite(bullet); fireCounter = 0f; } } if (this.position.X - Player.positionSent.X < 0) { fireCounter += (float)gameTime.ElapsedGameTime.TotalSeconds; if (fireCounter >= fireInterval) { Vector2 pos = this.position + new Vector2((float)Math.Sin(rot) * size.Y, (float)Math.Cos(rot) * size.Y); Bala bullet = new Bala(cManager, "bulletTestes", pos, rot, this.nomedaSprite, jogo); scene.AddSprite(bullet); fireCounter = 0f; } } } } base.Update(gameTime); }
// Update public override void Update(GameTime gameTime) { positionSent = this.position; // apenas para debug if (state.IsKeyDown(Keys.L)) { this.position.X += 0.1f; } if (state.IsKeyDown(Keys.J)) { this.position.X -= 0.1f; } if (state.IsKeyDown(Keys.I)) { this.position.Y += 0.1f; } if (state.IsKeyDown(Keys.K)) { this.position.Y -= 0.1f; } if (Player.alunosSalvos == 3)// salva os tres alunos, volta ao inicio { jogoGanho.Play(); jogo.recomecar(); } if (state.IsKeyDown(Keys.D)) { this.position.X += 0.05f; if (this.scene.Collides(this, out this.Collided, out this.CollisionPoint)) { if (this.Collided.nomedaSprite == "TEST-F") { boo.Play(); this.Destroy(); jogo.recomecar(); } else if (this.Collided.nomedaSprite == "student1" || this.Collided.nomedaSprite == "student2" || this.Collided.nomedaSprite == "student3") { jogoGanho.Play(); alunosSalvos++; this.Collided.Destroy(); } else { if (CollisionPointLast != positionColision) { this.position.X -= 0.05f; } } } } if (state.IsKeyDown(Keys.A)) { this.position.X -= 0.05f; if (this.scene.Collides(this, out this.Collided, out this.CollisionPoint)) { if (this.Collided.nomedaSprite == "TEST-F") { boo.Play(); this.Destroy(); jogo.recomecar(); } else if (this.Collided.nomedaSprite == "student1" || this.Collided.nomedaSprite == "student2" || this.Collided.nomedaSprite == "student3") { jogoGanho.Play(); alunosSalvos++; this.Collided.Destroy(); } else { if (CollisionPointLast != positionColision) { this.position.X += 0.05f; } } } } if (state.IsKeyDown(Keys.Space) && isJumping == false && isFalling == false) { this.isJumping = true; this.isFalling = false; this.sourcePosition = this.position; this.direction = new Vector2((float)Math.Sin(rotation), (float)Math.Cos(rotation)); } mstate = Mouse.GetState(); Point mpos = mstate.Position; Vector2 tpos = Camera.WorldPoint2Pixels(position); float a = (float)mpos.Y - tpos.Y; float l = (float)mpos.X - tpos.X; float rot = (float)Math.Atan2(a, l); rot += (float)Math.PI / 2f; fireCounter += (float)gameTime.ElapsedGameTime.TotalSeconds; if (mstate.LeftButton == ButtonState.Pressed && fireCounter >= fireInterval) { Vector2 pos = this.position + new Vector2((float)Math.Sin(rot) * size.Y, (float)Math.Cos(rot) * size.Y); Bala bullet = new Bala(cManager, "pencil", pos, rot, this.nomedaSprite, jogo); scene.AddSprite(bullet); fireCounter = 0f; } Jump(gameTime); Camera.SetTarget(this.position); CollisionPointLast = positionColision;// guarda a posicao na sprite da ultima colisao base.Update(gameTime); }