/// <summary> /// Mueve la pelota hacia el punto indicado, /// el movimiento hacia ese punto es lineal, /// en base a ese movimiento tambien hace la rotacion de la pelota /// </summary> private void Mover(Vector3 movimiento, float elapsedTime) { Vector3 lastsphereposition = sphere.Position; Vector3 lastboxposition = box.Position; moveTo(movimiento); ColisionInfo colisionInfo = collisionManager.GetColisiones(box.BoundingBox); foreach (IColisionablePelota objetoColisionado in colisionInfo.getColisiones()) { objetoColisionado.ColisionasteConPelota(this); if (hayTiro()) { //solo rebota con el tiro, con el pase no hace nada if (tiro is TiroParabolicoSimple) { //aca uso el movimiento real, sin tener en cuenta la colision, para saber la direccion que toma el tiro en el rebote tiro = new TiroParabolicoSimple(objetoColisionado.GetDireccionDeRebote(movimiento), objetoColisionado.GetFuerzaRebote(movimiento, tiro.getFuerza())); } } else if (hayMovimiento(movimiento)) { //aca uso el movimiento real, sin tener en cuenta la colision, para saber la direccion que toma el tiro en el rebote tiro = new TiroParabolicoSimple(objetoColisionado.GetDireccionDeRebote(movimiento), objetoColisionado.GetFuerzaRebote(movimiento, 50)); } } //arma la transformacion en base al escalado + rotacion + traslacion sphere.Transform = getScalingMatrix() * getRotationMatrix(movimiento, elapsedTime) * Matrix.Translation(sphere.Position); }
public void Centro(Vector3 posicionJugador, float fuerza) { Vector3 direccion = posicionJugador - sphere.Position; direccion.Normalize(); tiro = new TiroParabolicoSimple(direccion, fuerza); ReproducirSonidoPatear(); }
/// <summary> /// Tira la pelota hacia un punto al raz del piso /// </summary> /// <param name="posicionJugador"></param> /// <param name="fuerza"></param> public void Pasar(Vector3 posicionJugador, float fuerza) { this.tiro = new TiroLinealAUnPunto(sphere.Position, posicionJugador, fuerza); }
private void resetTiro() { this.tiro = null; }
/// <summary> /// Metodo para patear una pelota, recibe el vector de direccion y la fuerza. /// </summary> /// <param name="direccion"></param> /// <param name="fuerza"></param> public void Patear(Vector3 direccion, float fuerza) { tiro = new TiroParabolicoSimple(direccion, fuerza); ReproducirSonidoPatear(); }