0 Members and 1 Guest are viewing this topic.
Tout d'abord j'ai aucune idée comment marche spacecraft ne l'utilisant pas moi-même. Avant de faire trois pagesde réponses inutile il va falloir qu'on précise un peut le truc.
picto a écrit:Un problème plus basique, mais je ne m'en sors pas.C'est sur l'exemple Shuttle.pb de Orbitersound.sdk.
int MerciDan=0;int PictoContent=0; PictoContent+=MerciDan
Momo a écrit:bon aller je commence:comment s'y prendre pour crée un payload sur une DLL, configuré de la même façon que le spacecraft3
const VECTOR3 OFS_payload = { X,Y,Z};void vessel::clbkSetClassCaps (FILEHANDLE cfg){...../....addMesh ("vessel" ) ; //pour vesseladdMesh ("payload" ) , (OFS_payload); //pour le payload + sa position}void vessel::jettison() { VESSELSTATUS2 vs; memset (&vs, 0, sizeof(vs)); vs.version = 2; GetStatus (&vs); oapiCreateVesselEx ("payload", "payload", &vs); delMesh ("payload"); }int vessel::clbkConsumeBufferedKey (DWORD key, bool down, char *kstate) { if (!down) return 0; // seulement touches enfoncées switch (key) { case OAPI_KEY_J: // Jettison du payload jettison(); return 1; return 0; }}
no matter a écrit:Ensuite, je n'ai pas encore testé mais je pense qu'il faut créer une nouvelle fonction du style:void MonVaisseau:SeparatePayload (){...}avec un oapiCreateVesselEx() pour créer le nouveaux vaisseau à la position voulue avec une vitesse relative au vaisseau dont il se sépare et deuxièmement, un DelMesh() afin desupprimer le mesh en trop.
// TRUC: on peut loader d'autres meshes et les faires apparaitre/disparaitre // au cours de la simulation. Utile pour par exemple afficher le mesh des // astronautes suivant si ils sont en cabine ou pas. Par exemple la ligne ci-dessous insere // un mesh "MesAstronautes.msh" dans le slot "2" et le fait apparaitre // SetMeshVisibilityMode(InsertMesh(oapiLoadMeshGlobal ("MonAddon\\MesAstronautes"),2),MESHVIS_EXTERNAL); // Plus tard dans votre code ceci le fait disparaitre: SetMeshVisibilityMode(2,MESHVIS_NEVER); // et ceci le fait apparaitre : SetMeshVisibilityMode(2,MESHVIS_EXTERNAL); // (Notez le "2" est l'index du slot ou le mesh a été chargé)
no matter a écrit: je ne sais pas comment attribuer une vitesse de libération
no matter a écrit:DelMesh sera donc a remplacer
DanSteph a écrit:Sinon j'ai un prog perso "VcBackup" qui sert aux sauvegardes incrementale,l'avantagec'est que tu peu exclure les fichiers temporaires de compilation qui sont énorme et ne servent a rien. (je veux dire a part pour compiler)Dan
picto a écrit:Et on peut le trouver quelque part ce programme ?
D:\MesBackup\001_Debut_projetD:\MesBackup\002_Cool_j'ai_rajouté_le_mesh_VCD:\MesBackup\003_avant_modif_importante_boutons_VCD:\MesBackup\004_ok_modif_marche
no matter a écrit:Un autre truc que je n'ai pas compris c'est memset (&vs, 0, sizeof(vs)); . C'est nécessaire mais je n'ai rien trouvé dans le sdk d'orbiter, je me suis donc contenté de recopié bêtement.
GL-01:DeltaGliderIVCargoPayload DGIVMTKSSAT
bool clbkVCRedrawEvent (int id, int event, SURFHANDLE surf);
bool MonAddon::clbkVCRedrawEvent (int id, int event, SURFHANDLE surf){ int i; switch (id) { case AID_HORIZON: RedrawPanel_Horizon (surf); return true; } return false;}
#include "MaClasseAddon.h"#include <math.h>extern GDIParams g_Param;void MonAddon::RedrawPanel_Horizon (SURFHANDLE surf){ POINT pt[4]; static double prange = RAD*30.0;...........
void RedrawPanel_Horizon (SURFHANDLE surf)(void) ;
class DeltaGlider: public VESSEL2 {public: DeltaGlider (OBJHANDLE hObj, int fmodel); ~DeltaGlider (); void RedrawPanel_Horizon (SURFHANDLE surf);
picto a écrit:J'ai essayé ça ...Code: [Select]void RedrawPanel_Horizon (SURFHANDLE surf)(void) ;dans MaClasseAddon.hEt à la compile, j'ai obtenu ça.error C2091: fonction retournée par la fonction