Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Necesito ayuda con el manejo de la isometria

Iniciado por Halcon07, 11 de Marzo de 2008, 12:56:32 AM

« anterior - próximo »

Halcon07

Hola de nuevo compañeros. 8) En esta oportunidad vengo a pedirles apoyo tecnico en cuanto al manejo de juegos en entorno isometrico, ya que de tesis de grado me he propuesto realizar un juego de esa magnitud...tal vez no es tanto como lo que espera hacer pero el tiempo me tiene colgado, lo que mas necesito de urgencia es apoyo en el manejo de colisiones, estoy manejando la libreria dx_lib32 en vb.net 2005 y pues eh conseguido hacer las colisiones cuadradas pero no me esplico como manejarlas en rombo...en diagonal...
Ayuda por favor  :x

Prompt

Tienes todo mi apoyo... si era eso lo que deseabas... xD no es broma!

Yo no se mucho de este tema, vale? pero... mientras alguien te contesta, se me ocurre lo siguiente.

Los juegos isometricos que yo estoy acostumbrado a ver, son con una malla en la pantalla cuadricular. Lo que es isometrico, esa sensación la dan los "objetos" en 2D, los tiles. Toda la lógica transcurre en 2D y con esta cuadricula.

Evidentemente es muy dificil tener una buena perspectiva, otra opción es mantener esta cuadricula y sus colisiones lógicas poniendolas en 3D y rotandolo todo, o moviendo la camara, lo pones todo en 2D con billboards si es necesario y mantienes el movimiento de la camara fijo, sin dar la posibilidad de rotarlo solo sigue al personaje.

Esto ultimo no es lo habitual. Creo... Un saludo! y animo!

[EX3]

Cita de: "Prompt"Evidentemente es muy dificil tener una buena perspectiva, otra opción es mantener esta cuadricula y sus colisiones lógicas poniendolas en 3D y rotandolo todo, o moviendo la camara, lo pones todo en 2D con billboards si es necesario y mantienes el movimiento de la camara fijo, sin dar la posibilidad de rotarlo solo sigue al personaje.

Esto ultimo no es lo habitual. Creo...
Posiblemente sea lo habitual pero con dx_lib32 le va ser imposible manejar 3D me temo :lol: Mas bien creo que es lo primero. Como bien dices la perspectiva la representa la escena en pantalla pero no su logica:


.........Logica..........................Escena

Lo mas complejo seria en cierta manera el mover los objetos en la escena ya que tendrias que moverte tanto en x como en y para recorrer en isometrica pero la logica trabajaria en plano, lo que resultaria mas facil. Para el caso solo tendrias que ingeniartelas para hacerte una funcion que convirtiera las coordenadas logicas xy en coordenadas isometricas (no me digas como :lol:). De esta forma la perspectiva no te seria problema para calcular colisiones o mover objetos.

Aun asi date un paseo de vez en cuando por Google por que recuerdo haber visto alguna que otra web hablando sobre desarrollos de motores isometricos y supongo que trataran formas de implementar colisiones y demas historias.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Buffon

tal como ha dicho prompt.

Una cosa es la estructura de datos que utilizas para guardar la información y otra como la representas por pantalla.

Desde el punto de vista de un ingenierio te diría que utilizaras el diseño en tres capas, pero pensando que vas a programar un juego y hay ciertas reglas o restricciones que te vas a tener que saltar.

http://es.wikipedia.org/wiki/Arquitectura_de_tres_niveles

desde el punto de vista de un juego, la presentación es lo que muestras a los usuarios, negocio sería donde realizas todas las comprobaciones IA, COLISIONES, movimiento etc, base de datos se encargaría de guardar puntuaciones y otras cosas que requieran de guardar información de forma física.

para entendernos, cada una de las tres capas tiene un ENORME controlador que precisamente controla todas sus clases, y la única forma que hay de acceder a información de otra capa es mediante ese controlador.

Buffon

Cita de: "[EX3"]
Cita de: "Prompt"Evidentemente es muy dificil tener una buena perspectiva, otra opción es mantener esta cuadricula y sus colisiones lógicas poniendolas en 3D y rotandolo todo, o moviendo la camara, lo pones todo en 2D con billboards si es necesario y mantienes el movimiento de la camara fijo, sin dar la posibilidad de rotarlo solo sigue al personaje.

Esto ultimo no es lo habitual. Creo...
Posiblemente sea lo habitual pero con dx_lib32 le va ser imposible manejar 3D me temo :lol: Mas bien creo que es lo primero. Como bien dices la perspectiva la representa la escena en pantalla pero no su logica:


.........Logica..........................Escena

Lo mas complejo seria en cierta manera el mover los objetos en la escena ya que tendrias que moverte tanto en x como en y para recorrer en isometrica pero la logica trabajaria en plano, lo que resultaria mas facil. Para el caso solo tendrias que ingeniartelas para hacerte una funcion que convirtiera las coordenadas logicas xy en coordenadas isometricas (no me digas como :lol:). De esta forma la perspectiva no te seria problema para calcular colisiones o mover objetos.

Aun asi date un paseo de vez en cuando por Google por que recuerdo haber visto alguna que otra web hablando sobre desarrollos de motores isometricos y supongo que trataran formas de implementar colisiones y demas historias.

Salu2...

te puedes crear una matriz de posición respetando el angulo de perspectiva.

vaya frase he soltado xD

Sante

En su día publiqué una serie de tutoriales sobre programación isométrica que a lo mejor te pueden servir de algo, no son muy avanzados, pero bueno: http://www.wired-weasel.com/users/serhid/blog/?page_id=4

En cuanto a colisiones, yo separaría toda la lógica del juego (que seguiría usando el mapa cuadrado dividido en casillas) de su representación isométrica. Las colisiones las podrías hacer en base a casillas, o en base al "área" que ocupe cada objeto o personaje en el plano 2D. Aunque como en todo, dependiendo de lo que busques tienes muchas opciones más simples o más complejas.

Un saludo.

davirro

Hace un tiempo hice un sencillo codigo de ejemplo sobre un mapa isometrico pero hecho en Blitz3D y ayudado por los tutoriales de Sante.
El mapa lo trataba en 2D pero a la hora de dibujar traducia los datos a isometrico con un algoritmo.
Si quieres puedes verlo aqui

http://balearinnova.com/gamedevelopers/viewtopic.php?f=28&t=65

Halcon07

Muchas gracias a todos por el apoyo, espero pueda comprender todo y manejarlo en lo que necesito, ojala la libreria de vb me lo permita, que confio en que si :lol: o si alguien tubiera algun ejemplito manejado alli seria de aun mas ayuda gracias... :P

Halcon07

Muchas gracias a todos por el apoyo, espero pueda comprender todo y manejarlo en lo que necesito, ojala la libreria de vb me lo permita, que confio en que si :lol: o si alguien tubiera algun ejemplito manejado alli seria de aun mas ayuda gracias... :P

[EX3]

Cita de: "Halcon07"ojala la libreria de vb me lo permita, que confio en que si :lol:
Para la logica, de dx_lib32 solo necesitaras la funcion de interseccion de cajas para calcular colisiones, para lo grafico tienes la funcion de dibujo avanzada que transforma un grafico a proyeccion caballera e isometrica (un ahorro para el asunto de hacerte graficos si no tienes grafista a mano). Por lo demas simplemente tendras que traducir el algorritmo de conversion de coordenadas que mencionan arriba de C++ a VB6.0.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






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.