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.


Temas - Johann

Páginas: [1] 2 3
1
Tengo un texto que se dibuja sobre un rectangulo dibujado con draw_roundrect_ext.
¿Como hago para que al hacerle scroll al texto (moverlo hacia arriba y abajo), cuando se salga del area del rectangulo, no se dibuje por fuera?
¿Tal vez con una surface?
Me ayudan?

2
Preguntas y respuestas / Script que funciona a veces [SOLUCIONADO]
« en: Noviembre 30, 2018, 03:37:24 am »
Hola a todos, les cuento que me enfrento al bug mas "ficticio" del mundo:
Primero el contexto:
Resulta que tengo varias listas que contienen objetos (instancias de un mismo objeto, para ser mas exacto), estos objetos tienen sus propiedades (variables) con diferentes valores, en algún momento requiero juntar todos esos objetos en una única lista y luego redistribuirlos en listas nuevas luego de haberlos ordenado de acuerdo al valor en una de sus propiedades.
Para eso utilizo el algoritmo de ordenamiento burbuja adaptado a las condiciones particulares, ya lo he probado en un proyecto aislado y no ha tenido inconvenientes:

///e_sort(list)
var N = ds_list_size(argument0);
var s = noone;
var j = 0;
for (var i=1; i<N; i++) {
    j = i;
    s = ds_list_find_value(argument0, j);
    while (ds_list_find_value(argument0, j-1).valor > s.valor && j>0) {
        ds_list_replace(argument0, j, ds_list_find_value(argument0, j-1));
        j--;
    }
    ds_list_replace(argument0, j, s);
}

Ahora los casos que se dan luego de juntar todos los objetos en una unica lista:
  • A, B, A, B, B, B
  • B, B, A, B, A, B
Donde A tiene un valor de 3.04 y B tiene un valor de 3.44
En cualquier caso el resultado debería ser A, A, B, B, B, B PERO en el primer caso funciona y en el segundo falla el algoritmo y se cierra la aplicación.
Cuando funciona se crean correctamente dos listas conteniendo A, B, B como se espera que lo haga.

Código: [Seleccionar]
############################################################################################
FATAL ERROR in
action number 1
of Mouse Event for Glob Right Pressed

for object control:


Unable to find any instance for object index '0' name 'table_return'
at gml_Script_e_sort
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_e_sort (line -1)
gml_Script_sintesis2
gml_Object_control_Mouse_54

Es como si los objetos ya no existieran y hace cualquier cosa como buscar un object_index == 0 con el nombre de cualquier otro objeto.
Ya he verificado que efectivamente los objetos si existen y fue asi como obtuve las listas de los casos que puse arriba como ejemplo.
Las veces que he visto que el "error" se encuentra en la linea -1 es porque no logra iniciar el script.
El script sintesis2 es el que une las listas en una sola, aplica el script de ordenamiento y hace la redistribución en las listas nuevas, eso se ejecuta en un evento Global Right Pressed

Me tocó alargar el post debido a la complejidad del proyecto que postearé a mitad de Diciembre, espero que no se me escape nada para que me puedan ayudar con sus comentarios.

3
General / MOVIDO: Necesito su ayuda!!
« en: Noviembre 14, 2018, 05:47:02 pm »

5
Preguntas y respuestas / Nombre del user event
« en: Noviembre 13, 2018, 01:33:48 am »
He visto que es posible ponerle nombre a un DnD de Execute code mediante un triple slash en la primera linea de codigo, igualmente he visto, sobre todo en la GMC que si se pone en la primera linea de un script con tripe slash la forma de llamarlo, sale en la barra inferior de ayuda del editor de codigo, tambien he visto que le ponen un nombre personalizado a los eventos de usuario (user defined) pero para esto no encuentro la forma de hacerlo.

Alguno sabe como?

Adjunto imagenes para que empiecen a utilizar esta caracteristica que tampoco la habia encontrado en el archivo de ayuda, me enteré por gmlscripts.com cuando hice mis scripts para acortar cadenas de texto.

6
Juegos completos / Lab 23 [Windows]
« en: Noviembre 09, 2018, 02:36:29 am »


Lab 23 [Windows]


Plataformas


GM: Studio 1.4

Lab 23 es un videojuego desarrollado por el equipo formado por @Querecuto
                 
  • Querecuto

             
  • Okupa
  • Red Bit Games
       
Sexo: Masculino Mensajes: 1399
Age: 27 Ubicación: Venezuela

 
, @Jucarave
                 
  • Jucarave

             
  • Beta-tester
  • De regreso con un nuevo proyecto
       
Sexo: Masculino Mensajes: 460
Age: 26 Ubicación: Colombia

 
y @Tyranus
                 
  • Tyranus

             
  • Okupa
  • No tengo texto personal :(
       
Sexo: Masculino Mensajes: 862
Age: 30 Ubicación: Argentina

 
en 2009 para el concurso que se llamó Proyecto Nexo y en el cual resultó ganador.

Este concurso consistió en desarrollar juegos que solo utilizaran el mouse como control.

Como jugar:
El agente se mueve según el movimiento del mouse y la posición del cursor:

  • Arriba: salta
  • Abajo: se agacha
  • Izquierda: camina hacia la izquierda
  • Derecha: camina hacia la derecha

La intensidad del movimiento depende de la distancia entre el agente y el cursor.

Utiliza los botones del mouse para realizar varias acciones:

  • Boton izquierdo: interactúa con diferentes objetos
  • Boton derecho: abre el menú del inventario, mueve el cursor hacia arriba o hacia abajo para cambiar el objeto seleccionado

Haz clic izquierdo lejos del inventario para cerrarlo y equipar el objeto seleccionado.

Spoiler

http://www.comunidadgm.org/juegos-completos/lab-23-(windows)/?action=dlattach;attach=17941


Hice el port del juego a GM:Studio 1.4 porque ya no hay rastros del mismo en el foro y quisiera que se publique para android, por eso quiero que me ayuden a buscarle bugs y errores si todavia quedan.


7
Desarrollo de Scripts / Acortar y alargar strings segun caracteres repetidos
« en: Noviembre 02, 2018, 03:15:22 am »
  • Nombre del creador: Johann
  • Breve descripción de su función: Acortar y alargar una cadena de texto que tiene caracteres repetidos sucesivamente
  • Versión GM utilizada: Game maker: Studio 1.4.9999
  • Código del Script:

Script para acortar una cadena de texto resumiendo la cantidad de caracteres repetidos sucesivos:
///shorten(str)
//
// (ESP)
// Reduce el tamaño de una cadena de texto
// reemplazando un conjunto de caracteres sucesivos
// por el numero de veces que se repite.
//
//     str      cadena de caracteres muy larga
//
// (ENG)
// Reduces the size of a text replacing a set of
// consecutive characters with the number of times
// it is present.
//
//     str      a very large string
//
//
/// GMLscripts.com/license
{
    var str = argument0
    var newStr = "";
    var currentChar;
    var nextChar;
    var size = string_length(str);
    var amount = 0;
    for (var i=1; i<=size; i++) {
        currentChar = string_char_at(str, i);
        if (i!=size) {
            nextChar = string_char_at(str, i+1);
        } else {
            nextChar = "";
        }
        if (currentChar == nextChar) {
            amount = 1;
            newStr += currentChar;
            while (currentChar == nextChar) {
                amount++;
                i++;
                nextChar = string_char_at(str, i+1);
            }
            newStr += ("(" + string(amount) + ")");
        } else {
            newStr += currentChar;
        }
    }
    return newStr;
}

Script para recuperar una cadena de texto reestableciendo la cantidad de caracteres repetidos sucesivos:
///enlarge(str)
//
// (ESP)
// Recupera el tamaño de una cadena de texto
// agregando un conjunto de caracteres sucesivos
// a partir del numero de veces que se repite.
//
//     str      cadena de caracteres a alargar
//
// (ENG)
// Recovers the size of a text adding a set of
// consecutive characters with the number of times
// it is needed.
//
//     str      a string to enlarge
//
//
/// GMLscripts.com/license
{
    var str = argument0;
    var oldStr = "";
    var currentChar;
    var nextChar;
    var size = string_length(str);
    var amount = "";
    for (var i=1; i<=size; i++) {
        currentChar = string_char_at(str, i);
        if (i!=size) {
            nextChar = string_char_at(str, i+1);
        } else {
            nextChar = "";
        }
        if (nextChar == "(") {
            amount = "";
            while (nextChar != ")") {
                i++;
                nextChar = string_char_at(str, i+1);
                amount += nextChar;
                show_debug_message(amount);
            }
            repeat(real(amount)) {
                oldStr += currentChar;
            }
            i++;
        } else {
            oldStr += currentChar;
        }
    }
    return oldStr;
}

Estos algoritmos se basan (se inspiran, mejor) en el algoritmo Run-length_encoding y he tenido que hacerlos para acortar y recuperar las cadenas de texto generadas por las funciones ds_*_write() donde el * es el nombre de una estructura de datos en GM, estas funciones retornan un string como el siguiente y su tamaño depende del contenido en la estructura de datos:

//Ejemplo
var text = ds_grid_write(my_grid);
show_debug_message(text);
var text2 = shorten(text);
show_debug_message(text2);

Código: [Seleccionar]
5A0200000400000004000000000000000000000000000000000000000000000000000040000000000000000000000040000000000000000000000040000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000
408 caracteres

5A020(5)40(7)40(52)40(23)40(23)40(23)40(95)40(95)40(73)
55 caracteres

Ya que requiero almacenar estos datos en una base de datos sqlite3 para generar unas estructuras visualmente en mi proyecto y no quería almacenar algo muy largo.
En resumen, el tamaño del texto se reduce en un 86.5% mejorando el consumo de memoria en disco, esto es importante para aplicaciones móviles.

Ojalá les gusten y puedan usarlos.
Mañana los posteo en https://www.gmlscripts.com y en el foro de yoyo, haber como me va por allá, por eso usé ese encabezado de comentarios.

9
Preguntas y respuestas / Texto con subindices
« en: Octubre 23, 2018, 12:29:51 am »
Que onda, estoy necesitando escribir subindices con game maker para generar textos como este:



En GMC encontré un post sobre subindices y superindices pero para el foro :(
Alguna pista? Creo que está dificil

11
Noticias / La última actualizacion de Game Maker: Studio 1.4
« en: Agosto 31, 2018, 03:44:27 am »
Hoy, YoYo Games ha anunciado la salida al canal Beta de la version 1.4.9999 de Game Maker Studio, en un esfuerzo de poco mas de un año por mantener vigente esta versión del motor que, tal vez muchos, nos negamos a abandonar XD.
Game Maker Studio 1 esta mas vivo que nunca,y aunque con esta actualización YoYo Games cierra el soporte de esta versión del programa, por lo menos se preocupa por dejarnos un software decente y listo para trabajar.

Justo hoy me ha dado por volver al GM y me he encontrado con esto  :D :D :D :D

13
Noticias / Gran encuesta sobre videojuegos
« en: Mayo 27, 2018, 08:16:13 pm »
Muchas cosas se han hablado por aquí acerca de las preferencias que tiene cada uno a la hora de jugar, pues es el momento de recoger toda esa información para tomar desiciones muy importantes.
Les comparto esta encuesta con el animo de que todos participemos, al final, dejaré aquí los resultados para que todos podamos utilizar esta información para nuestros futuros proyectos, aprovechando el carácter internacional que adquiere al compartirla aquí en el foro.

Estaré pendiente de sus respuestas.

¡Clic aquí!

15
Noticias / Un concurso para demostrar que no hemos muerto
« en: Abril 01, 2018, 06:28:48 pm »
Para los que han pensado que habíamos muerto, les traigo noticias:

Les presento el nuevo concurso que nos trae ElvisKelley,
toda la información haciendo clic en la imagen
Tambien aprovecho para recordarles que se aproxima la fecha de pago
del servidor y el dominio, y es nuestra oportunidad para reestablecer la sección
de descargas tal cual como estaba antes, asi que por favor, no dejemos al
perrito con la caja vacia.

Páginas: [1] 2 3