Escalar scroll

Started by Arcontus, September 16, 2010, 10:36:44 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Arcontus

Buenas,

me preguntaba si existe alguna función para escalar la imagen de fondo que pertenece a un scroll. He estado buscando al respecto, pero no fui capaz de encontrar nada. En el caso de que no exista, ¿se les ocurre algún otro modo de hacerlo?

Gracias de antemano,

Saludos!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

BoMbErLiNk

Puedes probar de montarte un scroll própio, a base de capas formado por procesos.

DCelso

O también puedes:
1. cagar la imagen con con load_png (o load_fpg si está en fpg)
2. crear una imagen vacía con new_map.
3. luego copiar la imagen buena en la vaciá con map xput usando el parámetro size (el quinto) para cambiar su resolución.
   http://wiki.bennugd.org/index.php?title=Map_xput
4. descargar la imagen cargada con load_png
5. usar para  start_scroll el nuevo id de la imagen creada.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Windgate

Quote from: DCelso on September 16, 2010, 05:17:53 PM
O también puedes:
1. cagar la imagen con con load_png (o load_fpg si está en fpg)
2. crear una imagen vacía con new_map.
3. luego copiar la imagen buena en la vaciá con map xput usando el parámetro size (el quinto) para cambiar su resolución.
   http://wiki.bennugd.org/index.php?title=Map_xput
4. descargar la imagen cargada con load_png
5. usar para  start_scroll el nuevo id de la imagen creada.

La idea es buena... Si saco un rato la pruebo a ver qué tal rinde, siempre he envidiado el escalado de scroll de los últimos videojuegos 2D comerciales.

Si tienes ejemplo montado te ganas el karma de fijo, si no tampoco te molestes que la semana que viene vuelvo con cursos de Bennu y generaré mierda por un tubo, como el curso pasado :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Mr Matsusaka

Windgate, lo que dice DCelso no escala el scroll durante el juego, solo carga el scroll con el nuevo escalado. Para hacer un scroll con reescalado dinamico habria que hacer uno manual, como dice Bomberlink

DCelso

#5
sasto :D. Es que en la pregunta no venía si quería hacerlo en caliente o no :D.
Pero bueno, para adaptar mi algoritmo para que se pueda manipular de forma dinámica se podría hacer lo siguiente:
1. cagar la imagen con con load_png (o load_fpg si está en fpg), llamémosle  imagenOriginal
2. crear una imagen temporal vacía con new_map, llamemosle imagenScroll. Hay que tener en cuenta cual va a ser la ampliación maxima que permitiremos para calcular el ancho y alto necesario en esta imagen, por ejemplo en una imagen de 100x100 en el que permitamos una ampliación del 200%, necesitaremos que esta imagen temporal ocupe 200x200, en vez de 100x100 como la original.
3. luego copiar la imagenOriginal en la imagenScroll con map xput usando el parámetro size (el quinto) con valor 100  ( para que no cambie)..
  http://wiki.bennugd.org/index.php?title=Map_xput
4. usar para  start_scroll el id de imagenScroll.
/*Aqui tenemos ya el scroll con la imagen en tamaño real*/
5. usar map_clear para borrar la imagenScroll
6. copiar la imagenOriginal en la imagenScroll con map xput usando el parámetro size  con valor de reduccion(inferior a 100)  o apliacion(superior a 100), para cambiar su resolución.
/*Aqui tenemos ya el scroll con la imagen en tamaño ampliado o reducido*/
Repetimos 5 y 6 las veces que haga falta.
No descargamos ninguna imagen en ningún momento para poder tener una copia en tamaño real (y usar de base) y otra en tamaño aumentado o reducido para usar en el scroll.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/