Juego de Magia

Started by Prg, June 05, 2008, 05:18:16 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

l1nk3rn3l

#15
le mirare , mientras prueba con

oculta los modelos en lugar de borrarlos
M8E_MODELVISIBLE(modelo, false)

las listas y modelos son descargados automaticamente,
si desea hacerlo a mano usa:
M8E_CLEARSCENE()   //borra toda la escena y demas

podrias compartir el codigo del proceso que crea el error?


no entendi este comentario:
"ya los abrí, se ven un poco complicados, sobre todo en que tiene consola, bueno, esperemos no sea así, probaré a hacer algo, gracias."

complicados?consola? no entiendo , hazmelo saber y mejorare
lo que este mal.  Gracias

Prg

ok, gracias, es buena idea lo de ocultar los models, sin embargo se me hace más cómodo borrarlos. sí, nadamás que mi compu vuelva de de ultratumba (hizo bum, bueno, ya no prendió) y te paso el código del proceso problemático. y lo del comentario, es el programa que usa consola, el último del que me diste el link, se ve un poco complicado. El problema con el m8e_clear... es que borra todo, y yo sólo deceo borrar el model del enemigo que ha muerto. bueno, nadamás tenga mi pc de nuevo y te paso el código. muchas gracias por tu ayuda. a propósito, sería genial incluir en el dibujo de gráficos 2d sobre pantalla una función para modificar el size y la parte del dibujo a dibujar para crear barra de enegía y todo eso, no se si ya lo agregaron, pero en la versión que trabajaba antes de bajar la más actual no encontré estas fuciones, y quizá también una de rotado, digo... sería más fácil y cómodo el trabajar con esto... Por todo, muchas gracias y nos vemos al rato... ;)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

mira, éste es el process problemático.

[code language="bennu"]
process enemy(tipo,x,y);
begin 
    modelo_enem=  M8E_LOADANIMODEL("media\enemigos\ant01.ms3d");    //el model se guarda en una variable local
              M8E_MODELSCALE(modelo_enem,  5,5,5);             
         M8E_MODELSETMATERIAL(modelo_enem, EMF_LIGHTING,0);       
                                posl.x=x; posl.z=y; posl.y=200;
M8E_POSMODEL(modelo_enem, &posl); 
   M8E_ADDANIMCOL(mapacolision,modelo_enem, 1,1,1,  0,-2,0,  1,1,1); 
col = M8E_ADDCOLBBOX(modelo_enem);
   
    /* animaciones */
     
       switch (tipo);
case 0:
from z=1 to 9;
cam[z-1]=z; end
from z=10 to 20;
atack[z-10]=z; end
end
case 1:
   from z=1 to 9;
cam[z]=z; end
from z=10 to 20;
atack[z]=z; end                                /*  cam[20]; atack[20];

run[20]; idle[20]; otra[20];*/ end end 


/*animaciones*/

    deside=rand(0,3);
       
loop                           
     
         movedi=fget_angle(posl.x,posl.z,posi[deside].pos_m.x,posi[deside].pos_m.z);
         giro.y=movedi/1000-90;
         M8E_MODELROTATION(modelo_enem, &giro);
         M8E_getPOSMODEL(modelo_enem, &posl);
         posl.x=posl.x+get_distx( movedi, 10);
         posl.z=posl.z+get_disty(movedi , 10);
         posl.y-=gravedad;
         if (muerte==true) M8E_MODELREMOVE(modelo_enem);    signal(id,s_kill);  end
         if    (exists(get_id(type protagonista)))
         //    col=fget_dist(posl.x,posl.z,pos_m.x,pos_m.z);
         distancia= M8E_GETDISTANCE(modelo_enem, id_prota[deside].prota);   
         if (distancia<50  )  M8E_MODELANIMSETFRAME(modelo_enem, atack[cont]); 
         if (cont==5 or cont==6)
         if ( posi[deside].animación==6)
         if (GamePad[0].Button[0]) if (pres==false) posl.x=posl.x+get_distx( movedi, -200); posl.y=posi[deside].pos_m.y;
          posl.z=posl.z+get_disty(movedi , -200);  M8E_POSMODEL(modelo_enem, &posl); pres=true; end ELSE pres =false; end
         else   energía_buenos--; /*cond anim*/ end /*2da condición*/ end 
         //primer condicion
         else
          if (rand(0,3)==2) M8E_POSMODEL(modelo_enem, &posl); end
          M8E_MODELANIMSETFRAME(modelo_enem, cam[cont]);     end
         if (distancia>3500)  posl.x=posi[deside].pos_m.x; posl.y=posi[deside].pos_m.y;  posl.z=posi[deside].pos_m.z;  M8E_POSMODEL(modelo_enem, &posl); end     
         if (distancia>10000) M8E_MODELREMOVE(modelo_enem);    signal(id,s_kill); end     
                               end     
         otcon++;                                     
         if (otcon>2) cont ++; otcon=0; end
         if (atack[cont]==0) cont=0; end
         if ( cam[cont]==0  ) cont=0; end
         from z=0 to 3;
         if (M8e_RAYCOL( &posi[z].pos_m,&posi[deside].posdet , col))                           
         if (GamePad[0].isForceFeedback==1)
         //  JOY_PLAYFORCE(GamePad[0].id);
         end
         if (posi[z].animación==5 ) ener-=20; 
         posl.x=posl.x+get_distx( movedi, -100); posl.y=posi[z].pos_m.y;  posl.z=posl.z+get_disty(movedi , -100);  M8E_POSMODEL(modelo_enem, &posl); end
                 end  end                         
         if (ener<0) from z= 31 to 45;  M8E_MODELANIMSETFRAME(modelo_enem, z); frame; end   M8E_MODELREMOVE(modelo_enem);   signal(id,s_kill);  end   
////aquí está el problema, según esto, al llegar
*/la energía a 0 debería animarlo para que muera, luego removería el model de la memoria y mataría el
proceso, anteriormente funcionaba bien, pero actualmente me saca, como cuando intentas darle órdenes a un model
que ya ha sido borrado, el problema es que nadie le está dando órdenes al model, pues el model
se guarda en un avariable local, y el proceso muere. Aunque mate el proceso con un break; no logro que
deje de sacarme. Algo raro es que puedes matar un enemigo y se elimina el model,y todo bien, pero cuando
intentas matar otro, entonces si se presenta el problema. bueno, ahí está, espero les sea de ayuda si es
en verdad un bug, y si el error es mío, entonces: ayuda, porfa.../*
   frame; end
end 
         [/code]
         
         
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

l1nk3rn3l

/*
  MODE8 ENHANCED ENGINE         
  ColDev (C) 2004   
  ----------------------                 
 
  -M8EE 3D Engine, Fase Beta -
 
           y
          ^  z
            | /
          |/
            *---->x

  License: GNU/GPL

                         
                         
  desc: basic test
 
  Prueba de modelos varios
*/

include "m8ee.h"


global 
  camara;   
  _Pos3D pos;
  textura;
end;


process CrearModelo()
private
   modelo;
   
begin         
   modelo=m8e_LOADCUBEMODEL(20); //load model                               

   M8E_LOADTEXMODEL(modelo, textura);//load texture   
   M8E_MODELSETMATERIAL(modelo, EMF_LIGHTING,0);//not light in material
   pos.x=rand(10,150);  pos.y=10; pos.z=rand(10,150);
   M8E_POSMODEL(modelo,&pos); //position  (model, pos3d)
 
  loop
    if (rand(1,20)==5) break; end;   
   
    frame;
  end;
 
  m8e_modelremove(modelo);
end;

     
   
begin

  full_screen=false; 
  set_mode (640,480,16);                     
//  set_fps (0,0); //max.   
 
  M8E_INIT(0); //init engine with any driver
   
if (M8E_SCREENEXIST() <> 1)//error?
   WRITE (0,1,10,0, "Error: M8ee Init-failed." )  ;   
   while (!key(_esc)) frame; end;
   exit();
end;
         
   textura=M8E_LOADTEXTURE("media\Luigi.pcx");//lo carga una sola vez , para no saturar la memoria         
         
//--------------------------------------------             
   camara=M8E_ADDCAM(550,150,-150,   0,5,0);  //add camera  (posx,y,z,   targetx,y,z)
//--------------------------------------------     
               
  while ( (!key(_esc))  )   
     if (rand(1,5)==5) CrearModelo(); end;
 
     M8E_RENDER(0,  55,155,55);    //(alpha, r,g,b)     
     frame;       
  end;                     
 
let_me_alone();
   
  //free resources
M8E_FREE();   

end

                       




Prg

ok, lo pruebo y te digo, ok?
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

l1nk3rn3l


Prg

wow, veo que agregaron un tutorial para el path find y 2 ejemplos nuevos. me muero de ganas por continuar con mi juego en 3d y agregarle todo lo nuevo que han agregado. será hasta el jueves que me traigan mi nueva tarjeta. gracias amigo por avisarme. de mientras estudiaré el pdf. y el nuevo código de las colisiones que acabo de ver. Felicidades por todo lo que están logrando en las librerías.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

l1nk3rn3l

no el pathfind por el momento no esta disponible
el pdf explica las ideas que tenemos para desarrollar la
libreria de inteligencia artificial, ya que actualmente
es demasiado lenta para usarla con bennu, por lo tanto
solo esta disponible el borrador del diseño (que es el pdf)

Prg

oye, y ¿habrá alguna forma de crear un rayo, como en una tormenta, para implementarlo en un poder?
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

l1nk3rn3l

si con un billboard o sprite3d
recuerda que hay sprites 2d

el que se necesita es un sprite3d
hay hay un ejemplo de eso creo que es test07 09
no recuerdo

si no usa una particula para crear el efecto de rayo

por el momento no tengo tiempo estoy en examenes
asi que no te puedo ayudar en este instante

Prg

ok, está bien amigo, no te apures, so lo que es. ¡Suerte en tu examen!
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

auxiliooooooo!!!!!!! por qué me muestra este error  . El error no sucede con la versión R15032008, pero de la R21032008 en adelante sí, antes de que me la formatearan y le quitaran la tarjeta podía ver los ejemplos de las partículas que me enviaste, pero ahora no puedo, le puse una de 250 mb de video, y sigue sin funcionar, ¿Qué hago?
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

ok, es éste...... Error in file m8ee.h at line 12: Library bennu3d not found ("bennu3d")
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

puede faltar alguna libreria de la que depende la lib bennu3d...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2