Hola.
A ver, tengo un mapa con una view activada, que funciona bien, lo que me gustaría es poner enemigos estáticos a lo largo del mapa y que al alcanzar la vista de cámara empezaran a moverse...
Tengo un enemigo y en el event create tengo un start moving in a direction en 0 y detenido.
Luego tengo un evento Boundary View 0 y ahí tengo que empiece a moverse
La cosa es que se mueven antes de que llegue al view.....
Para más info:
el nivel tiene 9000 * 240 y en el view 0 (Que es el que sigue al jugador) tengo estos parámetros:
View in Room:
X0, Y0, W320, H240
Port on Screen:
X0, Y0, W320, H240
Object Following: Mi Jugador
Hbor: 160
VBor: 120
Hsp -1
VSp -1
¿Álguien sabe qué hago mal o qué me falta? Mientras tanto voy a mirar las referencias de Views en la ayuda, a ver si encuentro algo.
¡Saludos!
{
instance_activate_all();
instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true);
}
Pon este codigo en el Evento Step del jugador. Este codigo desactivara todas las instancias que se encuentren fuera de la view, las activara cuando se encuentren dentro la de la view.
Una instancia desactivada no sera visible ni sus eventos se realizaran.
otra cosa que podrias hacer es ponerle a los objetos y al jugador sprites cuadrados transparentes del tamaño de la room y que lo sigan y al collisionar muevan el objeto
Cita de: vampy09 en Febrero 28, 2014, 03:24:17 PM
{
instance_activate_all();
instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true);
}
Pon este codigo en el Evento Step del jugador. Este codigo desactivara todas las instancias que se encuentren fuera de la view, las activara cuando se encuentren dentro la de la view.
Una instancia desactivada no sera visible ni sus eventos se realizaran.
Gracias, me ha ido genial, otra cosa, podrías explicarme qué significan los false y true del final de la línea? Es que en la ayuda del IDE me sale el texto cortado.
Cita de: ivn_eze en Febrero 28, 2014, 03:57:31 PM
otra cosa que podrias hacer es ponerle a los objetos y al jugador sprites cuadrados transparentes del tamaño de la room y que lo sigan y al collisionar muevan el objeto
Lo había pensado pero supuse que habría una manera menos "cochambrosa" de hacerlo y vampy ha dado con ello :D
instance_deactivate_region(left,top,width,height,inside,notme)
Los primeros 4 valores definen el area en donde la funcion se debe aplicar ( comumente la misma area de la view )
inside: si es false ( como el ejemplo ) las instancias deben estar TOTALMENTE afuera del area para que sea desactivada. Esto evita que las instancias se desactiven en un punto medio, osea cuando una mitad de la instancia se encuantra dentro y la otra mitad afuera de la view; que sucede cuando es true.
notme: si tiene un valor true ( como el ejempo ) la instancia que esta llamando la funcion ( en tu caso el jugador ) no va ha ser "afectado" por la funcion.l
ivn_eze : de cierta forma "estas inventando la rueda", dado que tu ejemplo, aunque ingenioso, tiene una desvantaja. La funcion he puesto ayuda tambien en el "perfomance" general del room, dado que el GM tiene que "estar atento" de menos instancias en cada step y solo "preocuparse" solo por las instancias que se encuentren dentro de la region definida en la funcion. Algo que tu ejemplo no hace.
Saludos!
Citarivn_eze : de cierta forma "estas inventando la rueda", dado que tu ejemplo, aunque ingenioso, tiene una desvantaja. La funcion he puesto ayuda tambien en el "perfomance" general del room, dado que el GM tiene que "estar atento" de menos instancias en cada step y solo "preocuparse" solo por las instancias que se encuentren dentro de la region definida en la funcion. Algo que tu ejemplo no hace.
Saludos!
claro,la forma que yo puse tendria todo el juego activado "al pedo" y pierde fluidez.
el ejemplo en si era una idea que se me ocurrio luego de jugar el dbz smashdown de SNES en nesbox, en el que cuando los jugadores se alejan, automaticamente se separa la pantalla, y cuando mas se acercan, se une en una sola.
luego pense que en este caso podria funcionar pero es mas eficiente el gml
@ivn_eze:
Bueno es algo que tambien a mi me ha pasado; que luego de haber creado mi algoritmo al tiempo me doy cuenta que por medio de una funcion podia realizar el mismo resultado y de una forma mas sencilla!
Lo importante es el proceso mental que haz llevado a cabo para crear tu solucion.
Dado que el GM tiene tantos años de haberse creado, muchas de las posibles situaciones que podamos enfrentarnos en la creacion de un juego, ya han sido de una manera solucionadas por otras personas. El codigo que he puesto es de esos codigos ( smart codes ) que deben estar en el block de notas de todo usurio del GM.
Date cuenta que al contrario de los graficos o el sonidos, el codigo puede y debe ser reutilizado y tampoco es necesario que sea 100% creado por uno mismo.
Para mi, tu dominio del GML dependera de cual habil seas en combinar funciones con las estructuras de control ( if, switch, while, do-while, for, repeat) "sazonandolas" con elementos de Programacion Orientada a Objetos ( principalmente herencia ).
Te repito tu respuesta me parece ingeniosa y luego de leer como fue que te inspiraste, me ha parecido curioso pero... le ha faltado "colmillo" ( experiencia ). ;)
Saludos!