Alianza Rogue like.

Publicado por dixon, Enero 10, 2023, 05:46:40 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Tornadeitor

Aquí dejo el algoritmo que podría tener el juego:

Algoritmo" border="0

Tornadeitor

¿Hay alguna forma de poder ponerles algún tipo de identificador o etiqueta a los objetos y luego de alguna forma, poder obtener una lista con todos los objetos que contienen esa etiqueta o variable?

Por ejemplo, supongamos que quiero que cuando ocurra un evento, este lo que haga sea guardar en el mazo todas las cartas de tipo pasillo que hay en la mano del jugador. Para ello, cada objeto carta debe tener algún tipo de etiqueta (no se si eso existe en gamemaker) o variable de cierto tipo (por ejemplo, var_cartatipo="pasillo"), y que el evento lo que haga sea comprobar de todos los objetos que existen en la mano (por ejemplo, todos los objetos cuya variable: var_mano=true) que busque los que sean "pasillo" y los guarde en el mazo. ¿Hay alguna forma de hacer esto?

dixon

Hola, saludos.

Disculpe por no poder responder con más prontitud.

Vas a necesitar la función
instance_find(objeto_carta,numero);
Esa función devuelve el id del objeto(instancia) según el orden como fueron creados. Es decir que si creamos 5 objetos carta, el objeto "0" será el primero que fue creado y se obtiene de la siguiente manera:
Objeto_0 = instance_find(objeto_carta,0);
Objeto_1 = instance_find(objeto_carta,1);
Objeto_2 = instance_find(objeto_carta,2);

Ahora si queremos consultar la variable "tipo" del objeto entonces haríamos lo siguiente:
Objeto_0 = instance_find(objeto_carta,0);
Tipo = Objeto_0.tipo;

Ahora volvamos a comenzar de cero:
Cuando creamos varias copias de un mismo objeto estas se llaman instancias, las instancias de un mismo objeto pueden organizarse dentro de un arreglo (array, lista), de la siguiente manera:
cantidad_cartas = instance_number(objeto_carta);
for(i=0;i<cantidad_cartas;i+=1)
{
    lista_cartas[i] = instance_find(objeto_carta,i);
}

Ahora bien si yo quiero repartir esas cartas a un jugador en especifico, la carta debe indicar a que jugador pertenece.

Objeto carta: evento - create
tipo = "";
player = 0;

El objeto carta no tiene un tipo específico ni un player asignado, pues adquirirá un tipo específico cuando el maso principal sea creado. Por lo tanto hay que crear el maso principal que contenga la cantidad de cartas que nosotros necesitemos.

Pero tenemos que olvidad los códigos anteriores y definir el procedimiento que se va a llevar acabo poco a poco:

1.   Crear el maso con la cantidad de cartas adecuada.
2.   Repartir las cartas a cada jugador, tomando en cuenta la cantidad de cartas héroe y las pasillo que debe tener cada jugador.

Para crear el maso principal seria muy recomendable una función como esta:
crear_maso_principal(objeto_carta,"{heroes:8},{pasillos:8}");

Bueno, esa función no existe (aún), debe ser creada a igual que otras las cuales pueden facilitar el desarrollo del juego.

Ahora bien, ¿Cuáles serian esas funciones que servirán para facilitar el desarrollo del juego?.
Veamos las siguientes propuestas:

maso = crear_maso_principal(objeto_carta,"{heroes:8},{pasillos:8},{objeto:8}");
barajear_mazo_principal(maso);
repartir_cartas(cantidad_jugadores);
clasificar_cartas(jugador_numero);

Las funciones deberán ser creadas sobre la marcha para que se pueda seguir la secuencia del juego.

Ahora bien. He realizado varios experimentos y he comprendido que crear un juego de cartas no es tán fácil como parece, el primer problema es el de la escala.
Problema de escala: Las cartas deberán ser escaladas para que quepan todas en la mesa, y luego deberán ser ampliadas cuando se proceda a visualizar una.
Modo gráfico: es necesario crear un sistema que funcione sin gráficos y luego otro encargado de representar gráficamente lo que está sucediendo en el sistema.

Este juego me ha hecho comprender de nuevo que tengo que organizarme muy bien  si quiero lograr algo.

Bye.


Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Tornadeitor

Gracias por el aporte.
Tienes razón yo empecé a hacer algo pero aunque parece fácil de primeras es super complejo, no sé, el tema de los turnos, lo que se puede y no se puede hacer en cada uno... creo que esto es trabajo para un pequeño equipo...

Powered by EzPortal
SMF spam blocked by CleanTalk