Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zHeMaa en Marzo 27, 2015, 12:58:44 PM

Título: Escoger jugador
Publicado por: zHeMaa en Marzo 27, 2015, 12:58:44 PM
Hola buenas, estoy haciendo un seleccionador de personaje, hasta ahi todo bien. Pero si pongo este codigo:
if global.jugador = 1
{
    if mouse_check_button_pressed(mb_left)
    {
        show_message("Jugador Principal")
        global.jugador = 0;
    }
}


Funciona, y si lo pongo sin el "show_message", que queda mejor.. no funciona el código.
if global.jugador = 1
{
    if mouse_check_button_pressed(mb_left)
    {
        global.jugador = 0;
    }
}


No se el porque, al principio quería que saliera el mensaje con el nombre del jugador que escoges, pero definitivamente me gusta mas sin el mensaje, y no se porque motivo pero no funciona..

PD: si sabéis algún otro código mejor para hacer selecciones, os lo agradecería ya que este se me ocurrió pero no me acaba de convencer.
Simplemente detecta si tienes desbloqueado el personaje 2, si es así, detecta si estas usando el personaje 1, si tienes las dos cosas anteriores activa el personaje 2, y con el personaje 1, simplemente detecta si tienes el 2, pero claro, cuando ya tenga mas de 3 personajes va a ser un lió.

Muchas gracias! :)
Título: Re:Escoger jugador
Publicado por: elviskelley en Marzo 27, 2015, 02:46:37 PM
Bueno, estoy creando una version variada de mi juego; "City Defender EK" en el cual integrare muchos botones, que traducido a tu caso serian muchos personajes, aunque lo que hago va mas complicado, lo escribi en papel y me tomo 8 hojas de codigo. El hecho es que de las distintas maneras que he ideado para simplificarlo, siempre se trabaja con arreglos (alrrays) por uno crea la lista alli y luego busca segun el indice. Te muesto como:

//En un object al inicio del juego creas el indice del array en var global.
global.indpersonajeP1=0; //este es la var global para ser usada como indice.
global.indpersonajeP2=0; //para el player 2.

//ahora creamos en el mismo event create, la lista de array con los personajes.
global.personaje[0]=obj_Elvis;
global.personaje[1]=obj_ElvisKelley;
global.personaje[2]=obj_Elvivito;
global.personaje[3]=obj_EK;

//En la pantalla de seleccion de personajes; hay dos maneras de hacerlo, uno que cada cuadro de personajes sea un object (metodo mas facil) o por coordenadas del mouse.
1.- Por objects.
Colocas varios objects, cada uno que muestre al personaje a escojer.
En el event mouse left pressed colocas.
global.indpersonajeP1= (aca va un numero que corresponde al personaje en la lista de array)
Ejemplo; si clickeas en el primero cambias el valor del indice global.indpersonajeP1=0; que corresponde al array a; obj_Elvis luego le toca escoger al player 2, y de igual forma a clickear cambias el indice de; global.indpersonajeP2=3; Si escogio al tercero corresponde al obj_EK.

Ya los personajes fueron escogidos, ahora vamos al room donde inicia todo y llamamos a los personajes escogidos.
En algun object que podrias llamarlo engine_personaje o control_personaje o como te parezca.
en su event create colocas.
instance_create(x,y,global.personaje[global.indpersonajeP1])
instance_create(x+96,y,global.personaje[global.indpersonajeP2])
De esta forma creara los personajes que escogiste.
Otra forma es que en vez de crear personajes completos, cambie los sprites a los juegadores a modo de aparentar que fueron personajes nuevos escogidos.

2.- La segunda manera es por coordenadas, es decir en vez de cuadros que representan a los personajes, se coloca coordenadas y se usa un fondo con las fotos de los personajes.
Ejemplo en el event mouse left pressed.
if (mouse_x > 0 and mouse_x <64) and (mouse_y>32 and mouse_y <96) then
{....} Como vez es encerrar por coordenadas la ubicacion de las imagenes de seleccion de personages.

3.- Se me ocurre una tercera opcion que sea unas flecha de seleccion, al clickear en las flechas cambia el valor del indice y muestra al personaje o una foto del personaje en el centro de la pantalla.