Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2013, 19:08
Trhminpc
 
Fecha de Ingreso: junio-2013
Ubicación: Vietnam
Mensajes: 1
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación ¿Como resuelvo esta implementación C# para mi Game Engine?

Hola que tal muchimas gracias por dedicar su tiempo en responder mis deducciones ya que lo necesito realizar para mi proyecto que estoy realizando y llevando a cabo. Esto es una clase que estoy realizando para su posterior uso con otras Clases.
Estoy trabajando con C# .net
Quiero compartir tambien mis conocimientos con ustedes asi que por favor sean de lo mas explicitos posible para que podamos entendernos uste y yo debidamente "/_^

Tengo que crearme unas Physics para poder implementarlas en mapas bidimensionales,

pero no logro saber como aplicarlos sobre un plano bidimensional como un form y si me esta faltando algo en especial con respecto a los puntos de coordenadas y demás; acá dejo mi desarrollo para que puedan ayudarme:

///mi clase es del tipo Physics que luego puedo llamar para establecerlo como tipo en las demas clases

class physics_game
{
//defino mis atributos necesarios para las fisicas del entorno en este caso un rectangulo....

protected int ref_id;
protected Map ref_mapa;// clase aún no elaborada y tampoco definida del tipo MAP
protected int ref_x;
protected int ref_y;
protected Rectangle ref_recta;
protected Rectangle ref_recta_bomb;
protected bool ref_enVida;
protected bool ref_enMovimiento;


public physics_game(int id)//establenciendo valores game engine y sus puntos de referencia...
{

ref_id = id;
ref_recta = new Rectangle(-5, -5, 10, 10);
ref_recta_bomb = new Rectangle(0, 0, 0, 0);
ref_enVida = true;



}

//establecimiento de propiedades/encapsulamientos
public int Identification
{
get { return ref_id; }

}

public Rectangle Trayectoria01
{
get { return ref_recta; }//obtengo un tipo de valor trayectoria

}

public Rectangle Trayectoria02
{

get { return ref_recta_bomb; }//obtengo una tipo de valor trayectoria bomb

}

public bool estaVivo//mi objeto se encuenttra en estado False/True con valor estaVivo
{
get { return ref_enVida; }
set { ref_enVida = value; }
}

public int X
{
get { return ref_x; }
}

public int Y
{
get { return ref_y; }

}


public void establecer_ref_recta(int x, int y, int width, int height)
{
//constructor de referencias y párametros establecidos ref_rect
ref_recta.X = x;
ref_recta.Y = y;
ref_recta.Width = width;
ref_recta.Heigth = height;
}

public void establecer_ref_recta_bomb(int x, int y, int width, int height)
{
//constructor de referencias y parámetros establecidos ref_rect_bomb
ref_recta_bomb.X = x;
ref_recta_bomb.Y = y;
ref_recta_bomb.Width = width;
ref_recta_bomb.Height = height;

}

public virtual void establecer_X_Y(int x, int y)//reeplazo de valores a cada uno de sus valores de metodos Coordenadas X - Y
{
ref_x = x;
ref_y = y;

}

public void establecer_X_Y(Point p)
{
establecer_X_Y(p.X,p.Y);//estableciendo y referenciando puntos sobre el plano bidimensional
}

public virtual void establecerMapa()
{
//clase de mapa sin definir
}

//objeto estado_cosa -> True; se encuntra en movimiento
public virtual void startMove()
{
if (cosa != null)
{
ref_enMovimiento = true;
}

}

//objeto estado_cosa -> False; se encuentra inmóvil
public virtual void stopMove()
{
if (cosa != null)
{
ref_enMovimiento = false;
}
}

public virtual void Murio()//metodo accesible para renortar que el objeto cosa ha muerto y la referencia Vida se encuentre en False//
{
stopMove();
ref_enVida = false;
}

public double Distancia(int x, int y)
//aqui realizo la formula para calcular la dintacia basandome de la referencia de dicho punto y me devuelva un cuadrado.
{
return Math.Sqrt((ref_x - x) * (ref_x - x) + (ref_y - y) * (ref_y - y));
}

// esta operación que realizo me baso de una formula trigonométria para calcular la distancia el Sqrt calcula valores que devuelven un Valor Cuadrado



//defino un metodo llamado puntoSobreLinea
public static int puntoSobreLinea(int x1, int y1, int x2, int y2, int px, int py)
{
int a = y1 - y2;
int b = x2 - x1;
int c = x1 * y2 - x2 * y1;
}



Mi conclusión:
¿Que me esta faltando para que mi physic funcione perfectamente?
¿Como puedo implementar mi codigo sobre un form o algo parecido para empezar mis pruebas y verificar que no tenga errores y asi poder brindar mi codigo hacia el proyecto de trabajo?
Cabe mencionar que la variable Map que no he creado como clase ni definido esa es una Clase que deriva y mandaría a llamar a este apartado... espero que me entiendan y me ayuden...

Muchas gracias y adios.