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

1
Gracias por responder, desconocia la existencia de esa funcion, me ahorraste bastante codigo :)
2
Preguntas y respuestas / Problema con evento de Mouse
Febrero 16, 2016, 07:49:50 PM
Hola,

Les hago una consulta, tengo un objecto, supongamos un boton que dice continuar, al hacerle click con el mouse, este desaparece y aparece en su posicion un nuevo boton que dice mismo continuar u otra cosa, no viene al caso. La cuestion es que al hacerle clic al primero, GM lo procesa tan rapido que automaticamente toma el clic el segundo boton que apareceria luego. Hay alguna forma eficiente de evitar esto?

Gracias
3
Hola,

Gracias por la ayuda, ya lo resolvi con un array, pero igual me habia quedado la duda de si se podia hacer lo que les preguntaba, porque recordaba haber leido un libro de C++ y en una situacion similar habia una forma no muy complicada de hacerlo recuerdo, pero como lo lei hace años y el C++ nunca lo termine usando en nada, ya no recuerdo bien.

Saludos!
4
Hola,

Gracias por responder pero no es eso, necesito que la variable rival tenga el valor de la variable rival0, ejecutar un script con ese valor en rival, luego rival el valor de la variable rival1, ejecutar de nuevo el script y asi 78 veces. Pero me queda el string "rival0" y no el valor de rival0 que es lo que busco, se podra hacer eso?

Saludos
5
Hola,

Se me dio una situacion en la cual podria ahorrar cientos de lineas de codigo por lo que veo, o eso creo.

Tengo una serie de variables por ejemplo asi:

rival0 = 80;
rival1 = 34;

Y trate de hacer algo asi:

for (i = 0; i < 78; i++)
    {rival = "rival" + string(i);
    script_execute(rivales);}


O sea que el valor de la variable rival termine siendo el valor de la variable rival00, pero me aparece un error de ejecucion y estoy casi seguro es que porque en lugar de aplicarle el valor de rival0, le deja el string "rival0" a la variable rival.

Hay forma de que le deje el valor y no el string?

Gracias!
6
Preguntas y respuestas / Re:Ordenar arrays
Diciembre 01, 2015, 11:55:52 PM
Queria agradecer por la recomendacion de los grid, no lo estaba teniendo en cuenta en el GML y me soluciono varias cosas de paso  ;)
7
Preguntas y respuestas / Re:Ordenar arrays
Diciembre 01, 2015, 07:32:41 PM
Hola,

Gracias por la ayuda, no tenia presente lo de los grid, voy a ver como se manejan.

Saludos!
8
Preguntas y respuestas / Re:Ordenar arrays
Diciembre 01, 2015, 04:05:17 AM
Hola,

Me exprese mal, me referia a que cada jugador lo tengo definido en una variable que es un array.

LigaJ1[0] = nombre
LigaJ1[1] = edad;
etc.

Mi idea es que lo siguiente:

LigaJ1[7] = 4;
LigaJ2[7] = 6;
LigaJ3[7] = 3;
LigaJ4[7] = 8;
LigaJ5[7] = 9;
LigaJ6[7] = 5;
LigaJ1[6] = 1;
LigaJ2[6] = 2;
LigaJ3[6] = 1;
LigaJ4[6] = 2;
LigaJ5[6] = 1;
LigaJ6[6] = 2;

Quede ordenado de la siguiente manera al mostrarlo:

Tabla 1:
Posiciones:
1-LigaJ5 - 9 puntos
2-LigaJ1 - 4 puntos
3-LigaJ3 - 3 puntos

Tabla 2:
Posiciones:
1-LigaJ4 - 8 puntos
2-LigaJ2 - 6 puntos
3-LigaJ6 - 5 puntos

Tanto los puntajes como la pertenencia a la tabla puede variar, como podria hacer en GML que los ordene con esa logica?

Gracias!
9
Preguntas y respuestas / Ordenar arrays
Diciembre 01, 2015, 03:39:37 AM
Hola,

Les hago una consulta, estoy haciendo un juego donde tengo varias variables con arrays que son Jugadores que elijo al azar.
De los 40 que elijo al azar, los reparto en 5 tablas que seria cada una, una division de una liga, 1ra, 2da, 3ra, 4ta y 5ta.
Cada jugador que es una variable con arrays, tienen entre varios valores, 2 en particular, uno con el puntaje que mostraria en la tabla y otro valor que contiene a que liga pertenece de las 5.
Creo que es con Ds_lists que se hace, queria ordenarlos segun el puntaje y la tabla a la que corresponde.

Por ejemplo:

LigaJ1[7] = 10;
LigaJ2[7] = 7;
LigaJ3[7] = 3;
LigaJ4[7] = 6;
LigaJ5[7] = 9;
LigaJ6[7] = 5;
LigaJ1[6] = 1;
LigaJ2[6] = 1;
LigaJ3[6] = 1;
LigaJ4[6] = 2;
LigaJ5[6] = 2;
LigaJ6[6] = 2;

El valor [7] contiene el puntaje para ser ordenado de mayor a menor, y el valor [6] a que division/tabla pertenece, alguien tiene idea de como hacerlo?

Gracias!
10
Hola,

Estoy haciendo un simple juego en formato portrait para Android usando Game Maker Studio. Quiero ponerle un banner de admob centrado abajo. Hice algunas pruebas y el banner aparece bien en esa posicion. El problema comienza cuando la pantalla cambia el tamaño segun el telefono. Eso lo hace bien el Game Maker, pero necesito especificar un objeto que tenga siempre 50 pixeles de alto, mas alla del cambio de tamaño segun el dispositivo Android. Y a su vez otro objeto que aparezca fijo siempre a 50 pixeles de distancia de abajo de la pantalla para evitar que este objeto no aparezca debajo del banner. Saben como puedo hacer esto en GML?

Gracias!
11
Preguntas y respuestas / Re:Resolucion Android
Abril 03, 2015, 05:39:29 PM
Hola,

Despues de mucho machacar, encontre esta solucion, esta pensada para modo portrait:


escalar = 1;

if (os_type = os_windows)
    {pantalla = 5;
    room_goto (MenuPrincipal_600x1024);
    exit;}

// Busca la mejor resolucion posible   
   
if (os_type != os_windows)
    {var device_ancho = display_get_width();
    var device_alto = display_get_height();   
    var aspecto = device_ancho / device_alto;
    var prueba;     
   
// Primer Intento   

    if (device_ancho = 240 && device_alto = 320)
        {pantalla = 1;}
    if (device_ancho = 320 && device_alto = 480)
        {pantalla = 2;}
    if (device_ancho = 480 && device_alto = 800)
        {pantalla = 3;}       
    if (device_ancho = 480 && device_alto = 854)
        {pantalla = 4;}       
    if (device_ancho = 600 && device_alto = 1024)
        {pantalla = 5;}       
    if (device_ancho = 640 && device_alto = 960)
        {pantalla = 6;}       
    if (device_ancho = 640 && device_alto = 1136)
        {pantalla = 7;}
    if (device_ancho = 768 && device_alto = 1024)
        {pantalla = 8;}                 
    if (device_ancho = 800 && device_alto = 1280)
        {pantalla = 9;}       
    if (device_ancho = 320 && device_alto = 240)
        {pantalla = 1;}
    if (device_ancho = 480 && device_alto = 320)
        {pantalla = 2;}
    if (device_ancho = 800 && device_alto = 480)
        {pantalla = 3;}       
    if (device_ancho = 854 && device_alto = 480)
        {pantalla = 4;}       
    if (device_ancho = 1024 && device_alto = 600)
        {pantalla = 5;}       
    if (device_ancho = 960 && device_alto = 640)
        {pantalla = 6;}       
    if (device_ancho = 1136 && device_alto = 640)
        {pantalla = 7;}
    if (device_ancho = 1024 && device_alto = 768)
        {pantalla = 8;}                 
    if (device_ancho = 1280 && device_alto = 800)
        {pantalla = 9;}       

    if (pantalla = 1)
        {room_goto (MenuPrincipal_240x320);
        exit;}
    if (pantalla = 2)
        {room_goto (MenuPrincipal_320x480);         
        exit;}
    if (pantalla = 3)
        {room_goto (MenuPrincipal_480x800); 
        exit;}       
    if (pantalla = 4)
        {room_goto (MenuPrincipal_480x854);   
        exit;}       
    if (pantalla = 5)
        {room_goto (MenuPrincipal_600x1024);   
        exit;}       
    if (pantalla = 6)
        {room_goto (MenuPrincipal_640x960);   
        exit;}                                           
    if (pantalla = 7)
        {room_goto (MenuPrincipal_640x1136); 
        exit;}       
    if (pantalla = 8)
        {room_goto (MenuPrincipal_768x1024);                 
        exit;}
    if (pantalla = 9)
        {room_goto (MenuPrincipal_800x1280);               
        exit;}

// Segundo Intento         

    prueba = 480 / 800;
    if (aspecto == prueba)
        {pantalla = 3;}
       
    prueba = 800 / 480;
    if (aspecto == prueba)
        {pantalla = 3;}
       
    prueba = 480 / 854;
    if (aspecto == prueba)
        {pantalla = 4;}               

    prueba = 854 / 480;
    if (aspecto == prueba)
        {pantalla = 4;}               
                     
    prueba = 600 / 1024;
    if (aspecto == prueba)
        {pantalla = 5;}
       
    prueba = 1024 / 600;
    if (aspecto == prueba)
        {pantalla = 5;}             
                               
    prueba = 640 / 1136;
    if (aspecto == prueba)
        {pantalla = 7;}
       
    prueba = 1136 / 640;
    if (aspecto == prueba)
        {pantalla = 7;}                         

    prueba = 800 / 1280;
    if (aspecto == prueba)
        {pantalla = 9;}                                         

    prueba = 1280 / 800;
    if (aspecto == prueba)
        {pantalla = 9;}
       
    if (pantalla = 1)
        {room_goto (MenuPrincipal_240x320);
        exit;}
    if (pantalla = 2)
        {room_goto (MenuPrincipal_320x480);         
        exit;}
    if (pantalla = 3)
        {room_goto (MenuPrincipal_480x800); 
        exit;}       
    if (pantalla = 4)
        {room_goto (MenuPrincipal_480x854);   
        exit;}       
    if (pantalla = 5)
        {room_goto (MenuPrincipal_600x1024);   
        exit;}       
    if (pantalla = 6)
        {room_goto (MenuPrincipal_640x960);   
        exit;}                                           
    if (pantalla = 7)
        {room_goto (MenuPrincipal_640x1136); 
        exit;}       
    if (pantalla = 8)
        {room_goto (MenuPrincipal_768x1024);                 
        exit;}
    if (pantalla = 9)
        {room_goto (MenuPrincipal_800x1280);               
        exit;}

// Tercer Intento
                   
    if (ancho = 240)
        {pantalla = 1;}
    if (ancho = 320)
        {pantalla = 2;}       
    if (ancho = 480)
        {pantalla = 3;}       
    if (ancho = 600)
        {pantalla = 5;}
    if (ancho = 640)
        {pantalla = 6;}
    if (ancho = 768)
        {pantalla = 8;}
    if (ancho = 800)
        {pantalla = 9;}                               

    if (pantalla = 1)
        {room_goto (MenuPrincipal_240x320);
        exit;}
    if (pantalla = 2)
        {room_goto (MenuPrincipal_320x480);         
        exit;}
    if (pantalla = 3)
        {room_goto (MenuPrincipal_480x800); 
        exit;}       
    if (pantalla = 4)
        {room_goto (MenuPrincipal_480x854);   
        exit;}       
    if (pantalla = 5)
        {room_goto (MenuPrincipal_600x1024);   
        exit;}       
    if (pantalla = 6)
        {room_goto (MenuPrincipal_640x960);   
        exit;}                                           
    if (pantalla = 7)
        {room_goto (MenuPrincipal_640x1136); 
        exit;}       
    if (pantalla = 8)
        {room_goto (MenuPrincipal_768x1024);                 
        exit;}
    if (pantalla = 9)
        {room_goto (MenuPrincipal_800x1280);               
        exit;}

// Cuarto Intento
               
    if (ancho >= 240 && ancho <= 319)
        {pantalla = 1;}
    if (ancho >= 320 && ancho <= 479)
        {pantalla = 2;}       
    if (ancho >= 480 && ancho <= 599)
        {pantalla = 3;}       
    if (ancho >= 600 && ancho <= 639)
        {pantalla = 5;}
    if (ancho >= 640 && ancho <= 767)
        {pantalla = 6;}
    if (ancho >= 768 && ancho <= 799)
        {pantalla = 8;}
    if (ancho >= 800)
        {pantalla = 9;}

    if (pantalla = 1)
        {room_goto (MenuPrincipal_240x320);
        exit;}
    if (pantalla = 2)
        {room_goto (MenuPrincipal_320x480);         
        exit;}
    if (pantalla = 3)
        {room_goto (MenuPrincipal_480x800); 
        exit;}       
    if (pantalla = 4)
        {room_goto (MenuPrincipal_480x854);   
        exit;}       
    if (pantalla = 5)
        {room_goto (MenuPrincipal_600x1024);   
        exit;}       
    if (pantalla = 6)
        {room_goto (MenuPrincipal_640x960);   
        exit;}                                           
    if (pantalla = 7)
        {room_goto (MenuPrincipal_640x1136); 
        exit;}       
    if (pantalla = 8)
        {room_goto (MenuPrincipal_768x1024);                 
        exit;}
    if (pantalla = 9)
        {room_goto (MenuPrincipal_800x1280);               
        exit;}       
       
// No encontro nada, asigna un default

    pantalla = 6;
    room_goto (MenuPrincipal_640x960);}


Luego al iniciar el room al que fue, ejecuta esto:

if (escalar = 1)
    {var device_ancho = display_get_width();
    var device_alto = display_get_height();
    surface_resize(application_surface, device_ancho, device_alto);
    escalar = 0;}


Y luego dentro del juego, ya sabe con la variable pantalla, a que room ir.
Lo molesto es hacer los diferentes rooms (se duplican y varian un poco las cosas) y voy a tener que hacer 3 versiones de los sprites y backgrounds, segun el room aplicar una u otra.

No se si es muy ortodoxo pero lo probe en 3 telefonos y tabletas diferentes y funciona, los aspects ratio existentes los encontre aca y tome esa referencia http://v-play.net/doc/vplay-different-screen-sizes/

Si alguien sabe como mejorarlo seria buenisimo, sino tal vez le sirva a alguien que este con el mismo problema con las resoluciones.

Saludos!
12
Preguntas y respuestas / Duda sprite u objecto
Abril 02, 2015, 10:50:12 PM
Hola,

Me surgio una duda en base a que es mas optimo hacer, en base a la performance final del juego en un telefono por ejemplo (Android)
Vine creando objetos y asignandoles un sprite y usando en GML instance_create. En algunos casos simplemente para mostrar un sprite.
Viendo en GML me di cuenta que puedo usar en esos casos draw_sprite en el evento Draw y logro lo mismo.
Mi duda es cual es mas conveniente usar, porque lei en el manual de GML que advierte que el evento draw puede hacer uso intensivo de recursos.
Me conviene dejar los objetos como hice hasta ahora o pasarlos a un evento Draw y usar draw_sprite?

Gracias!
13
Preguntas y respuestas / Re:Resolucion Android
Abril 02, 2015, 10:44:17 PM
Hola, si, lo estuve mirando, pero como involucra varias cuestiones como segun que tableta, telefono, etc, los aspect ratios, quizas excede un poco a la mera creacion de un juego, por eso consultaba, por ahora creo que voy a crear varios rooms para adaptarlo mejor segun la resolucion.

Gracias!
14
Preguntas y respuestas / Re:Resolucion Android
Abril 02, 2015, 01:56:12 PM
Hola, estuve mirando el tema y todavia no logre resultados satisfactorios, alguien tendra un mini ejemplo de codigo de como lo resolvio en su juego, no digo que publiquen el codigo fuente de un juego, simplemente a modo de ejemplo la parte de como maneja la resolucion con los views en GML.

Gracias!
15
Preguntas y respuestas / Re:Resolucion Android
Marzo 31, 2015, 08:29:38 PM
Hola,

Si, me imagine que tenia que hacer un room pensado para una pantalla mas pequeña, modificando incluso los sprites para ese room mas pequeño. Mi unica duda es como hacer en Game Maker que se de cuenta de que room es mas conveniente usar, se que tiene que ser con GML, pregunte por si alguien ya habia resuelto ese tema. Ya lo tengo bastante avanzado al juego, y practicamente todo en GML, pero esa parte de la resolucion para resolverlo en GML se me hace demasiado tecnica e incluso me termina siendo un poco aburrida, por eso consultaba.

Gracias!