Scroll animado, se puede? como?

Started by Neodreamer, June 17, 2010, 11:31:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Neodreamer

Holas, quiero hacer el clasico juego de naves con vista superior o lateral y para darle algo de vidilla quiero q el fondo ademas de ser un scroll(no ciclico, sino del largo de la fase), tenga animacion.
Deberia crear procesos por cada animacion de cada punto, o puedo hacer la animacion completa(x ejemplo 10 frames de fondo)y animarlos en el scroll?
Consumiria mucho esto?
Algun consejo aparte del metodo de uso?
Gracias

FreeYourMind

Puedes pegar animaciones/procesos a las coordenadas del scroll.

Neodreamer

Perdona mi simpleza pero podrias poner un ejemplo mas detalles? Despues de 15 años estoy retomando esto de la programacion y asi dicho, flojeo bastante.
Te refieres a lo q dije yo de poner cada animacion en un proceso independiente con coordenadas fijas del scroll de manera q cuando este se mueva, los procesos hagan su animacion?

Q consumiria mas recursos, un proceso por animacion, o un solo proceso q iniciara todas las animaciones?

Gracias x responder tan rapido

FreeYourMind

Pues aqui esta dificil, pero mirate el código de Castle Of Dr. Malvado

SplinterGU

Si lo que queres es animar el fondo completo, la unica opcion que se me ocurre es que cambies el grafico que usas como fondos del scroll.

Con esto quiero decir, si tu grafico de fondo es el 500, que modifiques el contenido de ese grafico cuando quieras cambiar de frame, esto sea, pintando arriba o mejor haciendo un map_del y un fpg_add del nuevo mapa en el id 500.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Neodreamer

Oñu...no entendi nada.
El ejemplo es simple, quiero poner un fondo de una ciudad y q en esta pasen cosas, desde vehiculos moviendose, explosiones, tiros, pero siempre los mismos.
O eso o como dijimos antes, hacerlo todo aleatorio en un plano z inferior al del protagonista y sus acciones, de modo q genere procesos de disparos, explosiones y movimientos(pnj de fondo).
Gracias

SplinterGU

lo que dije es demasiado facil, si lo lees nuevamente lo vas a entender, pero no entiendo si quieres animar el fondo completo o solo parte de el.

bueno, quizas no sabes como se inicia un scroll, entonces puede que no se entienda lo que dije.

pero con ver start_scroll, y lo que dije te deberias dar cuenta de lo que digo, si no pregunta y te aclaro la duda.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Neodreamer

Gracias, lo mirare y hare un par de pruebas en cuanto pueda.

Lo de "cuanto" del fondo quiero animar, formaba parte de mi pregunta.
En el ejemplo te ponia mas o menos lo q quiero hacer. Si es una fase tipo R-type, practicamente todo el fondo tendria tramos animados, pero si lo tengo q hacer por procesos en plano superior al fondo e inferior al prota, pondria menos animaciones o las cargaria solo cuando entrase en pantalla...q seria mejor?

SplinterGU

si todo el fondo tiene animaciones, creo que lo mejor es que cada secuencia sea un fondo completo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DjSonyk

Buenas,aqui va unas ideas,si lo que quieres es animar por ejemplo las estrellas tienes alguna sentencia como Rgbscale con la que poder hacer unos efectos de luz,color....ect .
En cuando a lo de tu ejemplo de la cuidad,yo aria unos miniprocesos que se encargara de animarlos ,y que se creen bien al principio del nivel o bien cuando se llegara a un punto determinado...

Neodreamer

#10
Imagino q para no cargar mucho de procesos, deberia de hacerlo al llegar a ciertos puntos o con rangos de coordenadas para q se cree y destruya siempre q no este el prota entre ciertas x e y.
Creo q va a ser lo mejor. Solo habria q poner la z distinta.
Gracias a todos, ire probando a ver.

X cierto, splinter: ya entendi lo q me decias. Al iniciar el scroll se le da el id del mapa a usar, si creo un loop o bucle q borre y añada y cambie dicha id o mapa en el fpg(son 2 opciones distintas no?) al cargar el scroll, mostraria cada frame de la animacion?
opciones:
- start_scroll id x, bucle de x=1 to 20, frame(no esta puesto con la sintaxis correcta, solo es para la idea)
- start_scroll id 500, (imagen original en el fpg), map_del, fpg_add en imagen 500(con la siguiente imagen de animacion). ¿Se refresca el id del scroll estando ya inicializado? o habria q parar el scroll e iniciarlo?

Cual de las 2 opciones es posible y optima segun vuestro criterio?

La momia que fuma

Otra opción simple y fácil cuando la animación va a cambiar todo o casi todo el gráfico del scroll es tener en el mismo fpg los distintos fotogramas del scroll y a cada paso del bucle hacer una llamada a start_scroll pero llamando al siguiente gráfico de la secuencia. Al estar llamando start_scroll con el mismo nº de scroll machacas el anterior cambiandole el gráfico pero conservando sus coordenadas.

En realidad nunca lo lleve a la práctica todavía ;D, pero lei una vez a Coptroner decir que es el método que usó en su remake del Goody, asi que no se que tal ira de rendimiento, pero me imagino que bien, como mucho estarás chupando mas ram al tener los fotogramas enteros del fondo que si lo haces con otros metodos.

Neodreamer

Usando ese metodo, creo q mejoraria un poco el rendimiento si hago de buffer de pantalla "virtual" y en lugar de cargar un fpg con todos los graficos de la animacion del scroll, creo varios fpg y abro siempre uno mas del q se esta mostrando y cierro y descargo el q vaya dejando de usar... es decir,
20 frames: cargo un fpg con 1 frame o 2, muestro scroll con 1, cargo fpg 2, muestro 2, descargo 1, cargo fpg 3 muestro 3, descargo 2...
Es mucha burrada? sera mejor q cargar un fpg con 20 frames y reiniciar 20 veces x bucle el scroll?
jejeje menudo hilo largo con algo q con las practicas se comprobara...
Muchas gracias a todos, de verdad, al menos espero q le valga al resto de la gente

FreeYourMind

Que lio  :D Ni se te ocurra andar cargando y descargando ficheros cada 20 frames, vamos igual te quieres quedar sin ordenador  ;D

BoMbErLiNk

Quote from: Neodreamer on June 17, 2010, 02:42:13 PM
El ejemplo es simple, quiero poner un fondo de una ciudad y q en esta pasen cosas, desde vehiculos moviendose, explosiones, tiros, pero siempre los mismos.

Yo usaría procesos para todo eso, creo que hacer un montaje de la escena que comentas te va a costar más prepararla que poner ahí unos cuantos procesos, ahora si ya la tienes montada podrías usar un scroll basado en procesos, le vas cambiando el graph y ya esta.