Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Clamud

586
Usar una imagen de ese tamaño puede afectar el rendimiento en un dispositivo portatil.
Si usas páginas de textura con el máximo tamaño permitido (2048x2048) la imagen se va a reducir hasta 1250x1250 para que pueda caber en la página de textura, afectando su calidad.
Para que no suceda lo anterior, debes dividir la imagen en varias partes que no pasen de 2048x2048 (o el tamaño de página elegido), pero la consecuencia es que se realizarán muchos cambios de textura en el evento Draw, y ese proceso es lento en los teléfonos.
Lo mejor sería convertir las partes repetidas en tiles o sprites y armar el escenario con el editor de rooms.
587
Crea una variable global, por ejemplo global.dibujar_luz = false;
En el evento que dibuja la luz coloca el bloque DnD "Test variable", como aparece en la imagen adjunta, para ejecutar el código solo cuando la variable sea true.
En el objeto que se dibuja al último activa la variable global y ejecuta el evento de los objetos luz
[gml]
global.dibujar_luz = true;
with( obj_luz )event_perform(ev_step, ev_step_normal);
global.dibujar_luz = false;
[/gml]

Otra forma sería simplemente no poner código en los objetos que generan luz y poner todo el código en el objeto controlador
[gml]
with( obj_luz ){
//codigo para generar luz
}
[/gml]
588
El orden de los eventos Draw se puede controlar con la variable depth.
Para controlar el orden de otros eventos se puede crear una lista con los ids de las instancias. Usa una variable global para salir de los eventos en la ejecución normal. Uno objeto controlador ejecutará los objetos en orden usando with y la función event_perform.
589
Sube una captura.

Prueba ejecutando esto al principio del juego:
[gml]
texture_set_interpolation(false);
[/gml]
590
Tal vez te falta usar shader_reset().
591
Muestra lo que tienes instalado con el SDK Manager.
592
Si un background no está hecho para repetirse continuamente, desmarca las opciones Tile: Horizontal y Tile: Vertical.
593
Pues se tendrá que usar itch.io o algo similar.
¿Cuánta gente va a participar?, si hay poca intentaré participar.
594
Muestra el código.
595
Preguntas y respuestas / Re:Optimizar un Step
Agosto 26, 2017, 03:28:47 PM
La funciones distance_to_object y distance_to_point son lentas porque miden la distancia desde el borde de las máscaras de colisión, es mejor usar point_distance para tomar en cuenta solo los orígenes de coordenadas, sin embargo, la distancia obtenida será un poco mayor que con con las funciones anteriores (porque en esas funciones se resta la distancia del origen al borde).

No es necesario crear un nuevo objeto, mejor solo agrega la variable antes de point_distance
[gml]
enemigo = instance_nearest(x,y,obj_Aliado);
if point_distance( enemigo.x, enemigo.y, x,y ) <= rango { //...
[/gml]

Lo anterior se podría optimizar agregando una variable que le indique a la instanca "enemigo" que no vuelva a ejecutar esa parte de código, porque el resultado ya se conoce con anticipación: la instancia más cercana es la misma que acaba de ejecutar el código.

También se podría cambiar el diseño de los niveles para evitar muchas instancias activas al mismo tiempo.
596
Prueba con las funciones display_mouse_get_
El problema es que tendrás que hacer algunas operaciones para mapear las coordenadas de la pantalla a coordenadas de la room.
597
Preguntas y respuestas / Re:Vibrar android
Agosto 23, 2017, 05:05:25 AM
Se eliminó desde la versión 1.4.1767, en la lista de cambio aparece esto: "Removed the Immersion "Haptics SDK" integration on VM builds". No se puede usar con la máquina virtual, pero tal vez si se puede al crear el apk con Yoyo compiler.
598
¿Qué método usaste?, supongo que los botones son objetos y responden a los eventos del ratón.
En ese caso debes usar las funciones device_mouse.
En lugar usar un evento como "Left Button", escribe un código como el siguiente en el evento "Step"
[gml]
for( i=0; i<5; i++ ){ //revisar 5 puntos en la pantalla
   if( device_mouse_check_button( i, mb_left )){ //si se esta tocando un punto
      if( device_mouse_x(i) > bbox_left //ver si esta dentro del sprite
      and device_mouse_x(i) < bbox_right
      and device_mouse_y(i) > bbox_top
      and device_mouse_y(i) < bbox_bottom )
      {
         // respuesta del boton
      }
   }
}
[/gml]
Revisa la documentación
https://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/device%20input/device_mouse_check_button.html
600
¿quieres que se recorte una parte de la room?