[otra vez] de vueltas problemas con public

Started by Futu-block, March 09, 2015, 10:17:29 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

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

FreeYourMind

estas acediendo a un proceso que ya no existe

Yawin

¿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".
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

warrior_rockk

¿No te estará devolviendo el get_id un 0? ¿En el mensaje de "process not active" no te especifica numero de proceso?

emov2k4

emmm no deberia ser así ?

begin
id_tipo = get_id(type tipo);

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

JaViS

dentro del loop deberias verificar que el proceso continua existiendo con la funcion exists
Working on Anarkade. A couch multiplayer 2D shooter.

Futu-block

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