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

91
Te falta poner ord antes de la letra de la tecla:
keyboard_check(ord("D"))
92
Preguntas y respuestas / Re:Continues
Mayo 07, 2018, 08:58:23 PM
Saludos, primero como ya dijeron, siempre que uses funciones que finalizan un programa/código como room_restart game_restart, break, exit, hay que poner todas las instrucciones que deseas antes de ellas, para que se ejecuten.

Según entiendo el código ¿la variable "intentos" son los continues verdad? bueno el problema es que cada vez que se muere llamas al "obj_jugador_muere" y con "intentos = 3" los continues siempre se van a reiniciar a 3, por tanto nunca terminará.

Una forma fácil de solucionar sería crear la variable intentos como variable global, y la declaras en otro objeto que gestiona el juego en general, como un obj_main, por ejemplo:

- Crea el obj_main y lo pones en cualquier lugar del primer room

obj_main - evento create
[gml]
global.intentos = 3;
[/gml]

y tu código sería algo así:

obj_jugador_muere - evento create
[gml]
alarm[0] = 50;
image_speed = 0.3;
[/gml]

obj_jugador_muere - evento alarm[0]
[gml]
if (lives > 0)
{
    lives-=1;
    room_restart ();
   
}
else
{
    if global.intentos > 0
    {
        show_message ( " has muerto " );
        lives+=2;
        global.intentos-=1;
        room_restart ();
    }
    else
    {
        global.intentos = 3;
        game_restart ();
    }
}
[/gml]
93
Te dejo este código que hace que el primer sprite vaya desapareciendo de a poco y a su vez el segundo vaya apareciendo de a poco, usando el alpha, como el valor de alpha va de 0 a 1.

Supongamos que el personaje se llama "obj_player" que está usando el "sprite1" y va a cambiar al "sprite2"

evento step
[gml]
if sprite_index == sprite1
{
    image_alpha -= 0.01; //cada step del juego será más transparente hasta desaparecer
     
    if image_alpha == 0 //cuando ya no se ve, se le asigna el otro sprite
    {
        sprite_index = sprite2;
        image_alpha = 1;
    }
}
[/gml]

Y esto en el evento draw pero en otro objeto que no use sprites, como por ejemplo un obj_controlador

evento draw
[gml]
with (obj_player) //como si estuviésemos dentro del obj_player
{
    if image_alpha > 0 and sprite_index == sprite1
    {
        draw_sprite_ext(sprite2,0,x,y,1,1,0,c_white,1-image_alpha); //se irá dibujando de a poco el segundo sprite
    }

}
[/gml]

¿por qué en otro objeto? porque al usar un evento draw en un objeto que tiene sprites asignados hacen conflicto entre ellos.
94
Juegos en desarrollo / Re:Cee Ann - Copycat
Mayo 04, 2018, 06:51:52 PM
Buen juego, está entretenido.

Los controles son algo complicados y no muy intuitivos pero eso también lo hace interesante, es cosa de acostumbrarse.
Buena música y buenas gráficas.
95
Cita de: NiuWeb en Abril 27, 2018, 06:30:01 PM
¿y si usas una sola lista que contenga arreglos en donde esté la información? Sería una forma de mantenerlos relacionados sin importar cómo organices la estructura.
La verdad que no sabía que se podían guardar arreglos en listas (perdón llevo poco trabajando con estructuras de datos) así que gracias por el dato, investigaré sobre ello.

Cita de: pixel king en Abril 27, 2018, 05:25:18 PM
puedes probar con random_set_seed(value), nunca lo he utilizado pero igual te sirve
Resulta que había intentado con esa pero no me funcionaba... pero intentando un poco más me di cuenta que funciona si le pongo repetidas veces la instrucción, o sea así:

random_set_seed(1);
ds_list_shuffle(lista1);
random_set_seed(1);
ds_list_shuffle(lista2);
random_set_seed(1);
ds_list_shuffle(lista3);

sólo la ponía una vez arriba... en fin encontré la solución por mi cuenta jaja que bruto soy a veces, gracias por ayudarme.
96
Saludos.

Tengo tres listas que guardan distintos valores pero tienen la misma cantidad de valores guardados, entonces estaba pensando en desordenar las listas para aleatoriedad, pero quisiera que las listas se desordenen de la misma manera, ya que por ejemplo el índice 0 de la primera lista está relacionado con el índice 0 de la otra y también de la otra.
Pero claro, no puedo simplemente desordenar todas con list shuffle, ya que se desordenan diferente, creo que esto tiene algo que ver con la seed de random que se ejecuta cuando se desordenan pero no sé como usarlo y si se puede repetir para varias acciones ¿alguna idea de si se puede?
97
Yo intentaría algo así.
Primero creo una variable "tiempo" para que guarde el tiempo que el jugador mantiene presionada cierta tecla.
Luego otra variable "nivel" para indicar el nivel que tiene el jugador

supongamos que se carga manteniendo la tecla Z:

evento create
[gml]
tiempo = 0;
nivel = 1;
[/gml]

evento step
[gml]
if keyboard_check(ord("Z"))
{
   tiempo += 1; //aumenta en 1 cada step del juego
}
else //como opcional puedes agregarle que si suelta la tecla, entonces tiempo se reinicia a 0
{
   tiempo = 0;
}
[/gml]

luego que por ejemplo pase al nivel 2 si lleva cargando por 10 segundos
evento step
[gml]
if tiempo >= 300 //10 segundos son 300 steps si el juego va a 30 frames por segundo
{
   nivel = 2;
}
[/gml]
una vez que se está en nivel 2 ya tendrías que poner todos los cambios que sufre el jugador en ese nivel, y luego tendrías que especificar que luego de cierto tiempo el jugador vuelva al nivel 1, todo depende de como deseas tu juego.
98
Muchas gracias, el ejemplo está muy bueno, nada más que estoy usando gm 8.0 por lo que tuve que instalar el 8.1 y manualmente convertirlo a .gmk pero no importa me tomé el trabajo y funciona perfecto. Con esto ya tengo material suficiente para implementar lo que necesito (quizás me toque rehacer varias cosas porque no tengo el tablero a base de arrays, pero lo lograré)

Edito: ya lo he logrado, agradezco mucho la ayuda.
99
gracias clamud por el link, eso es lo que busco... aunque cuesta mucho entender el código estando en otro lenguaje de programación, ¿por favor me guías un poco en que consiste?

Edito: leyendo ese post vi que mencionan el algoritmo Flood Fill y analizándolo me dio una idea, debo mirar las casillas de adentro y chequear las adyacentes con un ciclo, y las fichas blancas actuan como tapones, en ese ciclo si hay camino libre al borde del tablero entonces no hay anillo desde esa casilla, de lo contrario hay anillo... ya estoy viendo que funciona, lo probaré ;D
100
No creo que eso sea suficiente, ya que mi problema no es que no pueda detectar las instancias con fichas de cierto color, sino que no logro detectar cuando encierran un área dentro... los anillos pueden tener cualquier forma con tal que se cierren, e incluso dentro pueden tener fichas de cualquier color.
101
Buenas, tengo un problema que no sé como resolver, aquí voy:

Estoy creando un juego de mesa que es en un tablero hexagonal y se van poniendo fichas (tipo damas chinas, hex) y el juego se basa en la conexión de las fichas, un jugador con blancas y otro con negras y van poniendo una ficha por turno; bueno mi problema es que no se me ocurre qué algoritmo usar para detectar anillos... con esto me refiero a que las fichas hacen una formación de un anillo, acá unos ejemplos.


O sea que encierren un área dentro teniendo al menos una casilla dentro, pero no sé como detectar cuando pasa eso.
Como dato adicional, cada casilla le he asignado string de coordenadas para identificarlas, y cambia de estado según está vacía u ocupada por una ficha, también he creado una lista con las coordenadas de las fichas que van conectándose, uso la función instance_nearest para detectar las 6 casillas alrededor si hay fichas conectadas, ....
102
se puede usando "place_meeting"

si estás dentro del obj_personaje entonces pones
[gml]
if place_meeting(x,y,obj_soap)
{
intance_create(0,0,burbuja);
}
[/gml]

o al revés si estás dentro del obj_soap
[gml]
if place_meeting(x,y,obj_personaje)
{
intance_create(0,0,burbuja);
}
[/gml]

Si las áreas de colisión están bien hechas, debe funcionar sin problema.
103
Preguntas y respuestas / Re:Dudas sobre arrays
Abril 17, 2018, 05:09:47 AM
Todo claro, gracias me ayudaste mucho :)
104
Preguntas y respuestas / Dudas sobre arrays
Abril 16, 2018, 04:04:58 AM
Saludos, tengo unas dudas que quizás sean sencillas pero no las encuentro en los manuales porque casi no dice nada sobre arrays.

¿Se pueden declarar arrays locales como se hacen con las variables simples? o sea así: var variable1,variable2,... Si por ejemplo escribo allí una variable de nombre "ligas", puedo usar luego esa como array con índices: ligas[0] ¿y funciona como array local?

¿Cómo lo hago para "limpiar" un array unidimensional? por ejemplo en una pieza de código mi array se volvió muy grande (con muchos índices) y quiero que en determinado momento se borre todo y vuelva a quedar vacío, ¿se puede sin tener que destruir la instancia que tiene el array?
105
Debes ser más específica, con actualizar te refieres a que tienes un juego hecho y al cambiarle cosas funciona mal... o tal vez te refieres a que publicaste un juego en algún lado y no sabes como dar a saber que le hiciste una actualización?