User Tag List

Resultados 1 al 3 de 3

Tema: Fenix: colisiones y procesos

  1. #1

    Fecha de ingreso
    May 2005
    Mensajes
    22
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts

    Fenix: colisiones y procesos

    Saludos

    Estoy programando en Fenix un juego y he tenido un problemilla con las colisiones y terminaciones de procesos.

    Veamos:
    tengo una función llamada asteroides a la que se le pasan dos coordenadas y coloca el gráfico en pantalla:

    process asteroides(int coor_x, int coor_y)
    begin
    ctype=c_m7;
    file=novafpg;x=coor_x; y=coor_y;graph=4;
    loop
    frame;
    end
    end


    a esta función la llamo de esta forma:

    id_asteroides[0]=asteroides(100,150);
    id_asteroides[1]=asteroides(200,100);


    que me coloca dos objetos asteroides en pantalla.

    Cuando el usuario choca con uno de los objetos, se produce la colisión:

    col_asteroide=collision(type asteroides);
    if (col_asteroide<>0)objeto_activo="Asteroides";


    Y entonces se le da la oportunidad de producir una acción, en el caso de los asteroides quiero que se elimine el asteroide con el que ha colisionado, pero no sé como diferenciar uno de otro. Escribí este código que es una solución bastante chapucera y que se realiza cuando el usuario pulsa el botón de acción:


    if(objeto=="Asteroides")
    for(a=0;a<=8;a+=1)
    if(estrella_activa.x==id_asteroides[a].x or estrella_activa.y==id_asteroides[a].y)
    signal(id_asteroides[a],s_kill);
    end
    end
    end


    Pero cuando lo ejecuto, al pulsar acción con el asteroide colisionado se ve que el asteroide correcto se elimina pero el programa se para con este error:

    Error de ejecución en proceso 65559; Procedimiento 0 no activo

    ¿Puede alguien ayudarme? Me serviría cualquier forma, si arreglando este código o con alguna forma mejor de diferenciar los objetos...

    Gracias de antemano y siento el tocho =P

    PD: ¿Hay alguna posibilidad de reactivar las páginas de Nazca o de La Biblia de GP32? Sería muy útil poder volver a visitarlas, especialmente por los códigos fuente de los juegos de Nazca =)

    ZRV

  2. #2

    Fecha de ingreso
    May 2005
    Mensajes
    22
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Me siento ignorado u.u

    ZRV

  3. #3

    Fecha de ingreso
    Jun 2006
    Mensajes
    1
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Código:
    col_asteroide=collision(type asteroides);

    col_asteroides es el asteroide que choco con el otro proceso...
    si quieres eliminarlo, simplemente lo eliminas enviandole una señal


    Código:
    if (col_asteroides<>0) 
       signal(col_asteroide, s_kill);
    end;

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •