De antemano sé que estoy complicando las cosas y que hay maneras más sencillas de lograrlo, aun así me atrevo a preguntar lo siguiente a los que saben más de GML
Imaginen que leo un valor del tipo cadena desde un ini y lo almaceno en una variable, digamos que al final, la variable se ve así
valor_ini = "pistola" //variable almacenando una cadena leída desde un archivo ini
Ahora imaginen que tengo en CREATE una variable:
pistola = 5
¿Hay alguna manera de hacer que Game Maker interprete la variable valor_ini como si me estuviera refiriendo a la variable pistola? O dicho de otra manera, hacer que la cadena "pistola" la interprete como variable pistola
A lo mejor estoy preguntando aberraciones, pero es una duda que tengo, agradezco que me digan si se puede o no. Gracias
Mi Duda, Quieres Usar Caracteres De Números (Strings) Como Números (Reales)?.
Osea Tratar Esos Strings Como Si Fuesen Números Comunes Y Corrientes ...
(Según Su Conexión De Variables, Pensé Aquello Anterior)
Si Es Eso, Es Posible, Pero Es Gastar Proceso Innecesario.
Amenos Que Solo Sea Para Guardar Y Cargar Datos Para Minimizar Los Errores De Truncamiento (Usar Decimales Por Ejemplo), Pero Si Lo Piensas Un Archivo Es Pura Cadena De Texto, Y La Lectura De La Misma Es Simplemente Como Desees Leerla.
Mi Opinión, Usa Simplemente Las Agilidades Del GML Con El Manejo De Las INI's.
PD: Un Pequeño Spoiler Del Zen De Python
[spoiler]> Simple Es Mejor De Complejo.
> Pero Complejo Es Mejor Que Complicado.
> La Legibilidad Cuenta.
> Los Casos Especiales No Son Tan Especiales Para Romper Las Reglas.[/spoiler]
Saludos
podes usar el metodo "execute_string(Texto);" siendo Texto el valor leido desde el archivo ini. La variable tendria que tener un contenido como este:
Texto = "pistola = 2;";
Pero te recomiendo que a la hora de leer el archivo tomes el dato y se lo añadis el valor directemente el la variable. Por ejemplo:
pistola = file_text_read_real(File);
o sino tenes la opcion de comprobar el 1º caracter aaaalgo asi:
var T;
T=file_text_read_string(File);
switch( string_char_at(T,0) )
{
case "P": pistola = string_digits( T );break;
}
Gracias por sus respuestas!
Cita de: Zela en Agosto 15, 2013, 06:45:15 AM
Mi Duda, Quieres Usar Caracteres De Números (Strings) Como Números (Reales)?.
No de números, de texto :-[. Lo que pasa es que tengo un INI donde guardo los atributos de todos los items recolectables. Los valores de ciertas llaves en ese INI no los tengo como números, sino como palabras, porque son muchos items y muchos atributos, y usar palabras es más intuitivo que usar números y se me facilita editar atributos de esta manera. Al final, en GM, esas palabras tengo que traducirlas a su valor numérico. Sé que en GM es más fácil y directo usar números.
Gracias romon, ahora estoy mas orientado con tu respuesta. Había pensado algo similar a tu segundo método. Si en todas las palabras que tengo no se repite la primera letra, creo que usaré ese.
De nuevo, gracias. ;D