Cuando se renderiza un scroll en un mapa, y se escala la pantalla usando scale_resolution (y no scale_mode) los procesos se renderizan en un rectangulo superior izquierdo del tamaño de la resolucion original (sin escalar) del juego .
Me parece que es un bug que se habia reportado y solucionado en la version anterior, pero al parecer solo se resolvio para scale_mode y no scale_resolution.
plataforma? ejemplo?
Con la versión (no actual) de BennuGD que tengo yo para Windows esto no ocurre.
Si te sirve, la tienes en la plantilla, en la carpeta bennu-win.
Me pasa con la version que esta en el ultimo BennuPack (2.6 creo q es). Ya voy a subir un ejemplo tan pronto como sea posible.
Gracias pixel!! de todos modos reporto el bug para que lo puedan solucionar en versiones futuras de bennu :)
Saludos!
Aca va el ejemplo del bug (esta interesante) XD
Porfa cuando puedas mirarlo avisame que pensas :)
import "mod_time"
import "mod_map";
import "mod_grproc";
import "mod_key";
import "mod_wm";
import "mod_video";
import "mod_scroll";
import "mod_mouse";
import "mod_proc";
import "mod_draw";
import "mod_rand";
import "mod_math";
import "mod_timers";
import "mod_text";
import "mod_screen";
global
stage_render_map;
end
Process Main()
private
dsx, dsy;
scroll_background;
begin
//get_desktop_size(&dsx, &dsy);
//scale_resolution = dsx * 10000 + dsy ;
//scale_resolution_aspectratio = SRA_PRESERVE;
// con esto funciona
scale_mode = SCALE_NORMAL2X;
// con esto no funciona
//get_desktop_size(&dsx, &dsy);
//scale_resolution = dsx * 10000 + dsy ;
//scale_resolution_aspectratio = SRA_PRESERVE;
set_fps(30,0);
set_mode(640,360,16);
// creamos un mapa de render del un tamaño mas grande que el de la res de la pantalla
stage_render_map = map_new(1280,720,16);
// creamos tambien el fondo del scroll
scroll_background = map_new(1280,720,16);
map_clear(0,scroll_background,rgb(145,65,4));
drawing_color(rgb(250,250,250));
drawing_map(0,scroll_background);
// dibujamos una linea para saber donde termina la pantalla
draw_rect(0,0,1280,720);
draw_rect(1,1,1279,719);
draw_rect(2,2,1278,718);
draw_rect(3,3,1277,717);
draw_rect(3,3,1277,717);
start_scroll(0,0,scroll_background,0,0,1,0,stage_render_map); // renderiza el scroll en un mapa (para habilitar zoom)
fondo();
sprite();
while(!exit_status)
frame;
end
end
process fondo()
begin
file = 0;
graph = stage_render_map;
x = 640/2;
y = 360/2;
size = 50;
loop
frame;
end
end
process sprite()
begin
graph = map_new(100,100,16);
map_clear(0,graph,rgb(21,123,46));
ctype = c_scroll;
loop
x = mouse.x * 2;
y = mouse.y * 2;
frame;
end
end
Efectivamente hay bug.
Prueba a definir y utilizar otras regiones:
define_region(1,0,0,1280,720);
start_scroll(0,0,scroll_background,0,1,1,0,stage_render_map);
Quote from: PiXeL on March 20, 2014, 12:07:23 AM
Efectivamente hay bug.
Prueba a definir y utilizar otras regiones:
define_region(1,0,0,1280,720);
start_scroll(0,0,scroll_background,0,1,1,0,stage_render_map);
esa es una idea interesante, ya voy a probarla
aun no logro probarlo, tengo problemas de dependencias, me faltan las libpng, por cambio de version y tengo que corregir y recompilar el proyecto, apenas pueda resolver el problema la pruebo..
Gracias! Mientras yo voy a probar con las regiones como dice pixel
uhhh jujuju el arreglo de pixel funciona! :D
gracias!
bien, entiendo que el error es con scroll + scale_resolution + region 0, tiene sentido para mi.
anotando a la lista de pendientes.
gracias!
En realidad el error es mapa de scroll mayor a resolución + región 0. Por alguna casualidad anda bien con scale mode.
el mapa de scroll deberia ser de cualquier tamaño, no importa si es mas grande o no que la resolucion... ademas te funciona en otras regiones.
tiene sentido scroll + scale + region 0, si pensamos que region 0 es la pantalla y si pensamos que al usar scale la resolucion no es la que hace el set_mode.