Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Ashe de Freljord

Páginas: 1 2
1
Preguntas y respuestas / Re:Ejecutar UNA sola vez
« en: Noviembre 12, 2018, 12:55:25 pm »
vecesSalto = vecesSalto+1
if vecesSalto <=1 vspeed =-10
if place_free(x,y+1) vecesSalto = vecesSalto-1     
Los siguientes usuarios dieron las gracias a este tema: dixon2010

2
Preguntas y respuestas / Re:cifrar binarios
« en: Noviembre 10, 2018, 10:56:25 pm »
No porque tenga unos y ceros es necesariamente Álgebra Booleana, es más, aqui no simplificamos circuitos, encriptamos numeros binarios.

Ahora, el algoritmo de NiuWeb basta para ofuscar una cadena binaria como podria ser "10100" a algo como "111001111111001111001" , lo cual es una salida claramente diferente de la entrada.

Aunque hizo un ejemplo muy poco útil, puesto que usó el corrimiento en las mismas posiciones que los digitos. Asi que la entrada es igual a la salida, sin embargo, podrías modificarlo para que la salida fuese distinta de la entrada:

var a = 1;
var b = 0;
var c = 1;
var d = 1;
var e = 1;
var f = 0;

var num = (a<<8) | (b<<7) | (c<<9) | (d<<4) | (e<<3) | f;
Para la entrada : 101110 (64 en decimal, si se quiere)
la salida: 792 (1100011000, en binario, si se quiere).

El algoritmo cifra la entrada, claramente.


 
Si no es eso, entonces?
Los siguientes usuarios dieron las gracias a este tema: Yuzo

3
Preguntas y respuestas / Re:cifrar binarios
« en: Noviembre 09, 2018, 05:02:16 pm »
Ok Ya creo que entendi por cierto en el ejemplo querias usar creo que 10+17 ya que 11+17 = 28  :-[

No es una suma bit a bit, es una comparacion con el OR logico, bit a bit.

El cifrado de NiuWeb solo usa binarios, mi ejemplo pasa de decimales a binario. En ese caso, el efecto que tiene es simplemente ir desplazando el bit, de manera que da la impresion de que "se va elevando al cuadrado".

El cifrado en realidad tiene como objetivo hacer ilegible los datos originales.
Supongamos que Kostra guarda en un archivo puro binario:
000011110001100

Esos datos se procesan segun un algoritmo usando los operadores ya explicados y obtiene
1111

Y ya está.
Ahora si quiere hacer otro cifrado, lo pasa a decimal, lo que equivaldria (1111) al numero 15
Entonces cuando algun curioso vaya  a ver el archivo INI lo abrirá y verá simplemente:

15

Que a usos practicos no tiene. Hay que descrifrarlo, haciendo el proceso inverso, para luego interpretarlo dentro del juego.

Respondiendo a la pregunta:

"Pero sigo sin entender el cifrado, quiere decir que 46 caracteres se colocaran como cifrado?"
No, 46 es el resultado de cifrar el contenido del archivo.

Los siguientes usuarios dieron las gracias a este tema: Yuzo

4
Preguntas y respuestas / Re:cifrar binarios
« en: Noviembre 09, 2018, 03:03:18 am »
Te dejo unas imagenes que hice explicando como se opera con el bitwise or "|" y shift left "<<"
El resto del codigo de Niuweb se deduce solo.


Los siguientes usuarios dieron las gracias a este tema: Yuzo

5
Preguntas y respuestas / Re:Duda sobre image_index
« en: Noviembre 04, 2018, 11:33:09 pm »
Puedes implementarlo usando listas, e imitar el comportamiento de una baraja de cartas.

Inicialmente crearías una lista con los numeros del 0 al 9 representando las subimagenes.
Luego crearías 1 carta, leerías el valor que esta al inicio y lo descartarías. De esta menera te asegurarías de que no se vuelva a repetir.
Luego repites el proceso para los 2 objetos siguientes.


adjunto un ejemplo en base a lo anterior, simula una baraja.
Los siguientes usuarios dieron las gracias a este tema: kaliman777, Yuzo

6
Puedes usar la funcion choose() para elegir entre esos tres valores. Es decir, entre las constantes de colores:

choose(c_red, c_lime, c_blue)

Luego la guardarías en una variable para utilizarla en el evento draw:

color = choose(c_red, c_lime, c_blue)

y para que cambie constantemente, podrías colocarlo en un evento alarm:

EV_ALARM

color = choose(c_red, c_lime, c_blue)
alarm[0] = 20


EV_DRAW

draw_set_color(color)
draw_text(0, 0, "TABLA");




Te dejo un ejemplo para que lo analices.
Los siguientes usuarios dieron las gracias a este tema: Yuzo, HolaSoyAlpha

7
Preguntas y respuestas / Re:Mostrar decimales como una coma
« en: Noviembre 02, 2018, 06:35:33 pm »
Usa string_replace antes de dibujar la cadena:

EJEMPLO:

EV_CREATE
f3 = -23.14


EV_DRAW
var cad3 = string_replace( string(f3), ".", ",");
draw_text(0, 0, cad3);
Los siguientes usuarios dieron las gracias a este tema: Marth

8
Buenos scripts.

En el decodificador me parece que sería más optimo operar 10^N que hacer el ciclo N veces. Al menos las veces donde la seguidilla es de ceros.

Edit: Estuve pasando el codigo a C++ solo para practicar para la universidad XD
Y me dí cuenta que el código alarga la cadena para coincidencias de 2 y 3 caracteres, mientras que con 4 simplemente no hay optimizacion.

Ej:
a003315588800
13
a0(2)3(2)15(2)8(3)0(2)
22

Creo que sería bueno tener en cuenta esos casos en particular. 
Los siguientes usuarios dieron las gracias a este tema: Goganpis

9
Con random pocas veces vas a lograr cubrir todo el sprite, puesto que es aleatorio, es muy probable que se acumule de un lado y deje vacio el resto.

Tendrías que idearte una manera de que la distribucion fuese un poco mas uniforme. Hay varias maneras, pero es super tedioso.

Lo que querés hacer, de recorrer el sprite entero se puede hacer con un ciclo dentro de otro, pero como dije anteriormente el costo es multiplicativo m x n.
20 de ancho por 20 de alto = 400 ciclos para un sprite chico. uno de 90 x 90, 8100 ciclos lo cual es una barbaridad.

Qué estas intentando hacer concretamente?
Los siguientes usuarios dieron las gracias a este tema: Yuzo

10
Propuestas y soporte / Re:Propuesta mas que pregunta!
« en: Noviembre 01, 2018, 04:23:11 pm »
Está buena la idea.

El problema es que la gente necesita dinero y especular solo por un sueño, como que no convence a nadie.

Generalmente este tipo de propuesta fracasa porque la emocion se diluye a las 2 semanas y comienzan las excusas, es que el trabajo, es que los estudios, es que se me quemo la PC (super ultra mega frecuente en cualquier ambito).

A lo sumo podés postear un trabajo a medio terminar, que sea prometedor a ver si conseguis colaboradores.  Pero hacer un proyecto de cero... mmm, como que la gente prefiere invertir en su propio proyecto porque sabe que va a cumplir con el plazo de entrega.
Los siguientes usuarios dieron las gracias a este tema: dixon2010, Goganpis

11
A efectos practicos yo creo que no, suponiendo que uno tuviera un sprite de 20 x 20, si, super pequeño, un ciclo debería iterar 20 veces en horizontal por cada ciclo en vertical. O mejor dicho unas 400 veces
Lo que es mejor que se repita solo 50 veces con un repeat

a lo mejor me equivoco, pero esa es mi impresion.
Los siguientes usuarios dieron las gracias a este tema: Yuzo, Zanget

12
intenta utilizar la funcion"ranzomize()" dentro del repeat a ver que sucede.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

13
Preguntas y respuestas / Re:inventario que se mueve
« en: Octubre 29, 2018, 02:00:54 pm »
Podrías usar el evento "draw GUI" para no tener que hacer calculos extras y que se muestre siempre donde va la view.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

14
Preguntas y respuestas / Re:Llamar estado ataque desde GML
« en: Septiembre 12, 2018, 06:38:04 pm »
El problema es que estas usando with, deberias usar if.

Para comparar cosas se hace con if:


If (jugador_1.ataque == 1){
 instance_create(x, y, obj_muerte_enemigo);
instance_destroy(); 

}

Nota que si hay varias acciones a realizar deben estar dentro de { y de }
Los siguientes usuarios dieron las gracias a este tema: Yuzo

15
Preguntas y respuestas / Re:Generar varios objetos cada 32 pixel
« en: Noviembre 23, 2017, 05:27:25 pm »
Cambia el repeat por un for y multiplica la coordenada y:

For(i=0; i<50;i++)
        Instance_create(x, y-(32*i), bloque)
Los siguientes usuarios dieron las gracias a este tema: matiascarpello

Páginas: 1 2