Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Shooter 2D - Implementacion timeline / editor

Iniciado por IDandT, 17 de Noviembre de 2008, 10:21:08 PM

« anterior - próximo »

IDandT

Muy buenas a todos.

Me presento, soy IDandT (evidente jeje) y soy nuevecillo por este foro, aunque llevo bastante tiempo leyendo cosas en el foro, que la verdad esta muy bien para los que nos gusta el tema o nos estamos metiendo en este mundillo por aficion o de modo profesional.

Bueno vale ya de peloteo :). Como no.... vengo a pediros consejo sobre un asuntillo. Primero introduzco un poco y luego la duda....

Estoy haciendo un shooter 2d horizontal sencillito, estilo R-Type. De momento tengo un poco la base hecha, que me permite tener un nivel con diferentes planos de scroll (un fondo fijo, uno scrollable, un starfield etc) cada layer con sus propiedades etc.

Todo está en C# y XNA. Ademas tengo un pequeño editor en Windows Forms, que de momento solo me permite editar los layers y sus propiedades.

El tema sobre el que necesito mas consejo es en los enemigos y como integrarlos en los niveles. La idea es tener toda la estructura del nivel en un XML exportado desde el editor, con la informacion de cada enemigo y eso.

Por ahora los enemigos son lo basico. Solo hay 1 tipo, son sprites normales y aparecen aleatoriamente por el lateral de la pantalla. Mi duda es que no se muy bien como montarme el nivel y el editor para decir... pues aqui aparecerá este enemigo, o aqui aparecerán 4 enemigos en estas posiciones....

Es decir, no se si meter una linea de tiempo a modo de scroll ball en el editor, y que yo  vaya añadiendo por ejemplo, en el segundo 10 aparecera este bicho aqui, en el 12 este otro aca etc... y utilizar el elapsed time del juego para controlar la aparicion... o como hacerlo.

No se muy bien si esta seria la forma, o si hay metodos mejores. No se, cualquier idea / consejo / recurso ahora mismo me iria bien.

Saludos y gracias

[EX3]

Dado que el scroll en este tipo de juegos son fijos, que se mueven automaticamente, lo de programar la aparicion de enemigos e items por eventos de tiempo, o linea de tiempo como dices, seria lo idoneo supongo, aunque en el editor te interesara mas saber en que punto del nivel quieres que aparezcan, lo que cuadrando por tiempo seria un engorro. Lo suyo seria tener posiciones definidas en el scroll, asi daria igual la velocidad que le pusieras al scroll y de esta forma no se verian afectados los eventos de aparicion de las entidades. Yo jugaria con la coordenada X del scroll para definir los puntos de aparicion.

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

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

IDandT

Muchas gracias por contestar.

Tomo nota de los consejos. Lo de usar la coordenada X de el scroll me parece buena idea, por lo que dices de que seria independiente de la velocidad. El unico detalle es que al tener varios planos de scroll cada uno con su velocidad y eso, supongo que tendria que utilizar uno de ellos como referencia para los enemigos.

Tendre que mirar como lo hago al final, este fin de semana me pondre con ello.

Gracias

kbks

Hace dos años programamos para la universidad un shotter vertical de los de toda la vida muy chapucero y rápido y lo hicimos como dice [EX3]. Simplemente hay que tener una lista de "apariciones" las cuales almacenan el tipo de enemigo, la coordenada x por la que aparece y la coordenada y del scroll en la que aparece. Seguro que hay muchas otras formas mejores y mas flexibles de hacerlo (apariciones de enemigos por otros lados de la pantalla o por el centro, por ejemplo) pero oye, cuando el tiempo apremia este método funciona.

IDandT

#4
Gracias por el apunte kbks.

Al final me he decidido por esa opcion. En mi caso es horizontal pero para el caso es lo mismo.

Lo que hare será crear un tipo de capa adicional a los que ya tengo definidos (starfield, fondo fijo, bitmap scrollable etc.), como si fuera una capa scrollable mas, pero que no se dibujará, y que como propiedad tendra el offset o coordenada X actual, una velocidad que se le indique y poco mas. A medida que se vaya aumentando el offset (updateandola en cada ciclo como el resto de capas) de este layer invisible pues se iran mostrando los enemigos segun la lista de apariciones que comentas.

Asi me facilita tambien, en el editor, el desplazamiento horizontal por el nivel, ya que sabre exactamente en que punto de la capa estoy mediante el offset, y asi poder pintar todas las capas tal como quedarian en ese punto del nivel, y ademas los enemigos tomando como referencia esa capa adicional.

Muchas gracias






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.