manejar el tiempo de la salida de naves enemigas

Started by hokuto40, August 04, 2017, 08:14:32 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

hokuto40

Hola a todos,lo primero pongo el enlace a este video
https://www.youtube.com/watch?v=LhzlUter3j0

Bueno la pregunta es si os fijais en el juego del video la salida de las naves enemigas lo hace cada sierto tiempo pero no se como hacerlo igual,yo he intentado con contadores y con random pero no queda igual.

Si veis el juego del video parece que controla el tiempo de salida de las naves de manera manual,como que salgan en el segundo 5 para despues salir en el segundop 20,pero no tadas hacen eso,y bueno agradeceria que me comentarais como hacen esta rutina para que mi juego de naves quede medio bien.

Por ultimo decir a drumpi que vi tu ejemplo pero como ya he comentado otras veces si me pones mas de diez lineas de codigo me pierdo,ademas estuve buscando el process main para orientarme y no habia ninguno.Bueno hasta pronto

l1nk3rn3l

usar una estructura  de tiempo.. o un array de tiempo .. o ambos

array_tiempo[0] = 2 secs aparece
array_naves[0] = 1,2,3

array_tiempo[1] = 6 secs aparece
array_naves[1] = 3,5 


o consultar de vez en cuando la posicion del scroll para realizar la aparicion de nuevos objetos/naves...


Drumpi

Generalmente, en los juegos de naves (y esto es especulación, porque nunca he visto el código de un juego de naves) hay un contador que sincroniza todo el juego, en concreto, la salida de los escuadrones enemigos.
Se supone que cuando el contador llega a un tiempo determinado (por ejemplo, a los 5000 milisegundos), se lanza el primer escuadrón, y cuando llega al siguiente tiempo (a los 7000 milisegunods, es decir, dos segundos más tarde que el primero) se lanza un segundo escuadrón.
Ojo que digo "escuadrón", no "nave". Un escuadrón es un proceso que crea una nave cada x milisegundos y les dice la ruta que deben seguir.

La idea es que tengas un proceso que incrementa un contador global desde el inicio del nivel, y aparte tengas otro proceso consultando su valor, de forma que si coincide con alguno de los tiempos que tú has decidido, lance el escuadrón adecuado.

Hace tiempo, diseñé algo parecido, pero en lugar de eso, los tiempos se basaban en que un determinado escuadrón hubiera muerto, porque el juego se basaba es destruir lo más rápido posible. Un escuadrón moría cuando sus naves morían o se salían de pantalla. su código era algo así:

//escuadron 1 tarda: 400/2 + 50*n frames en desaparecer
    cont=0;
   
    //método de espera por tiempo******************************************************
    for (cont=0;cont<300;cont++) frame; end
    //*********************************************************************************
   
    l2v_escuadron1(75*100,0,file,1,1, 4, 4,4,3,6);
    for (cont=0;cont<400;cont++) frame; end
    l2v_escuadron1(200*100,0,file,1,1, 4, 4,4,3,6);
    for (cont=0;cont<400;cont++) frame; end
   
    //método de espera por escuadrón (hasta que no sea eliminado, no sale el siguiente)
    temp1=l2v_escuadron1(136*100,0,file,1,1, 4, 4,4,3,6);
    while (exists(temp1)) frame; end
    //*********************************************************************************
    for (cont=0;cont<100;cont++) frame; end
   
    temp1=l2v_escuadron1(75*100,0,file,1,1, 4, 4,4,3,6);
    while (exists(temp1)) frame; end
    temp1=l2v_escuadron1(200*100,0,file,1,1, 4, 4,4,3,6);
    while (exists(temp1)) frame; end
    temp1=l2v_escuadron1(136*100,0,file,1,1, 4, 4,4,3,6);
    while (exists(temp1)) frame; end


Como ves, hay dos comportamientos diferentes: un bucle con un contador, para hacer una pausa entre el lanzamiento de un escuadrón y otro (que te puede servir a ti), y un WHILE-EXISTS, que hace una pausa mientras el proceso escuadrón sigue vivo.


En mis códigos no busques un "process main" porque no los hay. En el PRG (sólo escribo uno por cada proyecto) hay un BEGIN. Ese es el proceso MAIN.

Como ya dije, ando un poco out últimamente, así que lo siento, pero no puedo ser más explícito ahora, porque es que no tengo tiempo ni para mis proyectos. Yo te lanzo ideas, y tu debes leerlas, entenderlas y MODIFICARLAS para ver si te dan ideas nuevas a ti.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

hokuto40

Gracias a los dos por responderme,intentare hacer lo que me comentais a ver que me sale :D

hokuto40

Hola a todos,otra vez estoy por aqui,solo queria hacer un par de preguntas.

Primera-queria preguntarle a l1nk3rn3l que como va lo del autocompletado y lo nuevos ejemplos para el bennugpack,ya ha pasado bastante tiempo desde que te lo pregunte y no ha habido noticia,no se si al final te has echado para atras o simplemente no has tendido tiempo.

Segunda pregunta-queria preguntarle a drumpi si vas a hacer esos tutoriales que me dijistes o tal vez sigues sin tiempo, y la cosa va para largo.

Ultima pregunta-queria preguntarle a SplinterGU que como va el bennugd2,tienes intencion de sacar una beta antes de que finalice el año o todavia queda mucho y queria saber si va hacer parecido a bennugd o estas haciendo algo completamente nuevo mas parecido a la programacion orientda a objetos como java.

y bueno me voy despidiendo,vuelvo a retomar bennugd donde lo deje porque lo tenia un poco abandonado,la razon es porque no avanzaba y estaba un poco agobiado y decidi dejarlo por un tiempo.
He estado con clickteam fusion 2.5 haciendo algunos juegos de naves y ahora pues ya tengo otra vez ganas de ponerme con bennugd, :D a ver si ahora consigo avanzar mejor.Hasta pronto

l1nk3rn3l

Quote from: hokuto40 on October 02, 2017, 09:54:37 AM
Primera-queria preguntarle a l1nk3rn3l que como va lo del autocompletado y lo nuevos ejemplos para el bennugpack,ya ha pasado bastante tiempo desde que te lo pregunte y no ha habido noticia,no se si al final te has echado para atras o simplemente no has tendido tiempo.



Lo del auto completado y sintaxis mejorada ya esta incluida en el bennupack 2.9
hay funciones que faltan pero ya esta la mayoria...

https://sourceforge.net/projects/coldev/files/bennupack/

Hay nuevos ejemplos que puedes descargar.. plantillas de muy buena calidad para empezar
desarrolladas por la comunidad...




Drumpi

Por mi parte, lo de los tutoriales ni están ni se les espera a corto plazo.
Para que te hagas una idea, hoy no he ido a la Escuela de Idiomas porque tenía que acabar algo en el trabajo, y así estamos cada dos semanas. Apenas saco dos horas al día para lo que sea, y acabo reventado de tanto código, así que sí, la cosa va para largo.

De hecho, el tercer video de mi canal de youtube grabé casi todo el material que necesitaba en agosto ¡del año pasado! De hecho, el guión es la mitad de largo que los anteriores y apenas llevo la mitad montado (aunque también es cierto que llevo casi un año sin tocar el KDenlive) ^^U
Y el caso es que desde entonces he desarrollado en mi cabeza el guión de tres o cuatro tutoriales de creación de videojuegos.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

hokuto40

Hola l1nk3rn3l,he estado probando el benupack 2.9 y esta perfecto el autocompletado,has hecho un gran trabajo.
Es cierto que faltan algunas por autocompletar pero ya las iras poniendo,para mi esta genial y las plantillas tambien estan genial.Gracias

Drumpi es una pena que no tengas tiempo ni para tus proyectos,en fin tendre que ponerme las pilas.Hasta pronto ;)