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

301
Sí, yo al leer el titulo también me imagine algo como esto. Pero de igual modo también resulto ser algo interesante.

Hice la adaptación del script a gm8 y se ve como algo en extremo lento y horrible ademas de que necesitas especificar el numero de argumentos.

[gml]
//Se tiene que especificar el numero de argumentos...
//ej bin(6, 1, 0, 1, 0, 1, 0)  = 42;
var n;
n=0;
n= n | (argument1 << (argument0-1) );
if argument0 < 2 return (n);
n= n | (argument2 << (argument0-2) );
if argument0 < 3 return (n);
n= n | (argument3 << (argument0-3) );
if argument0 < 4 return (n);
n= n | (argument4 << (argument0-4) );
if argument0 < 5 return (n);
n= n | (argument5 << (argument0-5) );
if argument0 < 6 return (n);
n= n | (argument6 << (argument0-6) );
if argument0 < 7 return (n);
n= n | (argument7 << (argument0-7) );
if argument0 < 8 return (n);
n= n | (argument8 << (argument0-8) );
if argument0 < 9 return (n);
n= n | (argument9 << (argument0-9) );
if argument0 < 10 return (n);
n= n | (argument10 << (argument0-10) );
if argument0 < 11 return (n);
n= n | (argument11 << (argument0-11) );
if argument0 < 12 return (n);
n= n | (argument12 << (argument0-12) );
if argument0 < 13 return (n);
n= n | (argument13 << (argument0-13) );
if argument0 < 14 return (n);
n= n | (argument14 << (argument0-14) );
if argument0 < 15 return (n);
n= n | (argument15 << (argument0-15) );
return(n);
[/gml]

Lo vez! es enorme, quizás lo mejor y más rápido sea limitar el numero de argumentos, por ejemplo a 4:
[gml]
return( (argument0 << 3 ) + (argument1 << 2 ) + (argument2 << 1 ) + argument3 );
//puedes reemplazar el "+" con un "|", pero no se que sea más rápido.
[/gml]
mucho más bonito, pensándolo bien quizás sea mejor así, aunque tienes que reyenar con ceros el resto,
bin(0, 0, 0, 1) está bien pero NO bin(1) ni bin(0, 1).

El script para transformar un numero en decimal a uno en binario y devolverlo como string podria ser.
[gml]
//get_bit(255, 31);
//aunque para 255 basta con 8 bits.
//get_bit(255, 8);
//argument0 numero
//argument1 cuantos bits se checan (no recomiendo usar más de 31(mas el 0 son 32) ).
str="";
for(i=argument1; i>=0; i-=1){
    if ( (argument0 >> i) & 1 ) begin str=str+"1" end;
    else begin str=str+"0" end;
}
return(str);
[/gml]

También hice estas dos para obtener el bit que tiene un numero en la posición indicada.
[gml]//argument0 numero.
//argument1 posicion.
return( (argument0>>argument1) & 1 );[/gml]

y esté para cambiar un bit de un numero en la posicion indicada a 1, quizás sea mejor uno para invertirlo.
[gml]
//argument0 numero;
//argument1 posicion;
return( argument0 | (1 << argument1) );
[/gml]
302
Cita de: ferhand en Febrero 28, 2013, 08:35:46 PM
Cita de: penumbra en Febrero 28, 2013, 10:45:06 AM
Ahora, lo que tu quieres quizás sea usar algo como:
[gml]
var a;
a=bin(0, 0, 1, 1) * bin(0, 1, 0, 0);
//que es igual a 7 * 4 = 28[/gml]


¿Mmm... de dónde sale el 7?

   El makero penumbra tiene razón... ¿Dónde está el siete (7)?  XD 

  Yo veo un tres (3)...  :-[ 

Ah, perdón el sueño no me dejaba ver correctamente  XD quise decir bin(1, 1, 1) (a decir verdad sigo viendo un 3  :P), de hecho tampoco es necesario poner los ceros a la izquierda no se por que los puse.

Sobre lo de los códigos, estoy a punto de morir de sueño si gustas mañana los adapto a gm8, aunque en gm8 seguro que serán mas grandes y feos los códigos.
303
Cita de: ferhand en Febrero 27, 2013, 07:36:30 PM
   Saludos makero brunoxzx:
  No logro encontrar nada en GM para implementarlos y he tenido que utilizar una cadena de texto para eso. Por lo que se vuelve más costoso en cuanto a memoria pues cada "caracter" pesa entre uno y dos megas.
 

1 y 2 megas? no se a que te refieras con megas(mega bytes?) pero cada carácter pesa un byte osea 8 bits osea un numero entre 0 y 255, o al menos eso es en la codificación ascii, creo que en unicode cada carácter es de 2 bytes no estoy seguro de cual use gm.


Cita de: ferhand en Febrero 27, 2013, 07:36:30 PM
   Saludos makero brunoxzx:
   No, no quice decir "buleano", me refería a "binario" esos números que están formados con ceros y unos y la posición de cada dígito influye ne el valor que representan...
 

Uhm, es que en realidad todos los números están en binario al igual que cualquier dato en una computadora lo está.

Por ejemplo: tu computadora ve un diez en decimal como un 1010 (que es 10 en binario), bueno en realidad la computadora le pone un montón de ceros atrás para que se complete el numero de bits que mide la variable, por ejemplo una variable de 16 bits (o 2 bytes) sin signo representa el numero 10 de esté modo 0000 0000 0000 1010. Creo que las variables de gm son de 64 bits.

Bueno ahora para manejar los bits de un numero se usan los operadores a nivel de bits usándolos puedes modificar los bits de un numero. Por ejemplo las funciones de desplazamiento a la derecha(>>)  e izquieda(<<) mueven los bits de un numero un determinado numero de posiciones a la dirección indicada.

(5 << 3) // moverá los bits de 5 en tres posiciones a la izquierda.
//5=0101:  (0101 << 3) = 0101000 = 40.

//ahora lo mismo pero al revez.
(40 >> 3) // moverá los bits de 40 en tres posiciones a la derecha.
//40=0101000:  (0101000 >> 3) = 0000101 = 5.
.

Ahora, lo que tu quieres quizás sea usar algo como:
[gml]
var a;
a=bin(0, 0, 1, 1) * bin(0, 1, 0, 0);
//que es igual a 7 * 4 = 28[/gml]

ok, puedes construir una función para hacerlo. nota es para gm8.1 o superior ya que otras versiones no tienen la maravilla de usar argumentos como arrays lo cual es genial!.
[gml]
//Ejemplo de uso bin(1, 0, 1, 1);
var n;
n=0;
for(i=1; i<=argument_count; i+=1){
     n = n | (argument[argument_count-i] << (i-1));
}
return(n);
[/gml]

ese sería un script, para hacer las conversaciones. No le veo mucha utilidad, pero quizás la tenga. Ademas solo acepta 16 argumentos osea que el numero más grande que puedes hacer es el 65535.

También se puede hacer un script que haga lo contrario, es decir que te devuelva el binario de un numero en decimal. El problema sería como devolver el numero, quizás una lista con ceros y unos o un string. Aunque le veo más utilidad al string por que ese puedes dibujarlo (de hecho no le veo utilidad a una función como está mas que para dibujar el resultado en binario), de esté modo podrías hacer algo como esto.

[gml]
var a;
a=bin(0, 0, 1, 1) * bin(0, 1, 0, 0);
//que es igual a 7 * 4 = 28 = 11100
show_message( bin_get( a ) ); // debería mostrar 11100[/gml]
304
Preguntas y respuestas / Re:no me lee el .ini
Febrero 26, 2013, 07:49:21 PM
El problema debe ser la ubicacion de tu .ini, donde lo tienes?. La solucion más facil a esto es usar los "included files" en gm:studio los han mejorado mucho, aparecen en el arbol de recursos justo debajo de los rooms allí añades tu .ini.
305
Cita de: Gutic en Febrero 23, 2013, 01:58:42 AM
Cita de: brunoxzx en Febrero 22, 2013, 08:03:42 PM
Opino que se ve mejor, aunque ese joystick se ve horrible xD.

Porcierto, hoy quería jugar el juego en otra computadora y pensé "genial no tendré que volver a hacer todo, solo vinculo mi cuenta y ya tendré mi grabación de la otra computadora" y al intentar vincularme me dijo que mi cuenta ya estaba vinculada o algo así y que tenia que eliminar mi anterior vinculación desde la web ):.

El joystick está porque estoy haciendo pruebas con el control en android xD sí es feo, sí.

Lo de la sincronización a partir de la versión siguiente.

Gracias por jugar y comentar, espero que no borrases los datos xD

Un saludo :)
Sí los elimine xD, ¿se borran mis anteriores puntuaciones?.
306
Cita de: Texic en Febrero 22, 2013, 04:14:32 PM
Mh, si, se puede usar y para usarlo dentro de un script podría llegar a traer algún beneficio por el hecho de que los argumentos del script están limitados, pero hay que hacer mucho cálculo para pasar de binario a hexadecimal y viceversa. Además el código se puede llamar con facilidad fuera de un script y ponerle tantos argumentos como sea necesario, después de todo sería una sola línea de código
Nah, en realidad no es tanto calculo, hace tiempo se me ocurrió una manera sencilla. El mayor problema es que solo se permitirían 2 hijos por nodo por así decirlo y bueno los argumentos.

Cita de: ferhand en Febrero 22, 2013, 10:56:28 PM
  Si hay algún tipo de datos binario en GML lo desconozco y solicito me lo muestren para aprender.  :-[ [/color]
EJem todos?¿, quizás quisiste decir boleano.

Cita de: ferhand en Febrero 22, 2013, 10:56:28 PM
  PD:  aún así, si alguien tiene una forma diferente de implementar "árboles" puede colocarla y revivir el tema para todos aprender... :) [/color]
El tema me dio una idea, si logro algo lo posteo aquí.
Edit: ignoren mi idea, no funciono o parece ser algo mas complejo de lo que creí.
307
Cita de: Gutic en Febrero 22, 2013, 06:28:59 PM
Buenos días.

@Daz, si no te gusta no juegues  >:( xD (Broma)

Claro que me lo tomo constructivo, por eso pido opiniones  :) . Estoy al tanto de la dificultad, ya lo avisé. De todas formas desde ya os digo(si no lo he hecho ya) que la versión final todos los niveles los voy a hacer nuevos. Así que no os preocupéis.

Además el juego va a cambiar bastante.

Sobre las puntaciones online lo he pensado también, tengo que pensar qué hacer.

Y sobre el instalador, que tienes toda la razón xD .

Gracias por comentar :) .

Os dejo una nueva imagen de el renovado gráfico:) .



¿Qué os parece? ¿Mejor o peor? xD

Un saludo.
Opino que se ve mejor, aunque ese joystick se ve horrible xD.

Porcierto, hoy quería jugar el juego en otra computadora y pensé "genial no tendré que volver a hacer todo, solo vinculo mi cuenta y ya tendré mi grabación de la otra computadora" y al intentar vincularme me dijo que mi cuenta ya estaba vinculada o algo así y que tenia que eliminar mi anterior vinculación desde la web ):.
308
Wow, me pace un rato jugandolo es divertido aunque en extremo dificil, te sugiero consideres más hacer una mejor curva de dificultad, puedo asegurar que la mayoría de los jugadores no pasan del "campo de entrenamiento" y eso se puede ver en las puntuaciones.

Otra cosa que estaría buena es que se pudieran ver las puntuaciones desde la web (:. Fuera de eso todo me parece bien, en un rato intentare llegar más lejos  :P.
309
@luckylandia007
mmm lo intentaré, lo mejor es la ayuda de alguien con experiencia  ;).

@Creador de juegos GM
Sobre la marca de agua, dudo que en realidad funcione ademas es algo incomoda. Sobre lo de la sangre no es mala idea ponerla en otro enlace aunque podría llegar a ser algo incomodo, de igual modo el juego es algo raro podría no ser políticamente correcto xD. Tengo entendido que el registro google play cuesta 25$ pero es barato comparado con la appstore de apple.

@elviskelley
Se ve buena la pagina, no la conocía quizás tambien publique allí.
Sobre lo de Safecreative muchas gracias la pagina se ve buena, estaré leyendo sobre ella.
Otra opción que tal vez sería simple sería liberar el source y ponerla bajo una licencia como la GPL tengo entendido que de todos modos puedes venderlo.

@pucara
No es mala idea, el problema son los otros miembros de mi equipo, de ser por mi ni se vendía  :P. Pero tuvimos  que llegar a un acuerdo. Es probable que haga una versión html5 gratis.
Lo del registro, no he googleado pero intentaré buscar la mejor opción.

Edit: mi mensaje numero 900 xD.
310
Preguntas y respuestas / Juego en google play consejos.
Febrero 10, 2013, 07:39:15 AM
Hola comunidad!.

Bien estamos por publicar un juego para android y no tenemos mucho tiempo, es un juego que hicimos en el global game jam y como algunos sabrán la temática fue corazón, así que el plan es lanzar el juego antes del 14.

Ok, así que la pregunta va para todos aquel que halla publicado algo en android o que sepa información sobre el tema, básicamente necesitamos tips o consejos sobre por ejemplo el registro del nombre del juego ¿cual es la mejor manera de protegerlo?, ¿que tan conveniente sería vender el juego?, ¿cuanto tiempo se tardan en hacer los tramites?, ¿cuanto se tarda el juego en ser aceptado?,  ¿las restricciones, si el juego incluye sangre, pero solo si la activas en las opciones? o cualquier  otro consejo que puedan dar.
311
Preguntas y respuestas / Re:Guardar id de una instancia
Febrero 10, 2013, 05:05:57 AM
Intenta usar un show_message(), si todo está bien usa el debug mode para revisar el valor de la variable en tiempo real.
id1=0;
if(a=10){id1=instance_create(x,y,obj_b) show_message(id1)}
312
Preguntas y respuestas / Re:Conectar con MySQL
Febrero 09, 2013, 05:13:22 PM
Cita de: Texic en Febrero 09, 2013, 05:42:07 AM
CitarPero yo me puedo descargar un descompilador de gml muy fácilmente y obtener la contraseña en un 2x3 sin ningún problema.
Te tomarías la molestia por un juego de gm?
Yo creo que lo mejor es programar el juego, y si algún idiota se aprovecha de la vulnerabilidad, ahí cambiás el sistema. Ni que tuvieras guardados datos tan importantes en la db
Además hay un antidecompiler para gm8 y funciona de maravilla
Pues YO no me tomaría la melestia, pero el plan es que a quien se la tome le sea más dificíl, sobre lo del antidecompiler tienes razón, lo habia olvidado es probable que funcione aunque no es infalible, seguro que igual la puedes conseguir pero ya sería algo muy complicado, ademas no sé mucho sobre esté tema así que preferiría no discutir.
313
Preguntas y respuestas / Re:Conectar con MySQL
Febrero 08, 2013, 10:57:49 PM
Cita de: knd144 en Febrero 08, 2013, 10:22:40 PM
Cita de: Iros en Febrero 08, 2013, 04:22:58 AM
Digamos que puede caber la posibilidad de que usen un programa de fuerza bruta o un simple editor para obtener algunos datos de tu juego, esos datos pueden ser los datos de la base de datos y CRASH!!!, chau base de datos. Ese es el único problema de vulnerabilidad. Y si mal no recuerdo existía un descompilador para el GM6 así que puede que hayan hecho alguno para el GM8 >.<

Ése problema existe en cualquier ámbito que uses un gestos de Base de Datos (programación Web con PHP, C#, Java, Python, etc); y como en todos debe ser trabajo del administrador de la BD y del programador validar tanto las entradas de las consultas como las salidas para evitar esas vulnerabilidades. Para empezar evitar las inyecciones MySQL. También, en el caso de los programas para PC, se puede llegar a leer las variables que están en memoria así que los datos como el usuario y contraseña de la BD no es bueno en ese caso tenerlas en variables... o bien tenerlos en una forma encriptada... todo ese royo de seguridad informática.
Mmm... no creo que deba ser un motivo de desanimo el que haya una vulnerabilidad. Todos los métodos son vulnerables (guardarlos en txt, .ini...) siempre se pueden leer, aunque estén encriptados se puede usar fuerza bruta, así que sigue con tu proyecto :P
Pero yo me puedo descargar un descompilador de gml muy fácilmente y obtener la contraseña en un 2x3 sin ningún problema.
314
Lo correcto y mas simple sería hacer una variable que te diga cual campo está seleccionado, luego haces que el campo seleccionado valga lo mismo que keyboard_string.

Solo haces eso y haces que cuando se selecciona o se des-selecciona un campo la variable keyboard_string cambie a un string vació, de este modo "keyboard_string="";.
315
Cita de: Klind en Febrero 04, 2013, 10:21:53 PM
Cita de: Texic en Febrero 03, 2013, 10:43:21 PM
En el draw del objeto que va a dibujar eso tenés que poner
[gml]
c=collision_point(mouse_x,mouse_y,objeto,1,1)
if c<>-4
{
if genero="Hombre"
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
if genero="Mujer"
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
}
[/gml]
O en tu caso si usás dos objetos
[gml]
c=collision_point(mouse_x,mouse_y,Hombre_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
c=collision_point(mouse_x,mouse_y,Mujer_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
[/gml]

Texic, puedes por favor explicar el "-4"? Tengo entendido que el collision_point devuelve el id del objeto que colisiona, o un número negativo en caso de que no haya colisión.

Otra cosa, una corrección, las coordenadas del draw_text serían las del "cartel" donde francordoba quiere que aparezca el texto.

Saludos y gracias de antemano por responder mi duda.
-4 es noone, osea ningún objeto o id, aunque para esto creo que también podría funcionar "<0" o instance_exists(), es más cuestión de gusto (creo) bueno creo que instance_exists() sería más lento.