MrAlexanderFS003 / OpenGL-GLUT-Colisiones-de-figuras-en-2D

En este proyecto se utilizan los repositorios anteriores (movimiento con el ratón y texto en 2D).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COLISIONES EN FIGURAS 2D

Antes que todo este código puede ser usado en proyectos que usen un plano en 3D .

Solución a problemas de ejecución

Al momento de querer ejecutar el programa les saldra error, pero tranquilos, este error tiene una solución sencilla, para solucionarlo tenemos que seguir lo siguiente:

Copia lo siguiente: _CRT_SECURE_NO_WARNINGS

Solucion

Modificar fuente de letras

El siguiente código solo es para ejemplo , no esta completo. Para modificar la fuente de letra nos guiaremos de esta pag.

https://www.opengl.org/resources/libraries/glut/spec3/node76.html#SECTION000111000000000000000

Cada font_style guarda el tipo de fuente de la letra , quizas no hay muchas fuentes , pero hay librerias que ayudan con mas variedad.

void Texto::printw(int val, float x, float y, float z, const char* format, ...) {
	if (val == 1) {
		font_style = GLUT_BITMAP_TIMES_ROMAN_10; 
	}
	else {
		font_style = GLUT_BITMAP_TIMES_ROMAN_24;
	}
}

Uso de la geometría analítica básica

Para saber cuando una figura geométrica colisiona con otra, debemos saber su posición en X y Y en ambas figuras. Para ello se ha usado la formula de distancia entre dos puntos:

$$d = \sqrt {\left( {x_1 - x_2 } \right)^2 + \left( {y_1 - y_2 } \right)^2 }$$

Realizado en el mismo código (Codigo de ejemplo):

void Actualizar(){
  distancia = sqrt(pow(posX1 - posX2, 2) + pow(posY1 - posY2,2));
  if(distancia <= 10){
    //hay colision
  }
}

Mas colisiones

Para mas colisiones puede usar la siguiente pagina : https://ants.inf.um.es/staff/jlaguna/tp/tutoriales/colisiones/index.html

Pag

Programa en Ejecución:

Ejec

About

En este proyecto se utilizan los repositorios anteriores (movimiento con el ratón y texto en 2D).


Languages

Language:C++ 100.0%