public void TesteoDeColision(Colisionable colisionable) { if (HuboColision(colisionable)) { accionesAnteColision.ForEach((accion) => accion.Colisionar(meshTipoCaja, colisionable)); } }
public override void Colisionar(MeshTipoCaja mesh, Colisionable colisionable) { if (colisionable.movimiento.Y <= 0) { //var centroCaraY = CaraBuilder.Instance().Mesh(mesh).HallarCentroDeCara("y"); //personaje.Mesh.Transform *= TGCMatrix.Translation(personaje.Position.X, centroCaraY.Y, personaje.Position.Z); ; colisionable.movimiento.Y = 0; colisionable.ColisionoEnY(); } }
public override void Colisionar(MeshTipoCaja meshTipoCaja, Colisionable colisionable) { if (SeEstaMoviendoHaciaMi(colisionable)) { //if(colisionable is Personaje) { // AgregarRozamiento(colisionable); //} // Es feo, pero es la unica que se me ocurre, porque solo tenes que aplicarle rozamiento al personaje, // si empuja las dos cajas y aplicas rozamiento a la segunda caja, el efecto es que se termina atrasando la segunda // por el rozamiento y se mete adentro de la que esta mas cerca del personaje, o eso me entendi... meshTipoCaja.movimiento += Desplazamiento(colisionable); } }
private bool HuboColision(Colisionable colisionable) { var puntoInterseccion = TGCVector3.Empty; foreach (Rayo rayo in rayos) { rayo.Colisionar(colisionable.BoundingBox()); if (rayo.HuboColision()) { return(true); } } return(false); }
public Boolean ColisionaConColisionable(Colisionable unColisionable) { return(BoundingBoxesDelModelo().Any(bound => TgcCollisionUtils.testAABBAABB(bound, unColisionable.GetBoundingBox()))); }
public Boolean ColisionaConColisionable(Colisionable unColisionable) { return(modeloNave.ColisionaConColisionable(unColisionable)); }
public bool comprobarColision(Colisionable objeto) { return(true); }
protected bool SeEstaMoviendoHaciaMi(Colisionable colisionable) { return(evaluarCondicionMovimiento(colisionable)); }
protected TGCVector3 Desplazamiento(Colisionable colisionable) { return(getVectorMovimiento(colisionable)); }
protected void AgregarRozamiento(Colisionable colisionable) { setCoordenadaMovimientoColisionable(colisionable, getCoordenadaMovimientoColisionable(colisionable) / 3); }
public abstract void Colisionar(MeshTipoCaja meshTipoCaja, Colisionable colisionable);