Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Futu-block on March 09, 2015, 10:17:29 AM

Title: [otra vez] de vueltas problemas con public
Post by: Futu-block on March 09, 2015, 10:17:29 AM
vale, en este caso trato de comprobar la x de otro proceso, es ente caso tengo el proceso ''tipo'' que es el protagonista que manejamos y enemigo es un proceso que cuando el protagonista pasa por debajo cae cual piedra en el supermario...

¿codigo?
en el begin del enemigo le hago:
private
tipo id_tipo;

begin
id_tipo = get_id(type tipo);

loop
    if (tipo.x == x)
        y++;
    end
frames y etc...

y me dá error:
process no active

estoy haciendo algo mal? porque igual las x,y son publicas y estoy haciendo el carajote
Title: Re:[otra vez] de vueltas problemas con public
Post by: FreeYourMind on March 09, 2015, 10:48:35 AM
estas acediendo a un proceso que ya no existe
Title: Re:[otra vez] de vueltas problemas con public
Post by: Yawin on March 09, 2015, 10:50:31 AM
¿Si haces "get_id(type tipo)" el id de qué proceso te devuelve? Quiero decir, si has llamado más de una vez a ese proceso y, por tanto, tienes varios activos, ¿cuál te devuelve? Yo para el personaje principal suelo tener una variable global llamada personajeid donde guardo la id del personaje cuando lo llamo ("personajeid=personaje();"). No se si esto te sirve de algo.

Sólo se me ocurre que, o bien no sabe qué id devolverte porque hay varios encendidos, o bien no has llamado ni una sola vez a tipo y por ello no encuentra nada con "type tipo".
Title: Re:[otra vez] de vueltas problemas con public
Post by: warrior_rockk on March 09, 2015, 11:17:48 AM
¿No te estará devolviendo el get_id un 0? ¿En el mensaje de "process not active" no te especifica numero de proceso?
Title: Re:[otra vez] de vueltas problemas con public
Post by: emov2k4 on March 09, 2015, 12:11:33 PM
emmm no deberia ser así ?

begin
id_tipo = get_id(type tipo);

loop
    if (id_tipo.x == x)
        y++;
    end
frames y etc...
Title: Re:[otra vez] de vueltas problemas con public
Post by: JaViS on March 09, 2015, 03:06:08 PM
dentro del loop deberias verificar que el proceso continua existiendo con la funcion exists
Title: Re:[otra vez] de vueltas problemas con public
Post by: Futu-block on March 09, 2015, 03:28:10 PM
Puede que sea como emov2k4 dice, segun he estado empollando la biblia, pero todavia se puede hacer mas facil:
Resulta que debemos saber la x de un protagonista, asi que la ''globalizo''; tomo una variable global llamada x_tipo y la actualizo cada frame con x_tipo = x; en su proceso correspondiente.
Me parece muy buena idea usarla asi aunque voy a contar su porque lo unico malo puede ser que no aprendo a usar el public.

Ahora el porque de que me conviene:
para el juego que estoy haciendo cada enemigo es el mismo siempre con el mismo proceso pero con distintos parametros:

enemigo (x_inicio, y_inicio, direccion, desde_donde, hasta_donde, velocidad)

en este caso usaré el desde_donde y hasta_donde para definir una region X que cuando coincida con x_tipo bajará a la velocidad indicada

gracias por la pronta respuesta, chavales, iran surgiendo problemas y os tendré alerta...
karma++ a cada uno, je je