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

76
Preguntas y respuestas / Re:Crear y abrir archivo
Octubre 29, 2015, 05:53:51 PM
Sí, tendrías que sacar una nueva versión con el archivo modificado en los Included Files. Esto es así porque GMS guarda los Included Files en una carpeta temporal que se borra cuando el juego se cierra, así que no sacas nada con editarlo en esa carpeta. Algo totalmente distinto pasaría si modificas el archivo desde dentro del juego, pero estoy suponiendo que no vas a hacer eso.
77
Preguntas y respuestas / Re:Orientacion en ANDROId
Octubre 29, 2015, 05:18:28 AM
No sé si Tovidi se refiere a eso, tal vez lo que quiere saber es si existe una manera de cambiar el orientation lock del aparato desde el juego mismo en vez de desde el menú orientation en Global Game Settings. A mí me encantaría saber una forma de hacerlo  :'(
78
Para eso está precisamente la función draw_text_ext:

draw_text_ext(x, y, string, sep, w);

donde w es el ancho máximo en pixeles que usará GMS antes de insertar un salto de línea al dibujarlo.
79
Preguntas y respuestas / Re:Crear y abrir archivo
Octubre 29, 2015, 02:09:05 AM
Sí, se puede hacer usando la función url_open. Si el archivo se llamara pagina.html y está en los included files, se puede abrir así:

url_open("pagina.html");
80
Cita de: penumbra en Octubre 28, 2015, 05:16:41 AM
Bueno, venía a postear el ejemplo pero ya Guacusio se me adelantó. Buen trabajo, Guacusio.

Gracias, Penumbra. Pero si ya te diste el trabajo de preparar una solución, debieras publicarla de todos modos. Dudo que sean idénticas y siempre es bueno tener en cuenta más de una opinión.
81
Se puede hacer así (en los comentarios puse la explicación de los pasos):

var l,f,n,a,i;
l=ds_list_create();//lista para guardar los nombres de los archivos
f=file_find_first("captura*.png",fa_archive);//busca el primer archivo con la forma "captura*.png"
while f!=""
    {//si existe tal archivo, entonces:
    n=string_replace(f,"captura","");//al nombre del archivo le sacamos la parte "captura"
    n=string_replace(n,".png","");//luego le sacamos la parte ".png"
    if string_length(string_digits(n))=string_length(n)//si el número de dígitos contenido en lo que quedó es igual al número total de caracteres, cumple el requisito (que el * sólo sean dígitos)
        ds_list_add(l,f);//y se agrega a la lista
    f=file_find_next();//a continuación repite el proceso para el siguiente archivo con la forma "captura*.png"
    }
//volcado de la lista a una sola variable para mostrarla en pantalla:
a="";
for(i=0;i<ds_list_size(l);i+=1)
    a+=l[| i]+"#";
show_message(a);
ds_list_destroy(l);


Eso mostrará una lista con los archivos que tienen la forma captura*.png, donde * es un número entero.
82
Aunque nunca he hecho algo parecido, tengo una idea. Necesitas conocer programación básica en php.

El launcher debe leer el login y password ingresado por el usuario y luego enviarlos a la página php mediante la función http_post_string (que equivale a usar el método post en un formulario html). La página php los rescatará usando post y responderá en el evento asíncrono http con un string. Por ejemplo:

Envío de login y password:
log=http_post_string("http://www.servidor.com","login="+login+"&password="+password);
donde login y password son las variables que guardan los strings del login y password

En la página php puedes rescatarlos con el método post:

$login = $_POST['login'];
$password= $_POST['password'];

Recepción de datos en el evento asíncrono http:
if ds_map_find_value(async_load,"id")=log
    {
    var status=ds_map_find_value(async_load,"status");
    if status=0
       var respuesta=ds_map_find_value(async_load,"result");
    }


La variable respuesta contendrá la respuesta de la página php, que puede informar al launcher sobre la validez de las credenciales.
83
Preguntas y respuestas / Re:disparos
Octubre 26, 2015, 12:35:12 AM
Cita de: kostra en Octubre 25, 2015, 11:25:50 PM
he visto en otros temas tuyos que estás usando joysticks, de eso no tengo ni idea, pero supongo que podrás adaptarlo, pondré un ejemplo en teclado:

create:
disparo = false;

step:
if keyboard_check(vk_space) and disparo == false
{
    instance_create(x,y,obj_bala);
    alarm[0] = 0.25*room_speed;
}


alarm0:
disparo = false;

nada más xD, si es que necesitas hacerlo con joystick, cuenta que has de usar el evento que se use cuando MANTIENES el boton, por eso puse keyboard_check y no keyboard_check_pressed.

Suertep!

Faltó la parte donde la variable disparo se hace true:

Evento step:
if keyboard_check(vk_space) and disparo == false
{
    disparo=true;
    instance_create(x,y,obj_bala);
    alarm[0] = 0.25*room_speed;
}


Además, en vez de poner ese código en step yo lo pondría en el evento keyboard, que para eso está:

Evento keyboard-tecla space:
if disparo == false
{
    disparo=true;
    instance_create(x,y,obj_bala);
    alarm[0] = 0.25*room_speed;
}

84
El error que me salta en el compilador es:

In Object obj_internet, in Event WebImageLoadedEvent action number 1 at line 2 : Cannot set a constant to a value

La causa del error es que dentro del árbol de recursos definiste un sprite con el nombre spr_internet, lo que hace que spr_internet sea un índice, un número constante; luego, al tratar de cargar el sprite estás tratando de asignarle a una constante el valor de otra constante que es la que entrega la función sprite add. Lo que tienes que hacer es lo siguiente:

-Elimina el sprite spr_internet del árbol de recursos

-Evento create:
spr_internet=sprite_add("http://benstudios.esy.es/forums/Themes/Connect/images/off.png",1,false,true,1,1);

-Evento asíncrono Image Loaded:
sprite_index=spr_internet;
85
Para confirmarlo, en la ventana de compilación donde aparece el error haz doble click, a ver si abre el objeto, evento y acción que genera el error.
86
Cita de: Benstudios en Octubre 25, 2015, 11:15:41 AM
El evento other es el Image Added.
El código es:

spr_internet=sprite_add("http://benstudios.esy.es/off.png",1,false,true,1,1);

No encuentro ese evento. ¿No será el evento Image Loaded? Y el evento Image Loaded, cuando tiene un error de compilación, lo acusa en el evento WebImageLoadedEvent, no en un evento Other. Verifica cuál es realmente el evento donde se produce el error.

La idea del evento asíncrono Image Loaded es conocer a partir de qué momento la imagen está disponible para usarla. Por lo que dices que haces, se deduce que al momento de cargarse una imagen quieres volver a cargar otra más. Si sólo quieres cargar una imagen, el código de sprite_add no debe estar en ese evento o nunca se va a cargar; tienes que ponerla en otro.
87
Trata de ser más claro. Por "inactividad" presumo que quieres decir salir del juego, ya que no le veo sentido a la frase "poner una surface en inactividad".

Con surface_save puedes guardar la superficie como archivo .png.
Con sprite_add creas un sprite leyendo un archivo de imagen desde el disco.

El código que tienes en el título guardará la superficie surf como archivo con nombre test.png en la save area del juego. La save area tiene una ubicación distinta dependiendo de la plataforma donde se ejecuta el juego. Para Windows7 es:

/Users/<User Name>/AppData/Local/<Game Name>

Una vez guardado, se puede rescatar con sprite_add o background_add:

sprite_add("test.png",imgnumb,removeback,smooth,xorig,yorig);
88
Cita de: Benstudios en Octubre 24, 2015, 10:25:31 PM
Y me sale el siguiente error:
In Object obj_internet, in Event Other event number 60 at line 2 : Cannot set a constant to a value

:'(

El error indica que quieres darle un valor a una constante, lo cual es una acción ilegal. Indica el código que tienes en ese evento tipo Other del objeto obj_internet
89
Tienes que crear un sprite o background a partir de una URL con la función sprite_add o background_add, respectivamente. Por ejemplo, si quieres crear un sprite:

sprite=sprite_add("http://www.servidor.com/imagen.png",imgnumb,removeback,smooth,xorig,yorig);

Esto generará un evento asíncrono image loaded cuando termine de ser descargada.
90
Preguntas y respuestas / Re:Juego de Boxeo
Octubre 24, 2015, 06:11:10 AM
Ahora sí. Tengo las siguientes observaciones:

-Sólo existen instancias de obj_varela y obj_chello en el primer room (Seleccionpersonaje), por lo que carece de sentido verificar en sus eventos left button cuál es el room donde están.
-Deberías usar el evento press left button en vez de left button (el código para pasar al room Seleccionescenario se debe ejecutar una sola vez)
-No hay views activas en ninguno de los 3 rooms, por lo que carece de sentido definir el valor de view_object en los eventos create de obj_varela y obj_chello

El error que estás cometiendo es crear a los boxeadores en el room Seleccionescenario cuando lo que corresponde es crearlos en el room escenario1. Estás guardando en la variable global.player cuál fue el luchador seleccionado (aunque no tiene sentido que verifiques el room en que se está, pues obviamente es Seleccionpersonaje); lee esa variable una vez ya estés en el room escenario1 para crear a los luchadores. No es necesario crear un objeto sólo para eso, puedes hacerlo desde el código de creación del room. Me parece que no tienes claro que cada vez que se pasa de un room a otro las instancias no persistentes son removidas del juego.