Wenass, me estoy tirando de los pelos, pasa que tengo aplicado en el oplayer, el típico código anti-lag, ese de activate y deactivate region, para que no se cargue la ram de instancias, pero qué ocurre? que para pasar, el player ha de pulsar botoncitos para abrir puertas (los cuales ya me estuve peleando con ellos en otro post xd y gracias :D ), pero claro, al estar un boton muy alejado de la puerta que abra, pues como cuando lo pulso, la puerta está fuera de la region activada, pues como que ni caso, entonces voy para allá y la puerta anda cerrada... lo he arreglado? sí, aumentando la region activada conseguí que al fín se abriera la joia puerta que se me resistia, pero claro... es tan la distancia, que el juego me vuelve a laguear y es como si no hubiese nada de anti-lag ... el caso es... cuando pongo el deactivate_region ese, tiene en lo último el "notme", y no hay una manera de hacer que sea un "notme and not las puertas"? xDD espero haberme explicado bien, que me enrollo y luego no mesentiende :B
PD: NO! no acercaré el boton de la puerta, estoy pasando el juego de la carpeta con hojas de papel que hice de peke, al pc, y ni un solo milimetro será modificado, se le llama ilusión =_=
¿Si no usas el código anti-lag, tu juego presenta lag?
Luego de desactivar todas las instancias fuera de la región, activa las puertas usando esto:
instance_activate_object(obj_puerta)
Cita de: penumbra en Septiembre 21, 2014, 09:39:35 PM
Si no usas el código anti-lag, tu juego presenta lag?
pues claro xD sino para qué lo uso? xd
Cita de: TheSandBoxMKG en Septiembre 21, 2014, 10:04:37 PM
Luego de desactivar todas las instancias fuera de la región, activa las puertas usando esto:
instance_activate_object(obj_puerta)
en un principio he pensado, "ERES DIOS!!", pero luego pienso... y no se volverá loco al tener confrontados en cada step un deactivate region que desactiva X puertas y a la vez esa función que las activa? :/
EDITO: ya lo he probado, MEGA LAGS!!!!!!! (y si, he bajado el region para que no laguease), además ahora algunas puertas como que han desaparecido pero sigue la colision :S amos... algo muuu raro, sa vuelto loco O_o tal y como yo pensaba xd
Cita de: kostra en Septiembre 21, 2014, 10:15:28 PM
Cita de: penumbra en Septiembre 21, 2014, 09:39:35 PM
Si no usas el código anti-lag, tu juego presenta lag?
pues claro xD sino para qué lo uso? xd
Cita de: TheSandBoxMKG en Septiembre 21, 2014, 10:04:37 PM
Luego de desactivar todas las instancias fuera de la región, activa las puertas usando esto:
instance_activate_object(obj_puerta)
en un principio he pensado, "ERES DIOS!!", pero luego pienso... y no se volverá loco al tener confrontados en cada step un deactivate region que desactiva X puertas y a la vez esa función que las activa? :/
EDITO: ya lo he probado, MEGA LAGS!!!!!!! (y si, he bajado el region para que no laguease), además ahora algunas puertas como que han desaparecido pero sigue la colision :S amos... algo muuu raro, sa vuelto loco O_o tal y como yo pensaba xd
No me esperaba eso xD
Buscare otra solución :P
Cita de: kostra en Septiembre 21, 2014, 10:15:28 PM
en un principio he pensado, "ERES DIOS!!", pero luego pienso... y no se volverá loco al tener confrontados en cada step un deactivate region que desactiva X puertas y a la vez esa función que las activa? :/
A menos que el jugador se mueva a una supervelocidad, el codigo de desactivación se puede poner en una alarma que se ejecute cda 1, 2 o 3 segundos, porque no tiene caso estar desactivando instancias que ya están desactivadas en cada STEP. El código de activación también se puede usar solo en ciertos momentos, para no tener que activar siempre.
No lo he probado, pero a lo mejor funciona
[gml]
with (all)
{
if (object_index != obj_puerta) and (object_index != obj_jugador)
{
if ( abs(x - obj_player.x) < offset_x ) and ( abs(y - obj_player.y) < offset_y )
instance_deactivate_object(self)
}
}[/gml]
offset_x y offset_y son un valor que define qué tan grande quieres que sea la región alrededor del jugador. Yo creo que este código también sería mejor ponerlo en una alarma que se ejecute cada 2 o 3 segundos para mejorar la optimización, por la razón que ya comenté más arriba
Si usas muchos solidos, aquí hay un tema interesante:
http://www.comunidadgm.org/preguntas-y-respuestas/duda-diferencia-entre-evento-colision-y-place_meeting/ (http://www.comunidadgm.org/preguntas-y-respuestas/duda-diferencia-entre-evento-colision-y-place_meeting/)
JOOORL!!! solucionado!! :D :D :D y no con lo que me dijiste penumbra, sino con tu frase "El código de activación también se puede usar solo en ciertos momentos" me diste una mega idea!! lo que he hecho es crear una variable al player, le puse lag = 0; entonces encerré el anti-lag en un "if lag = 0..." entonces... en la colisión del botón con el player puse
oplayer.lag = 1;
instance_activate_object(obdoor);
with(obdoor) { if ide==other.ide { instance_destroy(); } }
image_index = 1;
oplayer.lag = 0;
y APARCAO!! :D
sandbox, ahorrate el esfuerzo de buscar solución ya, muchísimas gracias a tods ^_^
EDITO: sandbox, y eso a que viene? jeje no lo entiendo, ya sé esas diferencias, lo que no sé qué tiene que ver con todo esto jaja, en fin, ya pueden cerrar esto :)
Lo que decía era que con place_free, era mas optimizado que usar colisiones, pero no importa 8)
si bueno, pero en momentos puntuales me es más cómodo así jeje, bueno señor moderador, puede usteZ cerrar :)