Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - Alvaro (Garred)

#1
Proyectos / Problema con cámara 3d: Caminando por un mini planeta
23 de Diciembre de 2009, 03:16:30 AM
Buenas. Estoy retomando la programación en 3d y se me ocurrió hacer un miniproyecto para ir calentando, pero ahora he visto que lo que tenía pensado escapa a mis conocimientos.

La idea es una cámara en primera persona que se mueva por un planeta chiquitín. Nada más. Quiero que el jugador se pueda desplazar libremente por el planeta. ¿El problema? Los puñeteros ángulos de la cámara.

¿Cómo hago para que la cámara, al desplazarse por el planeta, tenga el ángulo correcto? Es decir, que desde la perspectiva de la cámara, el suelo siempre esté abajo y el cielo arriba. Gráficamente este es el problema:



El eje de coordenadas pequeño de debajo a la derecha son las coordenadas globales. La flecha roja es el eje X, la verde es el Y, y la azul el Z. Los otros tres ejes de coordenadas son de una hipotética cámara desplazandose por el planeta. El eje verde (Y) es hacia donde mira la cámara, y el eje azul (Z) la dirección hacia donde el cielo debería quedar para la cámara.

El problema es conseguir que los ejes de la cámara tomen esta apariencia al desplazarse:



Y, además, permitir al jugador girar la cámara libremente como si de un shooter se tratase. El jugador debería poder controlar los ejes azul y rojo con el ratón.

Lo que he intentado hacer para solucionar el problema es muy burro y artesanal. El motor que uso tiene una instrucción para hacer que un objeto apunte a otro. Lo que he intentado es que la cámara en cada frame apunte al centro del planeta y después se le aplica la rotación a los ejes vertical y lateral que corresponda. El problema entonces es que según la latitud en que la cámara se encuentre, ésta gira bien o no. Y la verdad es que no tengo ni idea de por qué le pasa esto.

He estado buscando y he encontrado algo llamado cuaterniones (quaternions en el idioma del imperio) y aunque más o menos sé que es lo que hacen, no tengo ni idea de como aplicarlos al problema, aunque estoy casi seguro de que son parte de la solución.

Si alguien me puede ayudar se lo agradeceré de por vida. Si no pues nada, me busco otro entretenimiento.
#2
General / Prueba de IA táctica
21 de Abril de 2009, 04:09:34 PM
Hola, esto se una prueba de IA que hice para un posible juego de acción:

http://garred205.googlepages.com/programacion

Está programado en blitzmax e incluyo el codigo. La IA no hace uso de información "privilegiada" (como saber en cada momento donde está el jugador, aunque si te ve un enemigo todos saben donde estás), salvo conocer el mapa a priori, y debo decir que es muy dificil de matar a un solo enemigo. Por eso en la demo hay 10 niveles en los que va aumentando las capacidades de los enemigos hasta ajustarse a las del jugador.

A ver que os parece.
#3
 Estoy tratando de hacer un juego de plataformas bidimensional vectorial.

Mi problema es que no se muy bien q estructura de datos utilizar para almacenar los poligonos de los que estara compuesto el escenario (poligonos 2D, compuestos de triangulos). Estoy seguro de que sera uno tipo arbol, pero no me decanto por ninguno ya q se muy poco del tema.

Las operaciones que necesitaria realizar en el arbol con esos poligonos, por orden de importancia, serian:
- Hallar los poligonos que ocupan una region rectangular cualquiera (para saber que poligonos entran en el area de la camara).
- Hallar si 2 poligonos poligonos se solapan (no necesito hallar la interseccion en si).
- Hallar el punto/arista/poligono mas cercana a un punto/arista/poligono.
- Sacar y meter poligonos.

Si alguien me puede guiar un poco se lo agradeceria. Un saludo.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.