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 - matiascarpello

16
Hola gente, tengo una consulta.

Yo utilizo el siguiente código en un evento step de un controlador para desactivar todas las instancias que se encuentren fuera de la view:


instance_activate_all();
      instance_deactivate_region(view_xview[0],view_yview[0]-200,view_wview[0],view_hview[0]+200,false,true);


El código funciona perfecto pero yo necesito que una instancia en particular no sea afectada por el script, o sea que no se desactive en ningún momento.

¿Cómo puedo adaptar ese script que utilizo para que una instancia en particular no sea desactivada?
17
Preguntas y respuestas / Re:Pregunta de Optimizacion
Diciembre 04, 2017, 10:27:05 PM
No recomiendo trabajar con 3D en gamemaker, es muy soso y anticuado para el 3D. Pero te daré unos consejos de optimización.

Lo primero es lo primero, si no vas a usar las surfaces es importantisimo que la desactives y así te ahorraras bastantes FPS.

Para desactivar las surfaces utiliza: application_surface_enable(false);

Otra forma de optimizar tu juego saber hacer uso adecuando del tamaño de tus sprites. Por ejemplo, su tu juego será de estilo pixelart, es recomendable una resolución de pantalla de 640x360. Más resolución es innecesario para un juego pixelart.

Optimiza tu código. Tienes que saber diferenciar el evento create del evento step. El evento create se ejecuta una sola vez, mientras que el evento step se ejecuta constantemente a cada paso.

En la web de yoyo hay un tutorial muy amplio sobre como optimizar los juegos.
18
Tienes que crear un keystore en las configuraciones de gamemaker en el apartado Android.

Y mucho ojo porque, si ya subiste alguna vez un juego y quieres publicar una actualización, tendrás que tener la misma firma con la que subiste tu juego por primera vez, de lo contrario no podrás subir más actualizaciones, así que te recomiendo que una vez que tengas el keystore con el que vas a trabajar, crees una copia de seguridad del mismo. Busca en google como crear backus de keystore en gamemaker porque es muy importante.
19
Gracias NiuWeb.

Efectivamente el código estaba bien, el problema era que el objeto enemigo se estaba creando después de el objeto bloque que tiene justamente el código para eliminarlo. Lo solucioné introduciendo el código en un alar[0]=1. Total es como el evento create, se ejecuta una sola vez y listo.
20
Qué raron, estoy aplicando el siguiente código en un evento create pero no me funciona


var inst;
inst = collision_rectangle(50, 50, 200, 100, obj_enemigo, false, true);
if inst != noone
   {
   with (inst) instance_destroy();
   }


Ya corroboré dibujando un rectángulo para ver si estaban bien esas coordenadas que puse en el evento create y en teoría tendría que destruir al objeto enemigo pero no lo hace.
21
Hola gente. Tengo una duda y quiero saber como sería posible hacer lo siguiente.

Quiero que en el evento create se compruebe una sola vez si el objeto bloque colisiona con el objeto enemigo.

Si el objeto bloque colisiona con el enemigo entonces que solo el enemigo con el que colisiona el bloque se destruya. No todas las instancias enemigos. Solo con el que coliciona.

Para eso yo trato de aplicar en el evento create del objeto bloque un place_meeting(x,y,obj_enemigo).

El problema es que no se como hacer para que elimine solo al enemigo que está colisionando con el bloque. Con el evento collision es fácil, le agrego destroy y marco la casilla other, pero yo necesito que esté en el evento create para poder optimizar mi código, ya que el evento collition hace una comprobación permanente.
22
Preguntas y respuestas / Re:Pregunta sobre eficiencia.
Diciembre 04, 2017, 12:45:40 PM
El problema no es el tamaño de las rooms, sino de la cantidad de instancias que tenga esa room.

Con lo cuál, si tienes una room de 7680x4320, se sobreentiende que tendrá muchas más instancias que una room de 1920x1080.

Así que en principio se podría decir que 16 rooms de 1920x1080 son más eficientes que una de 7680x4320. Pero, puedes optimizar ciertas cuestiones para que el rendimiento no sea un problema.
Por ejemplo:


Si no utilizas surface, desactivalas. Se logra un gran rendimiento al no utilizarlas.
Haz como dijo TheWood. crea un script para deshabilitar todas las instancias que no estén dentro de la cámara.
Optimiza tu código. Muchos cometen el error de utilizar script en un evento step, o collision por ejemplo, con lo cuál ese código se está ejecutando a cada paso. Muchas veces esos códigos se los puede integrar en un evento create y así optimizar rendimiento.
Hay muchas más formas de optimizar el rendimiento, busca en la página de gamemaker que hay un artículo con todas las técnicas.

23
Cita de: Seirlord_Games en Noviembre 22, 2017, 09:51:01 AM
Cita de: Darkrabis en Noviembre 21, 2017, 02:53:22 AM
Hola buenas, hace unos meses cuando realizaron el humble bamdle de este año hice dicha compra y active la licencia pero se me paso escribirla en el game maker que tengo en mi pc. Desde entonces no pude tocar mas el programa y ahora que entro me parece que hicieron cambios con respecto al tema porque no encuentro ni en la pagina ni el launcher principal donde vincularlo con mi ordenador para tener los modulos ( los veo en la pagina pero no cuando corro el editor). En estos meses han realizado cambios con su funcionamiento debido al gm2?

Game Maker Studio 1 ha dejado de comercializarse, y en 2018 quitarán el soporte, recomiendo encarecidamente pasarse a GMS2

Yo considero un gran error pasarse en estos momentos a GMS 2 y voy a explicar mis razones.

1) No hay nada que GMS 2 no puedas hacerlo en GMS 1.
2) Sinceramente GMS 2 no es un cambio radical. Sigue siendo el mismo motor con el mismo lenguaje anticuado. Solo se añadieron algunas funciones interesantes y un lavado de cara en la interfaz y nada más.
3) El precio de las diferentes licencias y modulos de exportación en GMS 2 es tremenda mente exagerado. Cuando incluso tienes motores muchos mas potentes gratuitos como Godot, Unity 3D, o unreal engine.
4) Si bien se termina el soporte de GMS 1 en 2018, ya se puliron los bugs más graves que tenía el programa. Y si hay alguna extensión como google play, admob que requiera ser avtualizada y yoyo no le de soporte en gms 1, seguramente la comunidad se ocupará de generar una extensión compatible.
24
Preguntas y respuestas / Re:Unir varias rooms en una sola
Noviembre 27, 2017, 11:43:58 PM
Eso sería genial y podría servirme. Entonces. Yo ya tengo como 20 rooms prefabricadas. Cada room tiene un tamaño de 640x360. ¿Cómo podría guardar esos patrones en un txt?
25
Preguntas y respuestas / Unir varias rooms en una sola
Noviembre 27, 2017, 09:05:03 PM
Hola comunidad. Tengo una duda con la generación procedural. Investigando bien en foros llegué a la conclución que hay dos formas de implementar la generación procedural.

El 1er metodo es como el juego spelunsky en el que absolutamente todo es es generado de forma procedural.
El 2do método es como el juego Rogue Legacy, en el que se crean previamente roms prefabricadas con alguna aleatoriedad y después esas roms se unen entre sí.

Yo quiero intentar el 2do método y crear varias roms pre fabricadas, pero ¿cómo puedo unir roms una al lado de otras?
¿Hay alguna función en gamemaker para unir roms?

Cuando digo unir roms me refiero a que todas hagan una sola rom grande.
26
Preguntas y respuestas / Re:LINEA EN EL BACKGROUND
Noviembre 24, 2017, 11:16:43 PM
Probaste en marcar o desmarcar la casilla "use synchorization to avoid tearing" Es en la pestaña de configuración de graficos, en el mismo lugar donde aparece interpolate colors betweens. Prueba y dime si te funciona.
27
En la tienda markplace hay varias extenciones para poder grabar el audio en Android. Incluso hay una que pone una demo apk para que veas como funciona la grabación. Pero desde ya te digo que si se puede si compras una de esas exenciones. Y no son caras.
28
Hola comunidad.

Tengo el siguiente dilema.

Tengo en una habitación 1000 bloques. Necesito que de forma aleatoria arriba de ese bloque tenga sprite animado.
Hasta ahí todo perfecto.

Mi duda es como hacerlo para tener mejor rendimiento. Y para eso tengo dos opciones.

La primera es utilizar el evento draw en el bloque utilizando la función draw_self() y dibujar arriba del bloque el sprite en cuestión.
La segunda opción es en ves de dibujar el sprite, crear directamente un objeto que tenga esa animación de sprite.

Si utilizo el evento draw, serán 1000 bloques que tendrán ese evento cada uno dibujando.
Si utilizo la opción de crear una instancia que tenga esa animación, serán 1000 instancias nuevas creadas en la room.

¿Algún consejo?




29
Hola comunidad.

Tengo el siguiente código que lo que hace es repetir entre 10 a 15 veces una instancia.
Se crea de forma aleatoria entre 10 a 15 bloques dentro de los límites que le establecí tanto en el eje x como en el eje y.
Ahora, mi duda es que de esta forma los bloques se crear por cualquier parte, yo lo que necesito es que se ajusten a la grilla de 32, por que cada bloque tiene 32 px.

¿Cómo podría implementar esa parte?


repeat(irandom_range(10,15))
    {
        instance_create(x+irandom_range(0,480),y+irandom_range(0,256),obj_muro)
    }
30
Cita de: Ashe de Freljord en Noviembre 23, 2017, 05:27:25 PM
Cambia el repeat por un for y multiplica la coordenada y:

For(i=0; i<50;i++)
        Instance_create(x, y-(32*i), bloque)

Funciona perfecto, gracias.