Hola! me tope con un problema que no se hasta que pundo es complicado ???
como dice el Asunto necesito que la view de mi juego siga a un objeto...
yo estoy usando para esto el scrip view_object[0] = objeto1
pero poseo varios objeto1 en un mismo room y necesito que la view siga a uno en especifico...
?como solucionar esto?
Saludos y gracias de antemano.
Usa la
id de la instancia
object1 que deseas que sea seguida por la
view[0], debe quedar as?.
view_object[0]=(100010);100010 es un valor de ejemplo, debes reemplazarlo por el valor de la
id de la instancia que deseas usar.
Para checar la
id se pueden usar dos m?todos:
- Si la instancia est? directamente creada en el editor de rooms de GM puedes ver su id en la barra de estado de la ventana si colocas el cursor sobre ella.
- Si la instancia es creada por un script durante el juego debes agregar a la funci?n instance_create() responsable de crear dicha instancia algo como esto.
global.objvista=instance_create(...);objvista es un ejemplo, puedes cambiarlo seg?n tus necesidades. Agregar el
global. es necesario para evitar que el valor se pierda por accidente (o bien puedes usar el m?todo del
globalvar).
?Saludos y espero haberte ayudado! :D
S?lo una peque?a nota...
Cita de: Hackware en Julio 20, 2010, 09:34:58 PMview_object[0]=(100010);
Los par?ntesis no son necesarios ah?.
Hola Hackware! gracias por contestar... el objeto si es creado por medio de instance_create() y esta funcion crea un object1 cada vez constantemente. De hecho, necesito que la view[0] siga al object1 que colisione con mi personaje.
Supongo que necesito el segundo metodo que escribiste... pero realmente no lo comprendi bien (disculpa mi lentitud al comprender :-[)
No se si podria ayudarme el hecho de que el object1 cambia de sprite al momento de colisionar con mi personaje.
Saludos y gracias!
Cada objeto en el room tiene una ID ?nica asignada (aunque sean dos objetos iguales, tendr?n una ID distinta). Cuando cre?s un objeto con instance_create, la funci?n devuelve la ID del objeto creado. Esta ID se puede usar para referirse a ese objeto espec?fico.
As? haciendo esto:
objeto=instance_create(object1,0,0);
Vas a quedar con una variable llamada "objeto" que vas a poder usar para referirte a la instancia de object1 que acab?s de crear.
En realidad, si s?lo quer?s referirte al objeto en espec?fico para que la view lo siga, no ten?s que guardar el ID del objeto en una variable, esto bastar?a:
view_object[0]=instance_create(object1,0,0);
Espero que hayas entendido y que te sirva. Si no entendiste pregunt?.
Cita de: Wadk en Julio 20, 2010, 10:28:10 PM
S?lo una peque?a nota...
Cita de: Hackware en Julio 20, 2010, 09:34:58 PMview_object[0]=(100010);
Los par?ntesis no son necesarios ah?.
As? aprend? yo. XD
Y s?, las obervaciones de
Wadk me dejan en rid?culo :p son muy acertadas, pero para tu caso en espec?fico lo que necesitas es definir la siguiente funci?n en el evento de colisi?n con los
object1 de tu personaje:
view_object[0]=other;other representa la
id del objeto que entr? en colisi?n con tu personaje, as? que no necesitas guardarla a menos que desees usarla fuera del script.
Los parentesis se usan si quer?s hacer algo como esto:
(100010).speed=10;
En ese caso si no los pon?s da error porque el GM confunde el punto con un punto decimal :P
Creo que no vi que LuisGM escribi? "necesito que la view[0] siga al object1 que colisione con mi personaje." XD. As? que ten?s raz?n Hackware.
Hola, gracias a ambos por su ayuda... probe lo de "view_object[0]=other;" en el evento colision pero no ocurre nada, es decir la view no sigue a nadie :-\.
Cita de: LuisGM en Julio 21, 2010, 07:39:11 PM
Hola, gracias a ambos por su ayuda... probe lo de "view_object[0]=other;" en el evento colision pero no ocurre nada, es decir la view no sigue a nadie :-\.
No me hagas mucho caso, porque con las views soy un negado, pero no hay que activar la view antes o algo parecido?
Quiz?s est?s asignando bien la view, pero si no est? activada, pues eso, que no sigue a nadie.
Un saludo,
- Herni
Hola Herni, no, ese no es mi caso... la view funciona bien antes de la colision... es decir, si esta activada. :D
Saludos y gracias por contestar.
A ver, prob? con view_object[0]=other.id;
Hola Wadk! ahora si funciona... :D
Gracias por la ayuda Wadk, Hackware y Herni.
Cita de: Wadk en Julio 21, 2010, 11:50:08 PM
A ver, prob? con view_object[0]=other.id;
Joder, qu? bueno eres Wadk, es que se me hab?a medio-pasado por la cabeza, pero me fui a la wiki del GML que me echaba atr?s esa posibilidad.
Cito textualmente:
CitarCuando se ejecuta un evento de colisi?n, Game Maker autom?ticamente crea la variable "other", la cual se refiere a la instancia envuelta en la colisi?n.
De hecho yo mismo descartaba esa opci?n justo por el hecho del t?pico c?digo que a veces se pone con la funci?n
"with" que directamente utiliza
"other" como la
"ID" de referencia para asignar variables o funciones:
with(other)
+1 para t? Wadk XD
Un saludo,
- Herni