Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Simulación De Carretera En 2d

Iniciado por javi2oo1, 30 de Marzo de 2004, 12:51:20 AM

« anterior - próximo »

javi2oo1

Hola,
alguien me podría orientar o indicarme algún lugar donde pueda encontrar información sobre como simular una carretera en 2D. Quería programar un juego de carreras para móviles en J2ME en plan OutRun, o Moto GP, a la antigua usanza. Además hay que tener en cuenta la limitación de estos terminales ya que no soportan funciones trigonometricas ni coma flotante.
Un saludo y gracias.

Loover

 Puede ayudarte poner "mode 7" en google.

Salen algunas interesantes como esta: http://www.gamedev.net/community/forums/to...topic_id=211404

Y aquí un chaval mexicano que preguntaba en foros, su modo 7 ya funciona pero dice que va más lento que el caballo del malo, podrías ponerte en contacto con él y echarle un vistazo a su código: http://www.idevgames.com/forum/showthread.php?t=4244
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Zaelsius

 Yo creo que no hace falta usar "modo7" ni nada.. lo fundamental es dibujar el bandeado de lineas de colores alternos segun pasa el tiempo y segun el recorrido.

P.ej., en las curvas las lineas superiores se desplazan hacia uno de los lados. Cuando vas deprisa los colores de las lineas se alternan más rápido que cuando vas despacio.. no sé si me explico.

Con eso y sprites del decorado a distintos tamaños(arbustos, señales) ya sobra. Para dar sensación de carretera inclinada, vas variando la altura del horizonte. No sé de ninguna "biblia" para este tipo de juegos, pero si pruebas varios y te paras a observar verás que se puede copiar "a ojo"  :)

En estos juegos sólo hay que girar a izq/der, el modo 7 es para cuando quieres más libertad, como en el Mario Kart, e implica texturizar un plano.. creo que no es viable para terminales medios.

javi2oo1

 Hola,
gracias por vuestra ayuda. Creo que me inclino por la segunda opción dado al bajo potencial de los móviles. He estado revisando algún juego de este tipo y no parecen que utilicen ningún decorado de carretera ya hecho y lo vaya mostrasndo como el modo 7. Lo que parece es que calculan la carretera en tiempo real. Había pensado usar un tabla de 2xY siendo el primer elemento la variación respecto al pnto en que estamos del circuito, por ejemplo para una recta sería 0,0,0,0,0,0 y cuando empezamos a girar hacía la izquierda por ejemplo sería -2,-2,-2,-3,-3 y hacia la derecha 2,2,2,3,3 .... y la segunda coordenada se podría usar para la inclinación del plano haciendo de esta forma la banda horizontal más ancha o más estrecha según sea bajada o subida. Siendo Y todo el recorrido. Ahora tocaría el turno de representar todo esto en pantalla, se os ocurre alguna forma? Alguna función que trace la curva que pase por estos puntos? Es factible esta idea? Una vez hecho esto es fácil incorporar otros objetos en el escenario como arboles,...
Una vez más, gracias ;o)

Zaelsius

 No hay que dibujar curvas, sólamente lineas horizontales, algo así:

--------*****==========******---------

Partes:
- Es fuera pista.
* Delimita la pista
= Carretera

Cada parte podría ser un color, eje: marron, rojo, gris.

Tienes que variar la longitud de cada parte de acuerdo al trazado y lejanía. En una curva a derecha tendrias algo así:


-------------------***=======***-------
---------------****========****------
------------****=========****-------
---------*****=========****--------
--------****===========*****------
------*****============*****-----

Creo que más o menos se entiende. Tienes que hacerte unas funcioncillas para calcular los desplazamientos y longitudes de cada parte para cada línea.

javi2oo1

 Hi!
Entonces la idea de la tabla sería correcta?
Que tendría que hacer, calcular cada punto en el espacio que lugar ocuparía en 2D y trazar rectangulos entre esos puntos, es decir:

 (0,y1)                     (x1,y1)  (x2,y1)        (x3,y1)  (x4,y1)               (xT,y1)
            ........................-----.....................-----..........................
            ........................-----.....................-----..........................
            ........................-----.....................-----..........................
            ........................-----.....................-----..........................
 (0,0)    ........................-----.....................-----.......................... (xT,0)
                                (x1,y1)  (x2,y1)        (x3,y1)  (x4,y1)  

(Este ejemplo es para la primera linea horizontal, luego vendrían las siguientes)
Mi función debe calcular x1,x2,x3,x4,y1  a partir de mi coordenada de visión (x,y,z) y luego debería realizar un metodo que me pintase estos rectangulos del color que toca.

Es así?

javi2oo1

 Ops! En el ejemplo no ha salido la tabulación. ¿ Se entiende ?

Zaelsius

 Sí, mas o menos sería algo así. Tampoco intentes plantear ecuaciones muy complejas, con que den un resultado parecido al de los juegos típicos sobra. Luego puedes optimizar pintando rectángulos de grosor 2 o 3 en vez de líneas, para ahorrar cálculos, dependiendo de lo rápido que funcione en el móvil.






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.