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

16
Al principio del script coloca los argumentos como un comentario con tres barras inclinadas, así:
[gml]
///pp_sprite(argumento1, argumento2, blablabla);
//el código de tu script
[/gml]
17
Pueeds crear un pequeño script algo así:
[gml]
///substring_width(str, pos);
return string_width( string_copy(argument0, 0, argument1) );
[/gml]
Luego ejecutarlo así:
[gml]
str = "Hola mundo";
width = substring_width(str, 6);
[/gml]
Eso guardará en width el tamaño en pixeles de la cadena hasta el caracter 6; depende de la fuente que esté definida para dibujo.
19
Según EL MANUAL, la función json_decode() devuelve un mapa con una única entrada: "default".

Dentro de dicha entrada se almacena toda la información. Si el JSON es un arreglo (lo sabes porque está escrito de la forma [a, b, c, ...]), entonces la función convierte los datos en una lista; y si el JSON es un objeto (lo sabes porque está escrito de la forma {a:b, c:d, ...}), entonces la fución convierte los datos en otro mapa.



En el caso de las consultas SQL, el JSON suele ser algo así:

[
    {
        "nick":"keponem",
        "sc":"255"
    },
    {
        "nick":"olakase",
        "sc":"78"
    },
    {
        "nick":"jejeje",
        "sc":"15"
    },
    {
        "nick":"jejejeee",
        "sc":"0"
    },
    {
        "nick":"tytyty",
        "sc":"0"
    },
    {
        "nick":"Sobako",
        "sc":"0"
    }
]


Como puedes apreciar, se trata de un arreglo "grandote" que contiene un objeto "chiquito" en cada índice, así que la función lo convertiría a algo así:



Por tanto, si quieres recorrer todos los mapas"chiquitos" que están en  la lista "grandota", entonces primero debes acceder al mapa "grandotote":
[gml]
var res = json_decode(result); //obtener mapa grandotote
var dat = res[? "default"]; //Acceder a la llave "default"  del mapa grandotote

//En dat ahora se ha guardado la lista grandota, así que ahora vamos a recorrerla

var nicktable, sctable;
var obj;
for(var i = 0; i < ds_list_size(dat); i++) {
    obj = dat[| i]; //acceder al mapa chiquito de la lista grandota ubicado en la posición i
    //guardar cada propiedad en su respectivo arreglo
    nicktable = obj[? 'nick'];
    sctable = obj[? 'sc'];
}
[/gml]

Todo se resume en leer EL MANUAL, como te dije en Discord.

PD: Debes colocar en el post el ícono de la versión de GM que estás usando.
20
Cita de: Marth en Septiembre 08, 2019, 11:59:37 PM
He encontrado una solución provisional.
Este es el código cuando cargue del fichero el nombre de las unidades:
nombre=string_replace_all(file_text_read_string(global.j)," ","")
Esto elimina de la cadena el espacio (" ") que aparece al principio.
Es una chapuza, pero he hecho unas pocas pruebas y ya no me aparece el error, por lo que con esto se ha solucionado mi problema.
También podrías hacer algo así:
[gml]
nombre = string_delete( file_text_read_string(global.j), 1, 1 );
[/gml]
Para eliminar solamente el primer caracter de la cadena.
21
¿Cómo cargas los datos? De primera mano se me ocurre que al momento de cargar la variable nombre estás trayendo también el espacio que está antes, y que es por eso que se van acumulando por cada guardado.
22
Juegos completos / Re:Geometrix 2
Julio 28, 2019, 11:56:51 PM
Juegos completos: qué es y cómo funciona - Leer antes de postear
Debes utilizar la plantilla correspondiente a esta sección del foro.
24
Te falta comprobar que la respuesta del servidor haya terminado de llegar antes de guardarla en el archivo.
[gml]
if async_load[? 'status'] == 0 { //si el servidor ha respondido
    //bla bla bla
}
[/gml]
25
[gml]
//EVENTO STEP DE UN CONTROLADOR
with (objMobileParent) {
    x -= 2;
}
//Donde todos los objetos que se mueven son hijos de objMobileParent
[/gml]
xd.
26
Estás intentando escribir el valor undefined en un archivo de texto. Muestra el código que usas para poderte ayudar.
27
Preguntas y respuestas / Re:Problema con enumerador
Mayo 27, 2019, 08:06:32 PM
Cita de: Fashion_Trozos en Mayo 27, 2019, 08:01:43 PM
Hola, buenas a todo el mundo. Tengo un problema, quiero usar un enumerador porque estoy siguiendo (otra vez) un tutorial de como hacer una maquina de estados. Me da error en el evento Create.

enum ep{
parado = scr_parado(),
caminando = scr_prota_moviendose()
}

dir = "abajo";
estado = ep.parado;


El error que me da es "error game maker enum assignment must be an integer". No estoy utilizando bien el enumerador? un saludo!
En el error está la misma respuesta: en los enumeradores debes poner específicamente (LITERALMENTE) números enteros.
28
¿Cómo es el código de movimiento del personaje?
29
Eso sucede porque cuando el movimiento es diagonal, las componentes de movimiento vertical y horizontal valen (ambas) 4, que al sumarse dan como resultado un número mayor (4√2).

Para corregir esto, deberías hacer lo siguiente:
[gml]
///EVENTO STEP

//Primero, consigues las componentes del movimiento como lo haces normalmente:
var hmove = keyboard_check(vk_right) - keyboard_check(vk_left);
var vmove = keyboard_check(vk_down)  - keyboard_check(vk_up);

//Segundo, calculas el ángulo que forman ambas componentes entre sí
var angle = point_direction(0, 0, hmove, vmove);

//Tercero, multiplicas el valor de la velocidad por las componentes del ángulo.
var hvel = abs(hmove) * vel * dcos(angle);
var vvel = abs(vmove) * vel * dsin(angle);
//(se multiplica también por "abs(hmove)" para evitar que haya movimiento cuando no se está presionando la tecla)

//Cuarto, mueves el objeto
x += hvel;
y -= vvel;
[/gml]