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

1
3dgeminis: Sí, hice varias pruebas varias, desactivando la creación de objetos, de tiles, eliminando el background que tenía por defecto... Nada, siempre el mismo resultado. Bueno, alguna vez el color era ligeramente diferente, pero igualmente inexplicable. También cree el ejecutable, pero el resultado es el mismo. De la tarjeta gráfica, que yo sepa, no he tocado nada recientemente. Y, tras revisarlo, parece que todo está en orden por ahí.

penumbra: He probado a hacer como tú dices, pero lo único que he conseguido es obligarme a mí mismo a revisar el código de arriba a abajo para acordarme de todas las partes que tenía comentadas y volverlas a meter en la partida (gracias a la mala planificación por mi parte, todo sea dicho). A estas alturas ya estoy bastante seguro de que el problema está con el propio GM, ya sea porque le he removido los intestinos y he chafado algún archivo de configuración o algo similar, o simplemente porque tiene algún bug.

Sea como sea, me va a tocar armarme de valor, y recurrir a la solución más antigua de la informática: darle al botón de reinicio. A ver si reinstalándolo me sonríe la fortuna.

Gracias a los dos.
2
3dgeminis: He estado chequeando tanto el código de los objetos como las líneas en las que se añaden los tiles. Las unidades están todas a depth 5, los tiles, a depth 100. En las funciones de dibujo lo único que se modifica, en todo caso, es el "image_bend" de la unidad para colorearla de verde o rojo según el bando. Tengo un background por defecto, colocado desde la propia interfaz del  :GMS:, pero entiendo que ese siempre se ve en el fondo porque no tengo ninguna opción para establecer su profundidad.

Es que no sé por donde pillarlo. Si todavía no lo he reinstalado es porque me da un poco de cosica toquetear, más siendo un programa de pago. Siempre tengo el miedo injustificado de que se vaya a rallar y no me vaya a aceptar la clave por segunda vez o presente algún comportamiento extraño. En fin.

Gracias por la respuesta.
3
Hola a todos. Soy nuevo en la comunidad y bastante novato en lo que a Game Maker se refiere. Antes de nada, aclarar que este post es básicamente una petición de ayuda ante un problema que, a estas alturas, ya me está empezando a volver loco (llevo tres días, y he probado con todo). Gracias de antemano a todos los que se tomen la molestia de leerlo, y doblemente a los que contesten.

Actualmente me encuentro realizando el proyecto de fin de grado de Ingeniería Informática, que estoy realizando con Game Maker Studio (v1.3). La idea del proyecto es un juego de estrategia por turnos, al más puro estilo "advance wars". Esto es, mueves tus "fichas" (tanques, soldados, camiones...) en tu turno, y luego el oponente mueve las suyas. La parte más "académica", que voy a intentar vender, es la IA.

Para el terreno, he usado un sistema de objetos y tiles: En cada "cuadrado" de terreno hay un objeto con las características de ese terreno, que ocupa lo mismo que el tile que representa aunque es independiente de este. Para las unidades, objetos que generan un "menú" (otro objeto) cada vez que se pincha encima de ellas, y cuyas opciones dan lugar a varios eventos. Los movimientos de las fichas se manejan mediante colisiones entre los objetos de unidades y objetos de terreno.

Hace unas semanas tuve que hacer un alto en el proyecto por razones personales. Por aquel entonces, funcionaba perfectamente. Recientemente, sin embargo, ha empezado a fallar vilmente. Desde que lo volví a abrir, ha empezado a hacer cosas raras cuando lo inicio. Me carga los objetos (usando la ventana de "selected instance" del debugger, al seleccionar en donde deberían estar, efectivamente se muestra que ahí está el objeto), pero lo único que veo es una ventana de color verdoso oscuro (que entiendo es el background por defecto). Al alternar entre las distintas vistas (tengo dos, una para recorrer todo el mapa y otra para mostrar lo que vendría a ser el "minimapa"), el color se hace más claro, pero sigue sin verse nada.

Esto es lo que se debería ver:



Esto es lo que se ve:



Y al alternar a la vista "minimapa" (que no es otra cosa que escalar el mapa para que se vea entero en la ventana):



Algo que debería ser mencionado es el hecho de que la room, inicialmente, está vacía. En el juego tengo tres rooms distintas, a saber:


  • Load_Stage_Room: En esta room se inicializan todas las variables globales, y se lee uno de los archivos que contienen los diferentes niveles del juego. Por ahora no se toca nada del aspecto del juego. Es una room invisible, básicamente, que he creado para modularizar esta carga y, en un futuro, dar al usuario la posibilidad de elegir entre los distintos niveles del juego. Funciona correctamente, ya que carga los datos debidamente (comprobado con el debugger). Una vez carga todo, define las dimensiones de la siguiente room y pasa a esta.
  • Play_Stage_Room: La room principal, en donde se desarrolla el juego. Sus dimensiones se definen en la anterior room, y nada más cargarse genera un código mediante el cual crea todas las instancias necesarias, según los datos que leyó la room anterior. Por último, define las distintas vistas. Como entiendo que el problema probablemente se encuentra aquí, resumo el creation code abajo.
  • Save_Stage_Room: Room "fantasma" que he creado para generar los archivos que luego usa la primera room para cargar los datos. Defino gráficamente el nivel (es decir, coloco los objetos y tiles habitualmente) y luego, al ejecutarla, traduce todos esos datos a un archivo que se guarda en el lugar adecuado. En principio esta room nunca se utiliza en el juego, solo la uso yo cuando quiero crear un nuevo nivel.

El código de la Play_Stage_Room es más o menos lo que sigue. No lo copio tal cual para facilitar la lectura, pero no tengo ningún problema en hacer copy/paste literal si alguno cree que es mejor:

//INICIALIZAMOS LA MATRIZ PRINCIPAL

global.matrizChequeado1[0,0] = false;
global.matrizChequeado2[0,0] = false;

(Aquí vendría un bucle para inicializar las matrices del juego, que uso luego como soporte para la IA y algunos eventos)

(Bucle for que recorre todos los tiles que se deben cargar):
{
    instance = instance_create(global.loadedTilesX[i], global.loadedTilesY[i], Terreno_OBJ);
    instance.type = global.loadedTilesType[i];
    switch (instance.type)
    {
         (Dependiendo del tipo de terreno se le dan unos valores de cobertura predefinidos, que son variables internas de la instance)
    }
    global.matrizIds[global.loadedTilesX[i]/32,global.loadedTilesY[i]/32] = instance.id;
    tile_add(tileset,global.loadedTilesLeft[i],global.loadedTilesTop[i],global.loadedTilesWidth[i],
                global.loadedTilesHeight[i],global.loadedTilesX[i],global.loadedTilesY[i],100);
}
for (i = 0; i < array_length_1d(global.loadedUnidadesX); i++)
{   
    Crear_Unidad(global.loadedUnidadesType[i], global.loadedUnidadesX[i],
                global.loadedUnidadesY[i], global.loadedUnidadesBando[i]);
    (Esta última línea de código es un script que crea un tipo u otra de unidad según el tipo de esta)
}

//VISTAS

view_xview[0] = 0;
view_yview[0] = 0;
view_wview[0] = room_width;
view_hview[0] = room_height;
if (room_width > 640)
{
    view_wview[0] = 640;
}
if (room_height > 640)
{
    view_hview[0] = 640;
}
view_xport[0] = 0;
view_yport[0] = 0;
view_wport[0] = view_wview[0];
view_hport[0] = view_hview[0];
view_visible[0] = true;
instance_create(0,0,View0Controller);
view_enabled = true;
window_set_size(view_wport[0],view_hport[0]);
window_set_position(0,0);
view_xview[1] = 0;
view_yview[1] = 0;
view_wview[1] = room_width;
view_hview[1] = room_height;
view_xport[1] = view_xport[0];
view_yport[1] = view_yport[0];
view_wport[1] = view_wport[0];
view_hport[1] = view_hport[0];
view_visible[1] = false;
instance_create(0,0,View1Controller);


Las unidades son objetos que heredan de un objeto "Unidad_OBJ", el cual no tiene Sprite. Cada unidad va con su sprite definido, y tiene la opción "visible" marcada y las otras desmarcadas (no son sólidas, ni persistentes, ni usan físicas). Los terrenos son todos del mismo tipo, invisibles, y ocupan el mismo espacio que los tiles a los que representan (los cuales, por otro lado, tampoco se muestran).

Estoy empezando a pensar que el problema está en el propio Game Maker, y que lo más inteligente sería desinstalarlo y volverlo a instalar. Si a alguno se le ocurren posibles soluciones a este problema, me hacéis un hijo de madera. No tengo ningún problema en subir más partes de código o capturas si alguno cree que servirían para deducir cuál es el problema.

Gracias de nuevo.