0 Members and 1 Guest are viewing this topic.
Bibi Uncle a écrit:mais c'était tellement facile à installé, j'en riait.
je me demandais comment on pouvit exporter les animations en KeyFrame.
extraordinaire ce moteur physique, j'ai jamais rien vu de pareil
HWND OGLAClient::clbkCreateRenderWindow() // fonction Orbiter68 {69 char cbuf[256];70 WriteDbg("clbkCreateRenderWindow");71 VIDEODATA *data=GetVideoData();72 hRenderWnd=GraphicsClient::clbkCreateRenderWindow();73 74 ogla.initgl(hRenderWnd,&viewW,&viewH,DWORD(data));// fonction d'ogla , remplacer par Irrlicht ?75 76 WriteLog("3D environment ok");77 sprintf(cbuf,"Viewport: %s %d x %d x %d",bFullscreen?"Fullscreen":"Window",viewW,viewH,viewBPP);78 WriteLog(cbuf);79 return hRenderWnd;80 }
//############################################################################//17 struct ogla_interface{18 //In19 void (__stdcall *initgl) (HWND hwnd,DWORD *w,DWORD *h,DWORD vd);20 int (__stdcall *render) (int fps);21 SURFHANDLE (__stdcall *loadtex) (const char* fnam,DWORD flags);22 bool (__stdcall *reltex) (SURFHANDLE s);23 HDC (__stdcall *getsdc) (SURFHANDLE s);24 void (__stdcall *relsdc) (SURFHANDLE s,HDC dc);25 bool (__stdcall *gsrfsiz) (SURFHANDLE surf,DWORD *w,DWORD *h);26 SURFHANDLE (__stdcall *maksrf) (DWORD w,DWORD h,SURFHANDLE tmp,int tp);27 bool (__stdcall *fillsr) (SURFHANDLE surf,DWORD tx,DWORD ty,DWORD w,DWORD h,DWORD col);28 void (__stdcall *out2d) ();29 void (__stdcall *firstrun)();30 void (__stdcall *meshop) (int tp,DEVMESHHANDLE *hMesh,VISHANDLE vis,SURFHANDLE tex,DWORD grpidx,GROUPEDITSPEC *ges);31 void (__stdcall *render2D)(SURFHANDLE *hSurf,MESHHANDLE hMesh,MATRIX3 *T,int transparent);32 void (__stdcall *addps) (int tp,DWORD es,PARTICLESTREAMSPEC *pss,OBJHANDLE hVessel,const double *lvl,const VECTOR3 *ref,const VECTOR3 *dir);33 bool (__stdcall *blit) (int tp,SURFHANDLE tgt,DWORD tgtx,DWORD tgty,DWORD tgtw,DWORD tgth,SURFHANDLE src,DWORD srcx,DWORD srcy,DWORD srcw,DWORD srch,DWORD flag);34 void (__stdcall *keydown) (WORD k,BYTE sh);35 void (__stdcall *keyup) (WORD k,BYTE sh);36 void (__stdcall *mouse) (int t,int x,int y,BYTE sh);37 int (__stdcall *o2_op) (int,SURFHANDLE,int,int,int,int,const char*,DWORD);38 39 //Out 40 void (__cdecl *render_font) (int fntn,char *str,int mode);41 int (__cdecl *text_width) (int fntn,char *str);42 DWORD (__cdecl *getbase) (OBJHANDLE _hObj);43 void (__cdecl *visop) (int op,OBJHANDLE ob,VISHANDLE v);44 SURFHANDLE (__cdecl *vcsurf) (int op,int n,void* mf);45 void* (__cdecl *getconfigparam)(DWORD paramtype);46 SURFHANDLE (__cdecl *getmsurf) (int tp,int p);47 int *font_mode;48 int show_fps;49 };50 //############################################################################//
//############################################################################//277 DLLCLBK void InitModule(HINSTANCE hDLL){gc=new OGLAClient(hDLL); if(!oapiRegisterGraphicsClient(gc)) {delete gc;gc=0;}loadint();}278 DLLCLBK void ExitModule(HINSTANCE hDLL) { if(gc){oapiUnregisterGraphicsClient(gc);delete gc; gc=0;}FreeLibrary(hlib);}279 //##########################################################################
Un concept important de la biologie est le rapport structure/fonction. C'est la relation ente la manière dont une partie est faite (structure) et le rôle qu’elle a à remplir pour cet organisme (fonction). Tout être vivant peut être décrit comme un système de structure obéissant aux lois de la physique et de la chimie. Cependant, comme le raconte Jacques Monod dans Le hasard et la nécessité, ce système physico-chimique se distingue des autres par trois aspects: ...
ca a l'air excellent l'éditeur d'irlich. c'est souvent ce qui manque aux moteurs 3d.
#include #include "windows.h"using namespace irr;class MyEventReceiver : public IEventReceiver{public: // This is the one method that we have to implement virtual bool OnEvent(const SEvent& event); // This is used to check whether a key is being held down virtual bool IsKeyDown(EKEY_CODE keyCode) ; MyEventReceiver(); private: // We use this array to store the current state of each key bool KeyIsDown[KEY_KEY_CODES_COUNT];};
#include "VulcanInput.h"// This is the one method that we have to implement bool MyEventReceiver:: OnEvent(const SEvent& event) { // Remember whether each key is down or up if (event.EventType == irr::EET_KEY_INPUT_EVENT) KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown; return false; } bool MyEventReceiver::IsKeyDown(EKEY_CODE keyCode) { return KeyIsDown[keyCode]; } MyEventReceiver::MyEventReceiver() { for (u32 i=0; i KeyIsDown[i] = false; }
DLLCLBK void opcDLLInit (HINSTANCE hDLL){ double campos=-200.0; // create device MyEventReceiver *receiver=new MyEventReceiver();...if(receiver->IsKeyDown(irr::KEY_UP)) { campos+=0.1; cam1->setPosition(vector3df(0,5,campos)); } if(receiver->IsKeyDown(irr::KEY_DOWN)) { campos-=0.1; cam1->setPosition(vector3df(0,5,campos)); }...