Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nonoroman en Octubre 24, 2014, 05:22:11 PM

Título: BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 05:22:11 PM
Bueno, continuo con mis problemas, jejejejje...

Tengo un room de 1280 x 9600, en ella pienso utilizar un background de dicho tamaño, con una view de 1280 x 800.

Todo funciona como lo planeado, pero, el background se ve super borroso, sin nitidez ninguna, no entiendo que es lo que pasa.

Y creo que la primera vez que lo probe funcionaba perfectamente.

De hecho, en la room, cuando monto los objetos en el escenario, observo que se ve super bien, porque no ocurre lo mismo cuando lo carga??

No entiendo nada.  ??? >:( :P :-[ :-X

Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 05:53:30 PM
Adjunto una imagen, fijaros en el fondo
Título: Re:BACKGROUND BORROSO
Publicado por: Rubenvecino en Octubre 24, 2014, 05:59:08 PM
Buenas tardes nonoroman,

Primero de todo.

¿Ese fondo lo ves mal en el pc?¿Al sacarlo para teléfono?

Si es para teléfono te recomiendo una cosa por experiencia propia.

GMS tiene una costumbre que no me termina de gustar y es que a pesar de que tu le des al boton de guardar el proyecto actual, el te hace backups en mis documentos, y crea carpetas de caché y más carpetas en los temporales...

Así que cuando exportes el proyecto para teléfono o pc y evitar cosillas raras, haz lo siguiente:

Con GMS cerrado y el proyecto guardado ve a la carpeta de
Mis Documentos/ Game maker/ Backups /nombre del proyecto (eliminalo) después en
Mis Documentos/ Game maker/Cache/nombre del proyecto (eliminalo) y por último en
c:\Users\tu nombre\AppData\Local\Temp\ busca las carpetas que empiecen por gm_t (eliminalas)

Con esto al exportar lo haces con toda la información limpia.

Un saludo
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 07:23:24 PM
Rubenvecino gracias por tu consejo, pero no creo que sea eso.

He probado con varios fondos y todos se ven con muy mala calidad. No lo entiendo.

Mi idea es que el vehiculo circule por una carretera, para ello, he diseñado un fondo de carretera con varias partes, para que al ponerlo como background que va bajando en un bucle no sea siempre igual la carretera.

Por eso necesito un alto de 9600. Con una view de 1280x800.

No entiendo que ocurre.

Título: Re:BACKGROUND BORROSO
Publicado por: jokin666 en Octubre 24, 2014, 07:31:46 PM
¿Estas usando la version free o standard gratuita?

A mi me paso algo parecido, queria hacer un escenario grande, y se veia bien en el editor y en el programa, pero al probar con F5 me deformaba el escenario.
Al final encontre la solucion, el problema es que gamemaker, antes de empezar el juego, guarda todos los graficos del juego en paginas de texturas, si no recuerdo mal, tenian un maximo de 2048x2048, y solo en la version pro se puede cambiar, o por lo menos yo no encontre la forma de aumentarlo :P
Al encontrar un sprite mayor de 2048x2048, lo deforma para que quepa dentro, y despues al ponerlo en el juego lo agranda de nuevo, pero claro, ya se ha deformado.
Asi, que para arreglarlo, corte el escenario en varios backgrounds, los marke como tiles, despues fui a la room, y coloque los 4 backgrounds partidos en su sitio.
Con eso se me arreglo el problema :P
Espero que te sirva de ayuda :P
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 07:55:08 PM
Jokin666

Creo que has dado con el clavo, pero, como se colocan los diferentes background en un mismo room??

Que yo sepa solo puedo colocar uno.

Como se hace??

Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 08:00:07 PM
Cita de: nonoroman en Octubre 24, 2014, 07:55:08 PM
Jokin666

Creo que has dado con el clavo, pero, como se colocan los diferentes background en un mismo room??

Que yo sepa solo puedo colocar uno.

Como se hace??
Título: Re:BACKGROUND BORROSO
Publicado por: Clamud en Octubre 24, 2014, 08:05:17 PM
De hecho se pueden asignar 8 backgrounds a un mismo room, pero para que se vean en la posicion correcta agregalos como tiles. Simplemente ve a la pestaña "tiles" en el editor de rooms, elige el fondo y haz click en donde quieres que se dibuje.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 08:20:52 PM
Cita de: Clamud en Octubre 24, 2014, 08:05:17 PM
De hecho se pueden asignar 8 backgrounds a un mismo room, pero para que se vean en la posicion correcta agregalos como tiles. Simplemente ve a la pestaña "tiles" en el editor de rooms, elige el fondo y haz click en donde quieres que se dibuje.

Ok, ya lo estoy montando, pero aparecen solo uno y los demas en negro, pero lo tengo casi.
Título: Re:BACKGROUND BORROSO
Publicado por: jokin666 en Octubre 24, 2014, 08:26:51 PM
Cuando añadas los backgrounds por partes, marca donde pone "Use as tile set" , para que sea reconocido como tile.
Despues en la room ve a la pestaña de tiles, no a la de backgrounds, y ve añadiendolos y poniendolos en el sitio correcto.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 24, 2014, 08:29:49 PM
Cita de: jokin666 en Octubre 24, 2014, 08:26:51 PM
Cuando añadas los backgrounds por partes, marca donde pone "Use as tile set" , para que sea reconocido como tile.
Despues en la room ve a la pestaña de tiles, no a la de backgrounds, y ve añadiendolos y poniendolos en el sitio correcto.

Y la velocidad del background se le aplica de este modo, o para darle velocidad al background en este caso como titles hay que hacerlo de otro modo??
Título: Re:BACKGROUND BORROSO
Publicado por: jokin666 en Octubre 24, 2014, 08:53:25 PM
Pues en eso ya no puedo ayudarte, yo la velocidad de los rooms las dejo siempre por defecto :P
Asi que no se que tal funciona la velocidad de las tiles en comparacion con las backgrounds normales, sorry :P
Título: Re:BACKGROUND BORROSO
Publicado por: TheSandBoxMKG en Octubre 25, 2014, 04:17:48 AM
Te recomiendo partir los backgrounds en partes (yo diria partilo en 12 partes de 800 de altura) y crear un objeto con un depth alto que dibuje los backgrounds:

var background_array,background_array_lenght,i;
background_array_lenght=12
background_array[0]=bg_street_1
background_array[1]=bg_street_2
background_array[2]=bg_street_3
background_array[3]=bg_street_4
background_array[4]=bg_street_5
background_array[5]=bg_street_6
background_array[6]=bg_street_7
background_array[7]=bg_street_8
background_array[8]=bg_street_9
background_array[9]=bg_street_10
background_array[10]=bg_street_11
background_array[11]=bg_street_12
for(i=0;i<background_array_lenght;i+=1){draw_background(background_array[i],0,i*800)}


los backgrounds los llamé bg_street_numero.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 12:56:57 PM
Cita de: nonoroman en Octubre 24, 2014, 08:20:52 PM
Cita de: Clamud en Octubre 24, 2014, 08:05:17 PM
De hecho se pueden asignar 8 backgrounds a un mismo room, pero para que se vean en la posicion correcta agregalos como tiles. Simplemente ve a la pestaña "tiles" en el editor de rooms, elige el fondo y haz click en donde quieres que se dibuje.

Ok, ya lo estoy montando, pero aparecen solo uno y los demas en negro, pero lo tengo casi.

Bueno, he utilizado la opcion de poder usar 8 background desde la pestaña background de la room. Los he colocado uno a uno mediante el eje de la Y. Y ya tengo toda la room con el escenario que queria.

Pero ahora tengo el poblema de que no me hace el bucle.

Me explico, cuando ponemos un background con una velocidad vertical de 14, y pulsamos en la Pestaña Tile vert. Hacemos un bucle del background, para que mientras baje con la velocidad de 14, este se vaya repitiendo en un bucle.
Pero al poner los 8 background distintos, no puedo seleccionar Tile Vert. Porque si lo hago solo se vera un background, no los 8, y si lo dejo sin seleccionar Tile vert. entonces no se genera el bucle del background y cuando se acaban los 8 background, se queda sin fondo ninguno, no hay bucle y se acaba.

Vaya tela me esta dando esto!!!!  >:( >:(

Por favor Help me, que ya casi esta!!!1
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 01:05:04 PM
Cita de: nonoroman en Octubre 24, 2014, 07:55:08 PM
Jokin666

Creo que has dado con el clavo, pero, como se colocan los diferentes background en un mismo room??

Que yo sepa solo puedo colocar uno.

Como se hace??

Que pasa que con la version pro?? no te comprime los archivos?? Y te los guarda a maxima calidad??
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 01:11:04 PM
Perono hay manera de cambiar esto???

De que no comprima el archivo y lo deje tal y como es??
Título: Re:BACKGROUND BORROSO
Publicado por: jokin666 en Octubre 25, 2014, 04:18:17 PM
Aqui tienes la parte del manual que habla de las paginas de texturas, http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/more%20about%20backgrounds/texture%20pages.html
http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/texture%20groups%20tab.html
La unica forma de que te salga las opciones de las paginas de texturas es tener la version pro de gamemaker, pero parece ser que el tamaño maximo es de 2048x2048.
Podrias intentar hacer el fondo en graficos vectoriales, aunque no he probado a hacer un fondo asi, pero se supone que al ser vectoriales no se desfiguran al encojerlos y agrandarlos.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 05:56:43 PM
La solucion esta en hacer un background tile Vert 14 mediante codigo y asi controlar uno a uno los background y su velocidad.

Pero claro, esto como seria.  ???
Título: Re:BACKGROUND BORROSO
Publicado por: TheSandBoxMKG en Octubre 25, 2014, 07:42:52 PM
otro código mejor:

Evento CREATE:
background_ypos=0

Evento STEP:
background_ypos+=8

Evento DRAW:
var background_array,background_array_lenght,i,n;
background_array_lenght=12
background_array[0]=bg_street_1
background_array[1]=bg_street_2
background_array[2]=bg_street_3
background_array[3]=bg_street_4
background_array[4]=bg_street_5
background_array[5]=bg_street_6
background_array[6]=bg_street_7
background_array[7]=bg_street_8
background_array[8]=bg_street_9
background_array[9]=bg_street_10
background_array[10]=bg_street_11
background_array[11]=bg_street_12
if background_ypos>9600 then background_ypos-=9600
if background_ypos<0 then background_ypos+=9600
for(n=-1;n<=1;n+=1){for(i=0;i<background_array_lenght;i+=1){draw_background(background_array[i],0,i*800+n*9600+background_ypos)}}


background_ypos es la posición del background
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 08:33:26 PM
Cita de: TheSandBoxMKG en Octubre 25, 2014, 07:42:52 PM
otro código mejor:

Evento CREATE:
background_ypos=0

Evento STEP:
background_ypos+=8

Evento DRAW:
var background_array,background_array_lenght,i,n;
background_array_lenght=12
background_array[0]=bg_street_1
background_array[1]=bg_street_2
background_array[2]=bg_street_3
background_array[3]=bg_street_4
background_array[4]=bg_street_5
background_array[5]=bg_street_6
background_array[6]=bg_street_7
background_array[7]=bg_street_8
background_array[8]=bg_street_9
background_array[9]=bg_street_10
background_array[10]=bg_street_11
background_array[11]=bg_street_12
if background_ypos>9600 then background_ypos-=9600
if background_ypos<0 then background_ypos+=9600
for(n=-1;n<=1;n+=1){for(i=0;i<background_array_lenght;i+=1){draw_background(background_array[i],0,i*800+n*9600+background_ypos)}}


background_ypos es la posición del background

Pero esto es para usar 12 fondos distintos, no??

No es para usar uno solo dentro de un bucle??
Título: Re:BACKGROUND BORROSO
Publicado por: TheSandBoxMKG en Octubre 25, 2014, 08:35:01 PM
Cita de: nonoroman en Octubre 25, 2014, 08:33:26 PM
Cita de: TheSandBoxMKG en Octubre 25, 2014, 07:42:52 PM
otro código mejor:

Evento CREATE:
background_ypos=0

Evento STEP:
background_ypos+=8

Evento DRAW:
var background_array,background_array_lenght,i,n;
background_array_lenght=12
background_array[0]=bg_street_1
background_array[1]=bg_street_2
background_array[2]=bg_street_3
background_array[3]=bg_street_4
background_array[4]=bg_street_5
background_array[5]=bg_street_6
background_array[6]=bg_street_7
background_array[7]=bg_street_8
background_array[8]=bg_street_9
background_array[9]=bg_street_10
background_array[10]=bg_street_11
background_array[11]=bg_street_12
if background_ypos>9600 then background_ypos-=9600
if background_ypos<0 then background_ypos+=9600
for(n=-1;n<=1;n+=1){for(i=0;i<background_array_lenght;i+=1){draw_background(background_array[i],0,i*800+n*9600+background_ypos)}}


background_ypos es la posición del background

Pero esto es para usar 12 fondos distintos, no??

No es para usar uno solo dentro de un bucle??

Te dije que partieras el fondo en 12 partes de 800 de altura
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 25, 2014, 11:30:43 PM
vale, entiendo. divide todo el escenario en partes de 800 y los monta uno tras otro.

En cuanto pueda lo pruebo.

Pero esto crea a su vez un bucle??

Es decir, cuando llegue al final del escenario?? vuelve a empezar el background??

Es que ya estot perdiendo el rumbo y la cabeza. jejejje

muchas gracias por todo.
Título: Re:BACKGROUND BORROSO
Publicado por: TheSandBoxMKG en Octubre 26, 2014, 01:35:14 AM
Cita de: nonoroman en Octubre 25, 2014, 11:30:43 PM
vale, entiendo. divide todo el escenario en partes de 800 y los monta uno tras otro.

En cuanto pueda lo pruebo.

Pero esto crea a su vez un bucle??

Es decir, cuando llegue al final del escenario?? vuelve a empezar el background??

Es que ya estot perdiendo el rumbo y la cabeza. jejejje

muchas gracias por todo.

Con el nuevo codigo que te puse, si.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 27, 2014, 07:38:00 PM
Cita de: TheSandBoxMKG en Octubre 26, 2014, 01:35:14 AM
Cita de: nonoroman en Octubre 25, 2014, 11:30:43 PM
vale, entiendo. divide todo el escenario en partes de 800 y los monta uno tras otro.

En cuanto pueda lo pruebo.

Pero esto crea a su vez un bucle??

Es decir, cuando llegue al final del escenario?? vuelve a empezar el background??

Es que ya estot perdiendo el rumbo y la cabeza. jejejje

muchas gracias por todo.

Con el nuevo codigo que te puse, si.

Bueno, esto ya va rulando, gracias al array que me ha pasado de TheSam, muchas gracias tio, te debo aparecer como minimo en los creditos del juego, jejejeje.

Ya solo falta un detalle, necesitaria, dentro de la funcion For del array, ir comprobando el valor de i. para saber en cada momento, que background se esta dibujando y asi, colocar ciertos objetos en el escenario.

como seria esto?? porque dentro de ese For, es complicado tocar y mas meter un if.

Solo me faltaria esto.
Título: Re:BACKGROUND BORROSO
Publicado por: nonoroman en Octubre 28, 2014, 02:51:50 PM
Alguien me puede decir porque no funciona el if del final???


var background_array,background_array_lenght,i,n;
background_array_lenght=12
background_array[0]=background1
background_array[1]=background1
background_array[2]=background1
background_array[3]=background1
background_array[4]=background4
background_array[5]=background3
background_array[6]=background3
background_array[7]=background3
background_array[8]=background3
background_array[9]=background3
background_array[10]=background2
background_array[11]=background1

if background_ypos>9600 then background_ypos-=9600
if background_ypos<0 then background_ypos+=9600
for(n=-1;n<=1;n+=1){for(i=0;i<background_array_lenght;i+=1){draw_background(background_array,320,i*800+n*9600+background_ypos)}}

if i=4
{
    instance_create(624,16,objectENEMIGO1);
}

Mi idea es que por ejemplo, cuando dibuje el background4, crear unos objetos en unas coordenadas en concreto dentro del background4.

Como podria hacer esto?? ??? ???
Título: Re:BACKGROUND BORROSO
Publicado por: TheSandBoxMKG en Octubre 28, 2014, 11:06:28 PM
Cita de: nonoroman en Octubre 28, 2014, 02:51:50 PM
Alguien me puede decir porque no funciona el if del final???


var background_array,background_array_lenght,i,n;
background_array_lenght=12
background_array[0]=background1
background_array[1]=background1
background_array[2]=background1
background_array[3]=background1
background_array[4]=background4
background_array[5]=background3
background_array[6]=background3
background_array[7]=background3
background_array[8]=background3
background_array[9]=background3
background_array[10]=background2
background_array[11]=background1

if background_ypos>9600 then background_ypos-=9600
if background_ypos<0 then background_ypos+=9600
for(n=-1;n<=1;n+=1){for(i=0;i<background_array_lenght;i+=1){draw_background(background_array,320,i*800+n*9600+background_ypos)}}

if i=4
{
    instance_create(624,16,objectENEMIGO1);
}

Mi idea es que por ejemplo, cuando dibuje el background4, crear unos objetos en unas coordenadas en concreto dentro del background4.

Como podria hacer esto?? ??? ???

[gml]if floor(background_ypos/800)=4 then
{
    instance_create(624,4*800+16,objectENEMIGO1);
}[/gml]