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

121
Preguntas y respuestas / Re:cifrar binarios
Noviembre 12, 2018, 05:47:25 PM
No veo nada erróneo. De hecho, hice la prueba con 60 unos y ceros también, a ver si con tantos el script fallaba:
[gml]
//PRUEBA DEL SCRIPT

//Datos a cifrar
var datos = array(
    0, 0, 1, 1,
    0, 0, 0, 1,
    1, 0, 1, 1,
    0, 1, 1, 1,
    0, 1, 0, 0,
    0, 1, 1, 1,
    0, 1, 1, 1,
    1, 1, 0, 0,
    0, 0, 0, 1,
    1, 1, 1, 1,
    0, 1, 1, 0,
    1, 0, 0, 1,
    1, 0, 1, 0,
    1, 0, 0, 1,
    1, 0, 1, 1
);

//Crear cifrado
var cifra = cifrar_binarios(datos);

//Mostrar en pantalla
show_debug_message( cifra );

//Guardar y cargar en un INI
ini_open('datos.ini');
ini_write_string('datos', 'cifrado', cifra);
ini_close();

ini_open('datos.ini');
var cifra2 = ini_read_string('datos', 'cifrado', '');
ini_close();

//Descifrar contenido cifrado
var descifra = descifrar_binarios( cifra2, array_length_1d(datos) );

//Mostrar en pantalla
show_debug_message( descifra );
if array_equals(datos, descifra) {
    show_debug_message( '¡Tienen los mismos valores!' );
}
[/gml]
El resultado en la consola es éste:
dblhehhmbpgjkjl
{ { 0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1 },  }
¡Tienen los mismos valores!

O sea, que la cantidad de datos no daña el proceso de cifrado, incluso si se extraen de un archivo ini.


Como primera depuración, podrías omitir la parte de guardar la cadena en el ini y sólo cifrar y descifrar en el mismo código.

Si te funciona bien (debería, si no has modificado los scripts), la segunda prueba que puedes hacer es contar el número de caracteres de la cadena que se guarda en el ini. Si son sesenta dígitos a guardar, la cadena cifrada debería tener exactamente 15 caracteres. Si no tiene esos caracteres, el error está en el script que guarda el ini. Mira, así se ve el archivo que se guardó con el código de arriba:


Ahora bien,
Cita de: kostra en Noviembre 12, 2018, 04:32:47 PM
aqui lo que no encaja, me devuelve unos y ceros, pero me devuelve pocos y no tienen nada que ver con los 60
¿Cuántos unos y ceros te devuelve?
Revisa que la cadena que entra y sale del ini tenga únicamente letras minúsculas entre la a y la p. Cualquier espacio u otro caracter va a dañar los datos.

Cita de: kostra en Noviembre 12, 2018, 04:32:47 PM
ademas, necesito una array aunque supongo que esa parte ya se buscarme la vida con las funciones string xd
El script descifrar_binario() ya te devuelve un arreglo con los unos y ceros descifrados.

También ayudaría que mostraras el arreglo original (resp), la cadena que se cifra, la cadena que se guarda en el INI y la cadena que se extrae del mismo (y, sólo por si acaso, los scripts que usas para guardar y cargar xdddd).
122
No, no es automático pero puedes usar una relación de aspecto 16:9 que es bastante común.

http://screensiz.es/phone

Si la relación de aspecto de tu juego y el dispositivo son diferentes, se verán unas líneas negras en los bordes para rellenar el espacio.
124
Preguntas y respuestas / Re:cifrar binarios
Noviembre 11, 2018, 06:22:12 PM
Equis de xd.

A veeer...

[spoiler=Primero que todo...]
Cita de: Goganpis en Noviembre 03, 2018, 07:28:08 PM
Igual sigo sin entender, ni se como funciona ese corredor porque lo acabo de probar y es como potenciar un numero por x.
y el operador | no se como funciona asi que no entendi pero igual esta bien gracias por explicarme
Sí, básicamente la operación es la misma. Recordemos que en binario, cada numerito a la izquierda vale el doble que el anterior, lo que significa que mover todos esos numeritos una "casilla" a la izquierda es igual a multiplicar todo el número por 2.

O sea, que en resumen:
[gml]
(  a << n  ) == ( a * power(2 ,n) )
[/gml]
Sólo que los operadores a nivel de bits tienen, digamos que, su función específica y uno puede entender qué está intentando hacer el código.
[/spoiler]

Y ahora sí, dejo adjunto un ejemplo donde se aplica la idea que di inicialmente de una forma un tanto más compleja y funcional. El concepto es simple: Se ingresa un arreglo lleno de unos y ceros, y el primer script devuelve un texto cifrado. Luego, ese texto se ingresa en el segundo script y éste se encarga de regresar nuevamente el arreglo original.

El funcionamiento de todos los códigos está en comentarios dentro del mismo editable, ojo que también hay código en el Creation Code de la habitación.

EDIT: Pero ojo, que este "cifrado" no es ni de cerca algo seguro o que pueda proteger la información; si se conoce el algoritmo es muy fácil saber qué había originalmente. El objetivo es en realidad "compactar" los datos binarios en un solo mensaje que se pueda cifrar (esta vez sí con un algoritmo especializado en seguridad). Por eso el enlace que compartí en mi primer comentario, aunque seguramente hayan otras alternativas más seguras y simples.

(Cualquier error díganlo faasst v:)
125
Buenas.
Hace ya rato que no me pasaba por aquí, y he vuelto simplemente para hacer públicos algunos proyectos incompletos con funcionalidades interesantes que he hecho a lo largo del año.

No son muchos, ni los tengo bien documentados. Hablando del código en sí, digamos que están decentemente organizados y entendibles, pero no tengo escrita ninguna guía que explique detalladamente su funcionamiento, ni tengo planeado hacerla.

No los voy a subir de una vez todos, estoy arreglando un par de cosas y los iré subiendo de a poco en este mismo post.

Sin nada más que decir, aquí van:

1. Caja con contenido deslizable.
El elemento de interfaz ideal para dispositivos móviles. Se trata de un contenedor al que le puedes adjuntar cualquier tipo o cantidad de objetos (con ciertas características) y arrastrar con el cursor (o propiamente dicho, el dedo) consiguiendo el famoso efecto de deslizamiento con desaceleración.

deslizables.gmz

[spoiler=NOTA]
Ese proyecto tiene otras funcionalides extra, como adaptabilidad a la pantalla (para reducir el coste de procesamiento) y un sistema de "click por capas", para evitar que se seleccione un objeto si tiene encima a otro, pero esas cosas las arreglaré un poco mejor y las subiré en otros archivos después.[/spoiler]


1. Plataformero híper-simple.
Pues eso, un sistema "en blanco" de colisiones y saltos de estos típicos en plataformeros. Todas las propiedades del sistema son configurables (gravedad, velocidades, teclas de control e incluso la cantidad de saltos que se pueden hacer sin tocar el suelo). Viene por defecto configurado para un "quíntuple salto" xd, pero se puede cambiar v:

Plataformero.gmz

Ya veré cuándo continúo subiendo.
Saludos.

(si algún moderador ve que este post iría mejor en otra parte, agradecería lo moviera).
126
Preguntas y respuestas / Re:cifrar binarios
Noviembre 03, 2018, 02:25:20 AM
Usa operaciones a nivel de bits para convertir esos 1 y 0 en un número (o unos números) decimal, que después sí puedes cifrar de alguna manera.
[gml]
//Un montón de variables con 1 y 0
var a = 1;
var b = 0;
var c = 1;
var d = 1;
var e = 1;
var f = 0;

var num = (a<<5) | (b<<4) | (c<<3) | (d<<2) | (e<<1) | f;
//num vale 46, que es 101110 en binario.
[/gml]
Y ya luego cifra ese número como gustes. De hecho, hace poco hice este sistema simple en JS para cifrar texto y números, no debería ser muy complicado pasarlo a GML:
https://gist.github.com/NiuWeb/d9dd13de3518b287e537d4c6b320c607
127
¿y si usas una sola lista que contenga arreglos en donde esté la información? Sería una forma de mantenerlos relacionados sin importar cómo organices la estructura.
128
Preguntas y respuestas / Re:Ayudaaaa
Abril 06, 2018, 06:18:49 AM
129
Preguntas y respuestas / Re:Ayuda al disparar
Abril 05, 2018, 07:32:24 AM
El punto y coma al finalizar la condición del ciclo es lo que causa el error.
130
Preguntas y respuestas / Re:No puedo poner mi icono
Marzo 31, 2018, 01:45:45 AM
Paint no permite convertir una imagen a ícono, es mejor que utilices algún conversor especializado, como onlineicoconverter.com o icoconverter.com
131
Puedes programar el sistema en algún lenguaje de servidor (PHP, C#, Node, etc.) y manejarlo con las funciones asíncronas de GMS.
132
Dos posibles razones:

La fuente que estás usando no posee caracteres especiales. Intenta probar con otra tipografía para salir de dudas.

O bien, hay problemas con la codificación del archivo que puedan estar dañando el texto. Intenta cifrar de alguna forma el texto (puedes usar base64) para no tener que añadir directamente los acentos
133
Mira que en el segundo ciclo usas una variable j, mientrsa que -dentro de ese mismo- revisas una variable i.

PD: ¿Por qué usas GML para esto? xDDD, con lo fácil que sería programarlo en Python, o JS :v.
134
Preguntas y respuestas / Re:Optimizar código (strings)
Febrero 19, 2018, 09:05:26 PM
[gml]
sprite_index = asset_get_index("spr_refresh" + string(piece_level));
[/gml]
135
sprite_get_width(sprite);