Es mejor si es una sola instancia que cambia su tamaño (con image_xscale, image_yscale)
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.
842
Preguntas y respuestas / Re:¿Efecto desenfoque radial?
Abril 02, 2016, 02:34:10 PM
Es extraño, lo ejecuté por más de 5 minutos y en ningún momento bajaron los fps, el uso de memoria se mantuvo constante (20 MB aprox.) y el uso de procesador fluctuó un poco, pero nunca se usó demasiado.
Hice otra prueba y encontré un error: Cuando se reinicia la room las surfaces se mantienen en memoria y se crean otras nuevas, el uso de memoria no incrementa mucho, pero de todas formas es un desperdicio. Es necesario borrar esas surfaces, al cambiar de room o al reiniciar, y también sería conveniente al finalizar el juego.
[gml]
//Previo a room_restart
if surface_exists( sf0 )
surface_free( sf0 );
if surface_exists( sf1 )
surface_free( sf1 );
// ...
[/gml]
Hice otra prueba y encontré un error: Cuando se reinicia la room las surfaces se mantienen en memoria y se crean otras nuevas, el uso de memoria no incrementa mucho, pero de todas formas es un desperdicio. Es necesario borrar esas surfaces, al cambiar de room o al reiniciar, y también sería conveniente al finalizar el juego.
[gml]
//Previo a room_restart
if surface_exists( sf0 )
surface_free( sf0 );
if surface_exists( sf1 )
surface_free( sf1 );
// ...
[/gml]
843
Preguntas y respuestas / Re:posicionamiento de objeto en la room
Abril 02, 2016, 01:57:18 PM
[gml]
x = irandom_range( 50+w2, 670-w2 );
y = irandom_range( 460+h2, 920-h2 );
[/gml]
x = irandom_range( 50+w2, 670-w2 );
y = irandom_range( 460+h2, 920-h2 );
[/gml]
844
Preguntas y respuestas / Re:gravedad
Abril 02, 2016, 05:40:23 AM
¿qué clase de planeta es?, ¿cómo se detectan las colisiones?
Adjunto el editable de "They need to be fed", es un motor de planetas muy sólido, pero bastante complejo.
Adjunto el editable de "They need to be fed", es un motor de planetas muy sólido, pero bastante complejo.
845
Preguntas y respuestas / Re:Hacer varios clic rapidamente?
Abril 02, 2016, 05:21:37 AM
Por defecto dos toques rápidos se detectan como un clik derecho, para que eso no suceda debes usar esta función
[gml]
device_mouse_dbclick_enable( false );
[/gml]
Y como mencionó Niu, no tiene sentido usar las funciones para multitouch y después las de mouse normal.
Lo mejor es que el multitouch se maneje en un objeto aparte, para que no se repita el ciclo for en todas las instancias que deben reaccionar a los toques, por ejemplo:
[gml]
for( i=0; i<5; i++ )
if device_mouse_check_button_pressed( i, mb_left )
{
with instance_position(
device_mouse_x(i),
device_mouse_y(i), objeto )
{
// acciones ...
}
}
[/gml]
[gml]
device_mouse_dbclick_enable( false );
[/gml]
Y como mencionó Niu, no tiene sentido usar las funciones para multitouch y después las de mouse normal.
Lo mejor es que el multitouch se maneje en un objeto aparte, para que no se repita el ciclo for en todas las instancias que deben reaccionar a los toques, por ejemplo:
[gml]
for( i=0; i<5; i++ )
if device_mouse_check_button_pressed( i, mb_left )
{
with instance_position(
device_mouse_x(i),
device_mouse_y(i), objeto )
{
// acciones ...
}
}
[/gml]
846
Preguntas y respuestas / Re:posicionamiento de objeto en la room
Abril 02, 2016, 05:04:14 AM
En el código que puse, ya se calcula el tamaño y además se divide entre 2 (variables w2 y h2). La división se hace suponiendo que el origen está en el centro del sprite. Esos valores se usan como parámetros en la función irandom_range.
847
Preguntas y respuestas / Re:Error al colisionar!! [AYUDA!]
Abril 02, 2016, 04:59:29 AM
No logré encontrar el problema, tal vez es el origen de la máscara de colisión, o es porque estas combinando la detección de colisión con "place" y "position".
848
Preguntas y respuestas / Re:posicionamiento de objeto en la room
Marzo 31, 2016, 04:43:14 PM
Calcula el tamaño del objeto para cambiar el rango de posicionamiento:
[gml]
if !instance_exists( obj_enemigo )
with instance_create( 0,0, obj_enemigo )
{
w2 = sprite_width * image_xscale / 2;
h2 = sprite_height * image_yscale / 2;
x = irandom_range( w2, room_width-w2 );
y = irandom_range( h2, room_height-h2 );
}
[/gml]
[gml]
if !instance_exists( obj_enemigo )
with instance_create( 0,0, obj_enemigo )
{
w2 = sprite_width * image_xscale / 2;
h2 = sprite_height * image_yscale / 2;
x = irandom_range( w2, room_width-w2 );
y = irandom_range( h2, room_height-h2 );
}
[/gml]
849
Preguntas y respuestas / Re:Problemas de rendimiento.
Marzo 30, 2016, 05:37:38 AM
Creo que se refiere a las opciones que están en
Global Game Settings » Other » Game Process Priority
nunca las he usado, así que no se si de verdad funcionan.
Global Game Settings » Other » Game Process Priority
nunca las he usado, así que no se si de verdad funcionan.
850
Preguntas y respuestas / Re:existe opción "GUI"?
Marzo 29, 2016, 08:42:45 PM
No existe una forma fácil, pero tal vez los recursos del mercado te puedan ayudar:
https://marketplace.yoyogames.com/search/results?utf8=✓&query=gui
https://marketplace.yoyogames.com/search/results?utf8=✓&query=gui
851
Preguntas y respuestas / Re:Problema con la colocacion de fuentes
Marzo 29, 2016, 08:39:59 PM
No siempre existe una solución sencilla, porque hay que pensar en todas las posibilidades. Si quieres sube una imagen para ver cómo debe ser el ajuste, así será más fácil ayudar.
852
Preguntas y respuestas / Re:¿Efecto desenfoque radial?
Marzo 29, 2016, 08:37:16 PM
Ya lo pasé a gmk, espero que funcione.
853
Preguntas y respuestas / Re:como cambiar direciones con tocar la pantalla
Marzo 29, 2016, 03:36:36 PM
También podría ser así
[gml]
//Evento Create
speed = 5;
[/gml]
[gml]
//Evento Global Mouse Left
direction -= 90;
[/gml]
[gml]
//Evento Create
speed = 5;
[/gml]
[gml]
//Evento Global Mouse Left
direction -= 90;
[/gml]
854
Preguntas y respuestas / Re:Problema con la colocacion de fuentes
Marzo 29, 2016, 03:32:06 PM
Las coordenadas deben ser variables para que se puedan ajustar a cualquier ventana. El primer paso es conocer el tamaño de la capa GUI o de la ventana (que normalmente es el mismo), con estas funciones:
[gml]
anchura = window_get_width();
altura = window_get_height();
// o
anchura = display_get_gui_width();
altura = display_get_gui_height();
[/gml]
y después posicionar el texto, por ejemplo:
[gml]
draw_text( anchura/2, altura-50, puntos );
[/gml]
[gml]
anchura = window_get_width();
altura = window_get_height();
// o
anchura = display_get_gui_width();
altura = display_get_gui_height();
[/gml]
y después posicionar el texto, por ejemplo:
[gml]
draw_text( anchura/2, altura-50, puntos );
[/gml]
855
Preguntas y respuestas / Re:pasar codigo delphi a game maker
Marzo 29, 2016, 04:35:42 AM
Wikipedia explica muy bien el algoritmo, y con esa información hice este script:
[gml]
///ean( cadena )
var I, L, S;
L = string_length( argument0 ); //longitudd
if( L<>7 and L<>12 ) return -1; //codigo no valido
S = 0;
for( I=L; I>0; I-=2 ) //suma impar
S += real(string_char_at( argument0, I ));
S *= 3;
for( I=L-1; I>0; I-=2 ) //suma par
S += real(string_char_at( argument0, I ));
return (10 - (S mod 10)) mod 10; //resultado
[/gml]
La entrada debe ser una cadena de 7 o 12 carateres, y el resultado es un entero.
[gml]
///ean( cadena )
var I, L, S;
L = string_length( argument0 ); //longitudd
if( L<>7 and L<>12 ) return -1; //codigo no valido
S = 0;
for( I=L; I>0; I-=2 ) //suma impar
S += real(string_char_at( argument0, I ));
S *= 3;
for( I=L-1; I>0; I-=2 ) //suma par
S += real(string_char_at( argument0, I ));
return (10 - (S mod 10)) mod 10; //resultado
[/gml]
La entrada debe ser una cadena de 7 o 12 carateres, y el resultado es un entero.