Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pucara en Marzo 16, 2010, 10:57:40 AM

Título: Coordenadas en la Room [SOLUCIONADO]
Publicado por: pucara en Marzo 16, 2010, 10:57:40 AM
Mientras edito una room agregando nuevos objetos, muchas veces me es necesario saber las coordenadas(x e y) exactas de los mismos, pero con el puntero s?lo consigo aproximaciones poco precisas. Tampoco me dice nada "ctrl+click" (no estar?a dem?s saber las propiedades del objeto..)

?Alguien sabe c?mo consultar estas coordenadas?

Gracias por contestar  8)
Título: Re: Coordenadas en la Room
Publicado por: soccer2008 en Marzo 16, 2010, 04:42:13 PM
si son del room ser?a room_width o room_height, explica mejor para poder ayudarte  XD XD XD
Título: Re: Coordenadas en la Room
Publicado por: hardraid en Marzo 16, 2010, 04:56:44 PM
a lo que se refiere es que el editor tiene una grilla y las coordenadas que se les da son 0,0 de cada grilla, por lo tanto si las grillas son de 32x32 solo te va a dar las coordenadas cada 32px en x e y:

lo que tenes q hacer es desactivar la grilla y poner los valores de la grilla en X=1 e Y=1 en al parte superior de la ventana de room.
Título: Re: Coordenadas en la Room
Publicado por: pucara en Marzo 16, 2010, 09:47:51 PM
Parece que no me expres? muy bien.

Empiezo un juego. Creo un objeto. Creo una room. En la room hago click 8 veces para poner 8 objetos desparramados por dicha room.

Pregunta:?C?mo hago para saber las coordenadas exactas de cada objeto en la room? o sea, las coordenadas iniciales de esos supuestos 8 objetos.

Saludos  8)
Título: Re: Coordenadas en la Room
Publicado por: demax en Marzo 16, 2010, 10:35:56 PM
Pasando el mouse sobre un objeto en la parte baja de la pantalla deverian aparecerte las coordenadas x e y del mismo. Si te referis a saber las coordenadas mientras estas jugando, una forma de verlas seria poner algo asi:
EVENTO CREATE
XX=x
YY=y
EVENTO DRAW
draw_sprite(sprite,0,x,y)
draw_text(x,y,XX)
draw_text(x,y-20,YY)
Título: Re: Coordenadas en la Room
Publicado por: soccer2008 en Marzo 16, 2010, 11:34:58 PM
Aqui tienes el ejemplo XD XD XD
Título: Re: Coordenadas en la Room
Publicado por: Johann en Marzo 17, 2010, 04:46:55 AM
Mientras juegas, en el debug puedes ver las coordenadas exactas del objeto en el room, abriendo sus variables locales.
Ingame, puedes dibujarlas a ver que pasa:
draw_text(x,y,string(object0.x)+","+string(object0.y))

Citar?C?mo hago para saber las coordenadas exactas de cada objeto en la room?
Guarda sus ID en variables de las que puedas consultar sus coordenadas individualmente:
ID=intance_create(x,y,object0)
draw_text(x,y,string(ID.x)+","+string(ID.y))

Debes saber que hay muchas formas de guardar la ID de la instancia de un objeto:
Citarinstance_create
instance_nearest
object0.id
No se, busca la forma mas conveniente de hacerlo segun la forma en que crees las instancias de tus objetos.
Espero haber sido al menos un poco claro  :-[


Pd: aunque el ejemplo de Soccer2008 aun al ser de  :GM5: funciona en  :GM7: y seguramente en  :GM8:
Título: Re: Coordenadas en la Room
Publicado por: pucara en Marzo 17, 2010, 10:17:59 AM
Gracias por contestar muchachos, pero siguen sin entender la pregunta, que a mi juicio est? clara. Adem?s lo que estoy preguntando desde el punto de vista del dise?o inicial de un juego en GM es muy ?til, no s? como no se pregunt? antes.

Vamos de nuevo...

Cuando empiezas a crear un juego, agregas sprites, creas objetos y luego una room. Muchas veces, debes colocar esos objetos en la room, a eso llamo "editar la room";
(http://img403.imageshack.us/img403/5231/40dp8.png) (http://img403.imageshack.us/i/40dp8.png/)

Cada uno de esos objetos, toma unas coordenadas inicales al ponerlos en la room, tal y como muestra la im?gen.
Si pongo el cursor encima, me muestra las coordenadas de la cuadr?cula, no del objeto, y si ya me meto en c?digo entonces acabo viendo las coordenadas del objeto, pero con el juego corriendo, lo cual ya no sirve.

Teniendo en cuenta todo lo dicho, vuelvo a preguntar:

?C?mo puedo consultar las coordenadas iniciales de un objeto MIENTRAS edito la room?

Carajo....  8)
Título: Re: Coordenadas en la Room
Publicado por: soccer2008 en Marzo 17, 2010, 02:38:27 PM
La verdad q no sabr?a responder esa pregunta, y para q quereis saber eso XD XD XD???
Título: Re: Coordenadas en la Room
Publicado por: Ciberman en Marzo 17, 2010, 02:42:58 PM
bueno, te digo, que (almenos que uses muchas cuadriculas distintas) es posible

cuando pones un objeto mientras tienes el mouse precionado
te fijas la cordenada de la cuadricula que es igual a la del objeto

si creas objetos invisibles te fijas que aparece un signo de pregnta, lo mismo pasa con estos

otra manera es poner en el create del objeto

show_message("Mi X: "+string(x)+"#Mi Y: "+string(y));

ejecutas el juego anotas las cordenadas, cierras el juego, borras esa linea que pusiste y ya tienes las cordenadas iniciales del objeto...
Título: Re: Coordenadas en la Room
Publicado por: pucara en Marzo 17, 2010, 03:42:32 PM
CitarLa verdad q no sabr?a responder esa pregunta, y para q quereis saber eso   ???
La verdad es muy ?til, por ejemplo para pantallas de transici?n donde hay objetos fijos, o detalles de fondo que siempre est?n ah?, solo cambian el estado seg?n convenga. De esta forma con un solo objeto (obj_auxiliar lo llamo yo) se puede cambiar de estado, de sprite, de sonido etc.. s?lo condicionando lo que se necesite.


Por lo visto hay que recurrir  al igenio para saber ese dato, yo lo hac?a de otra forma: Creo un objeto con las coordenadas del mouse y al colisionar con el objeto que quiero leer las coordenadas hago una lectura de sus locales (x,y)

En cualquier caso, gracias mil por contestar  8)
Título: Re: Coordenadas en la Room
Publicado por: Johann en Marzo 18, 2010, 04:30:18 AM
Coordenadas iniciales del objeto en la room (justo antes de que el objeto se mueva por primera vez)
Mmmm...  consulta las variables xstart e ystart

Citarxstart Its starting x-position in the room. //su posicion x inicial en el room
ystart Its starting y-position in the room. //su posicion y inicial en el room
.

Pero mientras editas el room es cierto lo que dice Ciberman, la grilla es una guia para colocar tus objetos, y en la parte baja te muestra las coordenadas que estas se?alando y si en ?stas hay un objeto, el offset se alinea a la grilla y ?ste es el que indica las coordenadas del objeto en el room.
Ya no se que mas decir  :-[
Título: Re: Coordenadas en la Room
Publicado por: pucara en Marzo 18, 2010, 10:10:28 AM

CitarYa no se que mas decir  :-[

No hay problema, era s?lo una cuesti?n pr?ctica, ya que de una u otra forma el dato se conoce, pasa que a aveces cuando necesitas consultarlo muchas veces se hace pesado andar inventando "truquitos" para averiguarlo.

Gracias a todos, doy el asunto por solucionado.  8)
Título: Re: Coordenadas en la Room [SOLUCIONADO]
Publicado por: knd144 en Marzo 19, 2010, 01:22:51 AM
Pues usa el evento create de los objetos para q te muestren sus coordenadas justo en ese momento(a la hora de crearse).

Como?... pues yo lo haria de esta manera:

creo en un objeto (en el evento en el que se crea el room) que cree un arreglo bidimensional de tantos espacios como objetos quieres saber sus coordenadas por 2, una fila sera para las x's y otra para las y's, ademas de una variable que empiece con valor 0(al objeto lo llamarmos obj_coordenadas, al arreglo arreglo :p, y a la variable i=0). Entonces, ahora en el create de cada objeto que quieres saber sus coordenadas iniciales se hara el siguente proceso:
obj_coordenadas.arreglo[obj_coordenadas.i][0]=x
obj_coordenadas.arreglo[obj_coordenadas.i][1]=y
obj_coordenadas.i++

y pues en teoria se agregaran las coordenadas de las instancias en orden ascendente a su id desde la posicion 0 hasta la posicion n-1  :-[

No se si esto puede ayudarte, pero prueba
Título: Re: Coordenadas en la Room [SOLUCIONADO]
Publicado por: Ruisu~ en Marzo 19, 2010, 09:29:03 PM
Pues si esta la cuadricula es para algo.. para que la posicion se adapte, asi que la posicion es la misma a la que dice en donde diste click D:

igual cuando la cuadricula la tienes en 0,0 la posicion es la misma en la que diste click.. solo tienes que ser un poco mas preciso para que no se te valla de lado el cursor xD

ooh -_- no vi que ya estaba solucionado... bueno aun asi xD