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)
si son del room ser?a room_width o room_height, explica mejor para poder ayudarte XD XD XD
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.
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)
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)
Aqui tienes el ejemplo XD XD XD
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:
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)
La verdad q no sabr?a responder esa pregunta, y para q quereis saber eso XD XD XD???
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...
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)
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 :-[
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)
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
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