public BolaCanhao Disparar(ContentManager content, GameTime gameTime) { BolaCanhao b = new BolaCanhao(gameTime); b.Imagem = content.Load<Texture2D>(@"images/bolacanhao"); b.Posicao = CalcularPosicaoBola(b); b.PosicaoInicial = b.Posicao; b.Radianos = RadianosCorrigido; Som.Play(); return b; }
public BolaCanhao Disparar(ContentManager content, GameTime gameTime) { BolaCanhao b = new BolaCanhao(gameTime); b.Imagem = content.Load <Texture2D>(@"images/bolacanhao"); b.Posicao = CalcularPosicaoBola(b); b.PosicaoInicial = b.Posicao; b.Radianos = RadianosCorrigido; Som.Play(); return(b); }
private void ControlarCanhao(GameTime gameTime) { if (canhao.NaMira(GraphicsDevice)) { if (!disco.Destruido && (gameTime.TotalGameTime.TotalMilliseconds - miliSegundoUltimoTiro) > 300) { BolaCanhao b = canhao.Disparar(Content, gameTime); bolasCanhao.Add(b); miliSegundoUltimoTiro = gameTime.TotalGameTime.TotalMilliseconds; } } else { canhao.CorrigirCoordenada(gameTime); } }
private Vector2 CalcularPosicaoBola(BolaCanhao b) { Vector2 vetor = new Vector2(); float hipotenusa = (float)Math.Sqrt(Math.Pow(Imagem.Width, 2) + Math.Pow(Imagem.Height, 2)); vetor.X = Posicao.X + hipotenusa * (float)Math.Cos(RadianosCorrigido); vetor.Y = Posicao.Y - hipotenusa * (float)Math.Sin(RadianosCorrigido); if (AnguloCorrigido > 45) { vetor.Y -= (b.Imagem.Height * 1.0f / 2) * (float)Math.Sin(Radianos); } else if (AnguloCorrigido < 45) { vetor.X += (b.Imagem.Width * 1.0f / 2) * (float)Math.Sin(Radianos); } return(vetor); }
private Vector2 CalcularPosicaoBola(BolaCanhao b) { Vector2 vetor = new Vector2(); float hipotenusa = (float)Math.Sqrt(Math.Pow(Imagem.Width, 2) + Math.Pow(Imagem.Height, 2)); vetor.X = Posicao.X + hipotenusa * (float)Math.Cos(RadianosCorrigido); vetor.Y = Posicao.Y - hipotenusa * (float)Math.Sin(RadianosCorrigido); if (AnguloCorrigido > 45) { vetor.Y -= (b.Imagem.Height * 1.0f / 2) * (float)Math.Sin(Radianos); } else if (AnguloCorrigido < 45) { vetor.X += (b.Imagem.Width * 1.0f / 2) * (float)Math.Sin(Radianos); } return vetor; }