Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Naitsabes0 en Septiembre 09, 2017, 05:00:22 AM

Título: Crear un sprite que dependa de la habitación [SOLUCIONADO]
Publicado por: Naitsabes0 en Septiembre 09, 2017, 05:00:22 AM
He pensado en algo como lo de abajo para crear un sprite especifico para cada habitación.

///Nombre nivel
if room=room_Nivel1 (draw_sprite(spr_Icono nivel,0,32,32));
if room=room_Nivel2 (draw_sprite(spr_Icono nivel,1,32,32));
if room=room_Nivel3 (draw_sprite(spr_Icono nivel,2,32,32));

Pero como es de costumbre, hay algo que me falla al momento de realizar este código, ya que puedo llegar a armar 30 niveles y debo ordenarlo como si fuera una lista, de todas formas en un juego que va por versiones y se ara pesado de organizar a futuro.

NOTA: Resumí esto así, por que mi problema anterior se alargo y nos desvió del problema principal, ademas de descubrir que no le puedo sumar tiempo a un objeto que se crea.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: bygdle en Septiembre 09, 2017, 05:07:06 AM
Sería mejor y más organizado usar mapas.
[gml]
///Evento create
iconos = ds_map_create();

iconos[? room_Nivel1] = 0;
iconos[? room_Nivel2] = 1;
iconos[? room_Nivel3] = 2;
[/gml]
[gml]
///Evento draw
draw_sprite(spr_Icono_nivel, iconos[? room], 32, 32);
[/gml]
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 05:58:55 AM
puedo sentir la tecnología fluyendo por mi painis
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 06:16:05 AM
Cita de: NiuWeb en Septiembre 09, 2017, 05:07:06 AM
Sería mejor y más organizado usar mapas.
[gml]
///Evento create
iconos = ds_map_create();

iconos[? room_Nivel1] = 0;
iconos[? room_Nivel2] = 1;
iconos[? room_Nivel3] = 2;
[/gml]
[gml]
///Evento draw
draw_sprite(spr_Icono_nivel, iconos[? room], 32, 32);
[/gml]
Y volvió a copiar y pega el mismo código de la otra vez  :-\, si no escribí

///CREATE
iconos = ds_map_create();

iconos [? room_Nivel1] = 0;
iconos [? room_Nivel2] = 1;
iconos [? room_Nivel3] = 2;

///DRAW
draw_sprite(spr_Icono_Nivel, iconos[? room]. 32, 32);

Es porque no funciona, al grado que de que el juego no corre, por eso busco un sistema que funcione a la larga, y el que muestra no lo entiendo, de hecho nunca he visto esas funciones en tutoriales, ya que parecen ser poco intuitivas.

///Nombre nivel
if room=room_Nivel1 (draw_sprite(spr_Icono_Nivel,0,32,32));
if room=room_Nivel2 (draw_sprite(spr_Icono_Nivel,1,32,32));
if room=room_Nivel3 (draw_sprite(spr_Icono_Nivel,2,32,32));

Todavía no encuentro que esta mal aquí  :-X.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: bygdle en Septiembre 09, 2017, 06:19:13 AM
Pero a ver, sé específico.
¿No corre? ¿Muestra un error o simplemente no se ejecuta nada? ¿Usas GM:S?

Y te puse ese código porque lo creo más intuitivo, más legible y más fácil de modificar.
http://docs.yoyogames.com/source/dadiospice/002_reference/data%20structures/ds%20maps/index.html
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 06:46:47 AM
a ver colega Naitsabes0 que hay de malo con tu código tengo una modificación que te va a encantar usando tu código mete todos los sprites de todos los niveles en uno solo ahora crea un objeto control o en ese mismo que ya tienes has lo siguiente

CREATE
image_speed=0

STEP

if room=room_Nivel1 {image_index=1}
if room=room_Nivel2 {image_index=2}
if room=room_Nivel3 {image_index=3}


para dibujarlo depende donde lo pongas en el cuarto
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 06:59:11 AM
Cita de: NiuWeb en Septiembre 09, 2017, 06:19:13 AM
Pero a ver, sé específico.
¿No corre? ¿Muestra un error o simplemente no se ejecuta nada? ¿Usas GM:S?

Y te puse ese código porque lo creo más intuitivo, más legible y más fácil de modificar.
http://docs.yoyogames.com/source/dadiospice/002_reference/data%20structures/ds%20maps/index.html
-Si, no corre mas lejos de la pantalla gris.
(https://i.gyazo.com/b71b2d606a652515c26319cc94f82afc.gif)
-Si tengo GM:S 1.4 (la ultima versión)

-Por lo que ley en su enlace de "Mapas de DS" se resume en una estructura de datos que almacena datos en pares enlazados consistentes en una clave y un valor correspondiente.

-No planeo guardar valores numéricos de ningún objeto, simplemente quiero crear un sprite en pantalla que le indique al usuario, usted esta aquí, es un simple bloque que dice nivel 1, y así hasta llegar a una cantidad indeterminada 1 x 1, lo cual se vería en las sub-imágenes, por eso esa función es mala para esta tarea, tal vez por eso no la he visto que nadie las use en sus proyectos.
(https://i.gyazo.com/4b747fda358534ddcea8a09138d09b43.gif)
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: bygdle en Septiembre 09, 2017, 07:14:36 AM
(https://image.prntscr.com/image/FZeXQNRrTIO6wvBWLV-cvQ.png)
¿Así tienes tu código en el proyecto?

Los mapas son muy eficientes, mírale la lógica al código antes de decir que son malos.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 08:21:00 AM
Cita de: NiuWeb en Septiembre 09, 2017, 07:14:36 AM
(https://image.prntscr.com/image/FZeXQNRrTIO6wvBWLV-cvQ.png)
¿Así tienes tu código en el proyecto?

Los mapas son muy eficientes, mírale la lógica al código antes de decir que son malos.
obj_Jugador
///CREATE
iconos = ds_map_create();

iconos [? room_Nivel1] = 0;
iconos [? room_Nivel2] = 1;
iconos [? room_Nivel3] = 2;

///DRAW
draw_sprite(spr_Icono_Nivel, iconos[? room]. 32, 32);

el sprite se llama: spr_Icono_Nivel, y tiene todas las sub-imágenes.

Es un Arkanoid no un RPG, aquí no es optima esa función, ademas ley la lógica que tiene y me parece rebuscada, no le encuentro lo intuitivo, podría verlo mañana y ya no sabría lo que hacia, si la gente no lo esta usando en los ejemplos, vídeos y otros proyectos que he descargado, debe ser por lo innecesario y poca importancia que tiene, tampoco me queda claro esos signos de interrogación.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: bygdle en Septiembre 09, 2017, 08:25:25 AM
Hasta aquí escribo, que ni te hayas tomado la molestia de pensar por qué la imagen que puse tiene un rectángulo rojo apuntando a algún signo por ahí hace ver que esto es una pérdida de tiempo, y si hubieras leído la documentación sabrías qué es el signo de interrogación.
(https://image.prntscr.com/image/1g1-NUUQTSG2GUnOBvw1OQ.png)
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 08:33:56 AM
NIUWEB tiene razón colega no prestas atención al detalle yo te envié una respuesta y no prestaste atención tampoco lo que el quiso decir en su código es que pusiste un punto en ves de una coma por eso lo marco con un rectangulo
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 08:59:53 AM
Cita de: NiuWeb en Septiembre 09, 2017, 08:25:25 AM
Hasta aquí escribo, que ni te hayas tomado la molestia de pensar por qué la imagen que puse tiene un rectángulo rojo apuntando a algún signo por ahí hace ver que esto es una pérdida de tiempo, y si hubieras leído la documentación sabrías qué es el signo de interrogación.
(https://image.prntscr.com/image/1g1-NUUQTSG2GUnOBvw1OQ.png)
Aunque coloque de forma correcta los valores lógicos, no evita que falle, las funciones de mapas no son optimas para este tipo de géneros (Arkanoid), gracias por la ayuda  :), pero volvimos a desviarnos del tema principal por segunda vez, este era el código y el evento, no se porque se complica tanto en usar CREATE y DRAW para algo tan común como crear un sprite en una habitación X.
///ROOM START
///Nombre nivel
if room=room_Nivel1 (draw_sprite(spr_Icono nivel,0,32,32));
if room=room_Nivel2 (draw_sprite(spr_Icono nivel,1,32,32));
if room=room_Nivel3 (draw_sprite(spr_Icono nivel,2,32,32));

(https://i.gyazo.com/90a44da72155f075441f49faaeaa10b9.gif)
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 09:03:24 AM
y porque no pruebas mi metodo nada pierdes con probarlo para ver si te funciona si es que no te convence el ds_ maps
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 09:09:39 AM
Cita de: cristopher2545 en Septiembre 09, 2017, 08:33:56 AM
NIUWEB tiene razón colega no prestas atención al detalle yo te envié una respuesta y no prestaste atención tampoco lo que el quiso decir en su código es que pusiste un punto en ves de una coma por eso lo marco con un rectangulo
Me enviaba unos códigos que no correspondían a los que he estado mostrando, empezaron con los DS y los eventos CREATE y DRAW, leo el enlace y no me queda nada claro, por eso uso funciones con las que estoy familiarizado, porque al menos se lo que hacen sin meter tantos [{()}] entre palabras y números, me confunden aunque les ponga un comentario  :-\, hay muchas formas de hacer X acción, pero esa me perjudica al momento de programar.
///ROOM START
///Nombre nivel
if room=room_Nivel1 (draw_sprite(spr_Icono nivel,0,32,32));
if room=room_Nivel2 (draw_sprite(spr_Icono nivel,1,32,32));
if room=room_Nivel3 (draw_sprite(spr_Icono nivel,2,32,32));
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 09:13:02 AM
mhhh comprendo
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: FridaFlowers en Septiembre 09, 2017, 09:18:36 AM
Coloca todos los iconos como subimagenes de un sprite.
Haz el objeto del icono persistente y usa una variable para ir aumentando de sub imagen cada que pase de cuarto le sumas 1.

Ya que por lo visto va en concordancia.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 09:21:33 AM
Cita de: cristopher2545 en Septiembre 09, 2017, 09:13:02 AM
mhhh comprendo
Este es el segundo post que habla sobre el mismo problema, pero con otro nombre, lo que podría considerarse spam si no fuera porque lleva como 2 a 3 días y tiene otro nombre, incluso hasta el temporizador como power up fallo en su funcionamiento y lo tache como "Sin solución"
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 09:29:19 AM
Cita de: FridaFlowers en Septiembre 09, 2017, 09:18:36 AM
Coloca todos los iconos como subimagenes de un sprite.
Haz el objeto del icono persistente y usa una variable para ir aumentando de sub imagen cada que pase de cuarto le sumas 1.

Ya que por lo visto va en concordancia.
jejeje  XD, vale la verdad no estoy alegre  :(.

Ya tengo las sub-imagenes de 1.2.3........666 (tampoco es tanto) ordenadas, fue lo primero que pensé al momento de hacerlo, mi problema es que no creo bien el código que los llame cuando la habitación sea X, hacerlo es mas difícil que decirlo.
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: cristopher2545 en Septiembre 09, 2017, 09:33:06 AM
Colega es lo que yo te dije que hicieras.... tu complicaste mucho esto lo siento estoy fuera suerte colega
Título: Re:Crear un sprite que dependa de la habitacion
Publicado por: Naitsabes0 en Septiembre 09, 2017, 09:57:54 AM
Cita de: cristopher2545 en Septiembre 09, 2017, 09:33:06 AM
Colega es lo que yo te dije que hicieras.... tu complicaste mucho esto lo siento estoy fuera suerte colega
Bien esta es la parte en la que se demuestra mi falta de atención al detalle, pero confundí tu código con uno de los que me mandaba "NiuWeb"  :-[

Pues si solo buscaba hacer algo como esto en vez de liarme con funciones mas elaboradas, creo que puedo dar esto por terminado, sabia que debía hacer un método intuitivo, pero no se me ocurrió este  :-[.
if room=room_Nivel1 {image_index=1}
if room=room_Nivel2 {image_index=2}
if room=room_Nivel3 {image_index=3}
Título: Re:Crear un sprite que dependa de la habitación [SOLUCIONADO]
Publicado por: FridaFlowers en Septiembre 09, 2017, 07:40:46 PM
bueno, lo que yo dije, traducido a codigo es hacer lo siguiente:

evento create:[gml]
contador_nivel = 0[/gml]

evento draw:[gml]
draw_sprite(sprite_conjunto_de_iconos, contador_nivel, 32, 32);
[/gml]

evento other/room end[gml]
contador_nivel= contador_nivel+ 1;
[/gml]


entonces asi no tendrias que colocar una sentecia if por cada subimagen, y te ahorras como dices, si el juego crece, de tener que agregar  o borrar lineas a cada rato.
Título: Re:Crear un sprite que dependa de la habitación [SOLUCIONADO]
Publicado por: Naitsabes0 en Septiembre 09, 2017, 09:51:38 PM
Cita de: FridaFlowers en Septiembre 09, 2017, 07:40:46 PM
bueno, lo que yo dije, traducido a codigo es hacer lo siguiente:

evento create:[gml]
contador_nivel = 0[/gml]

evento draw:[gml]
draw_sprite(sprite_conjunto_de_iconos, contador_nivel, 32, 32);
[/gml]

evento other/room end[gml]
contador_nivel= contador_nivel+ 1;
[/gml]


entonces asi no tendrias que colocar una sentecia if por cada subimagen, y te ahorras como dices, si el juego crece, de tener que agregar  o borrar lineas a cada rato.
-Ya veo el primero se encarga que comienzo en 0

-El draw de sus coordenadas

-y el other  EDN se encarga de que aumente 1 imagen cuando pase a la siguiente, viene bien por el hecho de que es lineal.

Tenemos un ganador  :), gracias ¿compañero...ra?  :-\