Tal vez el dispositivo no tiene suficientes recursos para correr un juego hecho con GMS, prueba con YoyoCompiler o desactiva la Application Surface.
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.
1112
Preguntas y respuestas / Re:FPS Varia.
Octubre 12, 2015, 05:12:59 AM
En la imagen del profile se muestran los porcentajes contando únicamente el código, eso es útil cuando quieres comparar la velocidad de diferentes códigos o ver qué objeto consume más procesador.
Para ver los porcentajes tomando en cuenta todos los procesos, selecciona "Combined" en la lista que está arriba a la derecha. El mayor porcentaje debe ser el de "RoomSpeedSync". Se puede decir que ese es el tiempo que tiene el procesador para descansar, después de haber realizado todas las operaciones del step, mientras más alto sea ese porcentaje es mejor. Si el porcentaje es bajo ve revisando con calma todos los elementos del árbol que se vean sospechosos.
Otra herramienta de depuración que te puede servir es show_debug_overlay, en el manual se muestran los significados de los colores http://docs.yoyogames.com/source/dadiospice/002_reference/debugging/show_debug_overlay.html
Para ver los porcentajes tomando en cuenta todos los procesos, selecciona "Combined" en la lista que está arriba a la derecha. El mayor porcentaje debe ser el de "RoomSpeedSync". Se puede decir que ese es el tiempo que tiene el procesador para descansar, después de haber realizado todas las operaciones del step, mientras más alto sea ese porcentaje es mejor. Si el porcentaje es bajo ve revisando con calma todos los elementos del árbol que se vean sospechosos.
Otra herramienta de depuración que te puede servir es show_debug_overlay, en el manual se muestran los significados de los colores http://docs.yoyogames.com/source/dadiospice/002_reference/debugging/show_debug_overlay.html
1113
Preguntas y respuestas / Re:Como pongo 1° persona
Octubre 11, 2015, 04:20:44 PM
¿Es un juego en 2D, como una aventura gráfica? En ese caso, todo depende de qué tan bien puedas dibujar los escenarios, usando perspectiva e iluminación.
Si es en 3D, lo principal es orientar la proyección (la cámara) en la dirección correcta, para eso se define un vector con dos puntos, el primero es la posición de los ojos y el segundo indica hacia dónde mira.
Especifica lo que quieres para profundizar más en el tema.
Si es en 3D, lo principal es orientar la proyección (la cámara) en la dirección correcta, para eso se define un vector con dos puntos, el primero es la posición de los ojos y el segundo indica hacia dónde mira.
Especifica lo que quieres para profundizar más en el tema.
1114
Preguntas y respuestas / Re:FPS Varia.
Octubre 10, 2015, 10:39:03 PM
La forma más fácil para identificar qué es lo que produce la ralentización es correr el juego en modo de depuración y hacer un "profile". Aquí hay un artículo al respecto:
https://www.yoyogames.com/tech_blog/56
https://www.yoyogames.com/tech_blog/56
1115
Juegos completos / Re:[Android & Windows] Mr Ortiz wants to save his farm
Octubre 10, 2015, 10:33:16 PM
Es un juego entretenido. Si, los gráficos son muy sencillos, pero creo que la música lo compensa :D
Lo que me parece extraño es que las cajas no contaminan si se destruyen en el aire, pero bueno, ningún videojuego es fiel a la realidad.
Me gustaría que antes de iniciar el nivel se mostrara una cuenta regresiva, no muy larga, pero que sea suficiente para orientarte antes de que el avión empiece a lanzar cajas, y también me gustaría ver una tabla de records.
Lo que me parece extraño es que las cajas no contaminan si se destruyen en el aire, pero bueno, ningún videojuego es fiel a la realidad.
Me gustaría que antes de iniciar el nivel se mostrara una cuenta regresiva, no muy larga, pero que sea suficiente para orientarte antes de que el avión empiece a lanzar cajas, y también me gustaría ver una tabla de records.
1116
Preguntas y respuestas / Re:Necesito mantener una SURFACE en un cuarto permanente
Octubre 10, 2015, 09:36:45 PM
Este es un ejemplo que usa background_create_from_surface, debes colocar el código en los lugares indicados:
[gml]
//Al iniciar
global.w = ; //anchura
global.h = ; //altura
global.sf = surface_create( global.w, global.h );
global.bg = -1; //no hay dibujo
surface_set_target( global.sf );
//...se dibuja en sf...
//Al cambiar de habitacion
global.bg = background_create_from_surface( global.sf,
0,0,global.w,global.h, false,false ); //guardar sf en bg
surface_reset_target();
//Al regresar a la habitacion
if not surface_exists( global.sf ) //si sf se ha borrado
{
global.sf = surface_create( global.w, global.h ); //crear otra vez
if background_exists( global.bg ) //si el dibujo se puede recuperar
{
surface_set_target( global.sf );
draw_background( global.bg, 0,0 ); //dibujarlo en sf
surface_reset_target();
background_delete( global.bg ); //borrar bg
}
}
[/gml]
[gml]
//Al iniciar
global.w = ; //anchura
global.h = ; //altura
global.sf = surface_create( global.w, global.h );
global.bg = -1; //no hay dibujo
surface_set_target( global.sf );
//...se dibuja en sf...
//Al cambiar de habitacion
global.bg = background_create_from_surface( global.sf,
0,0,global.w,global.h, false,false ); //guardar sf en bg
surface_reset_target();
//Al regresar a la habitacion
if not surface_exists( global.sf ) //si sf se ha borrado
{
global.sf = surface_create( global.w, global.h ); //crear otra vez
if background_exists( global.bg ) //si el dibujo se puede recuperar
{
surface_set_target( global.sf );
draw_background( global.bg, 0,0 ); //dibujarlo en sf
surface_reset_target();
background_delete( global.bg ); //borrar bg
}
}
[/gml]
1117
Preguntas y respuestas / Re:Aparicion de objetos
Octubre 10, 2015, 01:50:14 AM
Esta es una forma. Primero inicializa dos variables en el evento Create:
[gml]
score = 0;
marca = 10;
[/gml]
En el evento Step se comprueba si la puntuación ha alcanzado la marca establecida:
[gml]
if( score >= marca )
{
instance_create( x,y, objeto ); //crear instancia
marca += 10; //incrementar marca
}
[/gml]
cada vez que se alcanza la marca, esta incrementa su valor en 10. Eso es todo.
[gml]
score = 0;
marca = 10;
[/gml]
En el evento Step se comprueba si la puntuación ha alcanzado la marca establecida:
[gml]
if( score >= marca )
{
instance_create( x,y, objeto ); //crear instancia
marca += 10; //incrementar marca
}
[/gml]
cada vez que se alcanza la marca, esta incrementa su valor en 10. Eso es todo.
1118
Juegos completos / Re:[ANDROID - WINDOWS] YOLO Life: The Beginning.
Octubre 10, 2015, 01:37:31 AM
La versión que no se necesita instalar está dos mensajes más arriba, tal vez el enlace debería estar en el mensaje principal.
1119
Grafismo & Composición / Re:¡Más música! Segundo pack.
Octubre 09, 2015, 12:14:23 AM
Has mejorado respecto al paquete anterior, me gusta ese estilo oscuro y barroco, pero creo que las canciones necesitan momentos más memorables, es difícil recordarlas después de un tiempo.
¿Podrías ayudarme a hacer los arreglos de unas melodías? Hace tiempo escribí unos pequeños "loops" que podrían usarse en videojuegos, pero no logro poner arreglos que se escuchen bien. Si decides ayudarme, ¿en qué formato prefieres las canciones?, estoy usando famitracker, pero tal vez quieras partituras o algo por el estilo.
Hasta pronto.
¿Podrías ayudarme a hacer los arreglos de unas melodías? Hace tiempo escribí unos pequeños "loops" que podrían usarse en videojuegos, pero no logro poner arreglos que se escuchen bien. Si decides ayudarme, ¿en qué formato prefieres las canciones?, estoy usando famitracker, pero tal vez quieras partituras o algo por el estilo.
Hasta pronto.
1120
Desarrollo de Scripts / Re:Torreta que escoge, apunta y dispara
Octubre 08, 2015, 11:53:52 PM
Funciona bien, pero me gustaría un cambio de ángulo más suave. Se podría combinar con el código que escribí hace poco: http://www.comunidadgm.org/preguntas-y-respuestas/(ayuda)-torreta-que-apunta-y-dispara-a-diversos-enemigos/. Y para darle mejor utilidad como script, se podrían cambiar los nombres de los objetos por agumentos del script, así sería más flexible.
También estuve pensando en hacer una torreta más inteligente que pudiera decidir a qué enemigo disparar tomando en cuenta 3 condiciones: la salud del enemigo, la distancia y la rotación requerida para apuntar al enemigo; estaría bien agregar la condición que propone kostra. Las condiciones podrían tener diferente peso, para programar torretas con diferentes prioridades. Podemos trabajar juntos para desarrollar ese script.
También estuve pensando en hacer una torreta más inteligente que pudiera decidir a qué enemigo disparar tomando en cuenta 3 condiciones: la salud del enemigo, la distancia y la rotación requerida para apuntar al enemigo; estaría bien agregar la condición que propone kostra. Las condiciones podrían tener diferente peso, para programar torretas con diferentes prioridades. Podemos trabajar juntos para desarrollar ese script.
1121
Preguntas y respuestas / Re:¿Reflejo de espejo en plataforma 2D?
Octubre 08, 2015, 02:51:33 AM
En ese caso, lo que se debe hacer es dibujar un sprite que muestre al personaje visto desde un ángulo diferente.
Lo primero es dibujar al personaje como se ve en el espejo.
Después crear un objeto que imite los movimientos del personaje, pero con sprites diferentes, las relaciones entre sprites se podrían almacenar en arreglos o en ds_maps. El objeto reflejo debe tener una posición ligeramente desplazada respecto al objeto principal, podría ser un poco a la izquierda o a la derecha.
Por último, el marco del espejo debe recortar el sprite reflejo, para esto se me ocurren dos formas:
La primera es hacer que el espejo sea un hoyo (un sprite o tile con tranparencia) y dibujar el objeto reflejo en el fondo, de modo que sólo una parte sea visible al pasar por el hueco que es el espejo
La segunda es hacer que el espejo dibuje una "surface" en la que se recorte el objeto reflejo, el procedimiento sería así: crear una surface con el tamaño del espejo, obtener la posición relativa entre el personaje y el espejo, dibujar (en la surface) el objeto reflejo con la posición relativa calculada previamente, cambiar el "blend mode" y dibujar una máscara de recorte con la forma del espejo, regresar el "blend mode" a la normalidad y dibujar la surface en la posición del espejo.
Adjunto un ejemplo de recorte con surface. Para obtener mejores resultados, la máscara de recorte debe ser de color blanco para las áreas que se desean conservar y trasparente para las partes que se desean borrar.
Lo primero es dibujar al personaje como se ve en el espejo.
Después crear un objeto que imite los movimientos del personaje, pero con sprites diferentes, las relaciones entre sprites se podrían almacenar en arreglos o en ds_maps. El objeto reflejo debe tener una posición ligeramente desplazada respecto al objeto principal, podría ser un poco a la izquierda o a la derecha.
Por último, el marco del espejo debe recortar el sprite reflejo, para esto se me ocurren dos formas:
La primera es hacer que el espejo sea un hoyo (un sprite o tile con tranparencia) y dibujar el objeto reflejo en el fondo, de modo que sólo una parte sea visible al pasar por el hueco que es el espejo
La segunda es hacer que el espejo dibuje una "surface" en la que se recorte el objeto reflejo, el procedimiento sería así: crear una surface con el tamaño del espejo, obtener la posición relativa entre el personaje y el espejo, dibujar (en la surface) el objeto reflejo con la posición relativa calculada previamente, cambiar el "blend mode" y dibujar una máscara de recorte con la forma del espejo, regresar el "blend mode" a la normalidad y dibujar la surface en la posición del espejo.
Adjunto un ejemplo de recorte con surface. Para obtener mejores resultados, la máscara de recorte debe ser de color blanco para las áreas que se desean conservar y trasparente para las partes que se desean borrar.
1122
Preguntas y respuestas / Re:Cómo generar un objeto de forma aleatoria dentro de un recuadro
Octubre 07, 2015, 07:51:57 PM
Usa este código:
[gml]
instance_create(
irandom_range( xmin, xmax ),
irandom_range( ymin, ymax ),
obj_item );
[/gml]
debes definir los límites (xmin, xmax, ...)
[gml]
instance_create(
irandom_range( xmin, xmax ),
irandom_range( ymin, ymax ),
obj_item );
[/gml]
debes definir los límites (xmin, xmax, ...)
1123
Preguntas y respuestas / Re:Libreria para formularios
Octubre 05, 2015, 02:34:25 AM
Espero que esto te sirva: https://marketplace.yoyogames.com/assets/362/gui-widget-library
1124
Preguntas y respuestas / Re:como detectar colisión una sola vez con el mismo objeto?
Octubre 04, 2015, 10:16:02 PM
Esta es la versión con listas.
Evento Create de objeto A
[gml]
colision = ds_list_create(); //crear lista
[/gml]
Evento colisión de objeto A con objeto B
[gml]
if( ds_list_find_index(colision,other.id) < 0 )
{ //si la instacia colisionada no se encuentra en la lista
ds_list_add(colision,other.id) //agregar id
variable += 1; //incrementar variable
}
[/gml]
Evento Create de objeto A
[gml]
colision = ds_list_create(); //crear lista
[/gml]
Evento colisión de objeto A con objeto B
[gml]
if( ds_list_find_index(colision,other.id) < 0 )
{ //si la instacia colisionada no se encuentra en la lista
ds_list_add(colision,other.id) //agregar id
variable += 1; //incrementar variable
}
[/gml]
1125
Preguntas y respuestas / Re:Aceleración y fricción en 2D
Octubre 04, 2015, 04:27:58 PM
Gracias Ynfiniti, creo no voy a poder usar los scripts directamente, hay que hacer muchas modificaciones, sin embargo, me dieron la idea de representar el movimiento como un sistema con amortiguamiento.