CLICCA QUI PER SCARICARE ORBITER 2016
 
IndiceIndice  FAQFAQ  LinkLink  CercaCerca  RegistratiRegistrati  Accedi  
Accedi
Nome utente:
Password:
Connessione automatica: 
:: Ho dimenticato la password
FOI è sui social
Parole chiave
manuale Orbiter Basesync Antares Pegasus Fleet OrbiterSound autofcs Shuttle Flotta 2016 addon Missione jarvis sound d3d9 Rientro Nassp DGIV Base Poderosa apollo Universal lander TransX AMSO
Siti amici
AstronautiNEWS

ForumAstronautico

Orbiter Forum

Tuttovola
Ultimi argomenti
» Costruiranno uno spazioporto per suborbitali a Taranto?
Da Pete Conrad Mar 15 Mag 2018 - 18:44

» D3D9 - il client grafico di Jarmonik
Da Ripley Sab 12 Mag 2018 - 23:37

» Risorse per l'ambiente di sviluppo Visual Studio 2017 (in Win10)
Da Ripley Gio 10 Mag 2018 - 16:03

» [WIP] Missione San Marco 1
Da Dany Gio 26 Apr 2018 - 0:10

» Conversione carichi DGIV- UCGO
Da Franz Sab 21 Apr 2018 - 19:55

» Domanda punti di Lagrange
Da Ripley Gio 19 Apr 2018 - 7:56

» Addon russi di igel e Thorton incompatibili con Orbiter2016?
Da Ripley Mer 18 Apr 2018 - 14:34

» X-Plane 11
Da masdeca Mer 18 Apr 2018 - 11:57

» "Starlab" space station
Da Franz Lun 16 Apr 2018 - 21:53

» Come si mette nasa tv?
Da Francy03 Sab 14 Apr 2018 - 18:16

» Vista interna Delta Glider
Da Franz Ven 13 Apr 2018 - 18:07

» Nuova versione di TransX (Enjo)
Da Ripley Lun 9 Apr 2018 - 15:48

» ModuleMessagingExt v2
Da Ripley Dom 8 Apr 2018 - 21:05

» BaseSync MFD
Da Ripley Dom 8 Apr 2018 - 20:08

» BurnTimeCalc MFD
Da Ripley Ven 6 Apr 2018 - 1:20

» Launch MFD
Da Ripley Ven 6 Apr 2018 - 0:51

» Glideslope 2 MFD
Da Ripley Gio 5 Apr 2018 - 8:53

» Rilasciato XRSound, il nuovo sistema audio
Da Ripley Lun 12 Mar 2018 - 12:42

» Sviluppo di una base italiana - Sede ASVI
Da Franz Gio 1 Mar 2018 - 10:47

» Dalla Terra alla Luna - Serie TV
Da m.a.s Dom 25 Feb 2018 - 22:21

» Problema con D3D9Client Beta 25.4
Da Pietrogramma Dom 25 Feb 2018 - 16:28

» Intervista (finta) a Samantha Cristoforetti
Da Pete Conrad Sab 24 Feb 2018 - 18:25

» Mission to Mars
Da Edward Sab 24 Feb 2018 - 15:20

» oMMU, l'alternativa per la gestione dell'equipaggio!
Da Edward Gio 22 Feb 2018 - 13:13

» Traduzione ITA manuale operativo di volo flotta XR
Da Ripley Mer 21 Feb 2018 - 16:16

Contatore Visite

Condividi | 
 

 domanda c++ "contare" i membri a bordo

Andare in basso 
AutoreMessaggio
simone
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1005
Età : 22
Località : Catania
Data d'iscrizione : 12.02.10

MessaggioTitolo: domanda c++ "contare" i membri a bordo   Dom 14 Set 2014 - 3:50

Salve a tutti  Forza , volevo chiedervi una cosa legata ad UMmu

Allora

Volevo fare in modo che quando entri nella mia nave un astronauta la dll inserisca nello scenario una mesh ad una data posizione

ho quindi fatto in modo che ad ogni step la dll faccia il conto di quanti membri sono a bordo

Codice:

void machiavellism::clbkPostStep(double simt, double simdt, double mjd)
{

//in testttttttt (conta dei membri a bordo)
 if (Crew.GetCrewTotalNumber() == 1){ member = 1; };
 if (Crew.GetCrewTotalNumber() == 2){ member = 2; };
 if (Crew.GetCrewTotalNumber() == 3){ member = 3; };
 if (Crew.GetCrewTotalNumber() == 4){ member = 4; };

}


ho definito ovviamente una variabile chiamata member e fin qui tutto a posto (già testato a video funziona),
ora il problema si pone quando carico la mesh, utilizzo questo

Codice:

VECTOR3 ofs2 = _V(6, 0, 8.8);
 if (member == 2){ AddMesh("machiavelli\\machiavellig", &ofs2); };

fosse per lui questo codice funzionerebbe ma non so dove poterlo mettere, se messo in clbkpoststep il programma carica di continuo la mesh (con perdita di fps enorme)

se lo metto tra le altre mesh (in classcaps) ovviamente non va proprio in quanto non aggiornata ad ogni frame

Sicuramente sbaglio io la posizione,attendo vostre risposte e buone orbite a tutti!!!
Tornare in alto Andare in basso
Visualizza il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
fred18
Add-on Developer
Add-on Developer


Numero di messaggi : 939
Età : 35
Località : La Spezia
Data d'iscrizione : 04.01.12

MessaggioTitolo: Re: domanda c++ "contare" i membri a bordo   Lun 15 Set 2014 - 15:38

Ciao Simone,

non ho sottomano il codice del TG, ma ci sono un po' di punti che avevo risolto riguardo a questo tema e se non ricordo male facevo all'incirca così:

anzitutto in classcaps carichi tutte le mesh ma le metti a visibilità 0

poi controlli al primo giro quanti sono gli astronauti a bordo e rendi visibili solo quelli.

poi ti sconsiglio di fare il check ad ogni frame, si perdono tantissimi fps! la cosa migliore è che ogni volta che un astronauta viene tolto od aggiunto (e mi pare che sia una cosa che con ummu si gestisce bene) rifai il check di quanti sono e rendi visibili quelli che devono essere visibili.
Darò comunque un'occhiata al codice del tg per vedere se c'è qualcosa che può aiutarti.

Tornare in alto Andare in basso
Visualizza il profilo dell'utente
simone
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1005
Età : 22
Località : Catania
Data d'iscrizione : 12.02.10

MessaggioTitolo: Re: domanda c++ "contare" i membri a bordo   Lun 15 Set 2014 - 17:18

sisi in un colpo di lucidità ieri mi era venuto in mente di usare Meshvisibilitymode (o qualcosa del genere)

Cosa intendi per non farlo ad ogni frame, avevo intuito che sarebbe stato possibile farlo soltanto on-demand ma ignoro come possa farlo, ci studio e vi aggiorno !
Tornare in alto Andare in basso
Visualizza il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
simone
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1005
Età : 22
Località : Catania
Data d'iscrizione : 12.02.10

MessaggioTitolo: Re: domanda c++ "contare" i membri a bordo   Mar 16 Set 2014 - 1:24

UPDATE:

codice funzionante implementato nel prestep,consigli e suggerimenti ben accetti

Codice:

void machiavellism::clbkPreStep(double simt, double simdt, double mjd){


//in testttttttt (conta dei membri a bordo)
if (Crew.GetCrewTotalNumber() == 0){ member = 0; };
if (Crew.GetCrewTotalNumber() == 1){ member = 1; };
if (Crew.GetCrewTotalNumber() == 2){ member = 2; };
if (Crew.GetCrewTotalNumber() == 3){ member = 3; };
if (Crew.GetCrewTotalNumber() == 4){ member = 4; };

if (member == 1) {
   SetMeshVisibilityMode(3, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(4, MESHVIS_NEVER);
   SetMeshVisibilityMode(5, MESHVIS_NEVER);
   SetMeshVisibilityMode(6, MESHVIS_NEVER);
}

if (member == 2)

{
   SetMeshVisibilityMode(3, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(4, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(5, MESHVIS_NEVER);
   SetMeshVisibilityMode(6, MESHVIS_NEVER);
}

if (member == 3)


{
   SetMeshVisibilityMode(3, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(4, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(5, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(6, MESHVIS_NEVER);
}

if (member == 4){

   SetMeshVisibilityMode(3, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(4, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(5, MESHVIS_ALWAYS);
   SetMeshVisibilityMode(6, MESHVIS_ALWAYS);
};

if (member == 0){
   SetMeshVisibilityMode(3, MESHVIS_NEVER);
   SetMeshVisibilityMode(4, MESHVIS_NEVER);
   SetMeshVisibilityMode(5, MESHVIS_NEVER);
   SetMeshVisibilityMode(6, MESHVIS_NEVER);

}
}

Tornare in alto Andare in basso
Visualizza il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
fred18
Add-on Developer
Add-on Developer


Numero di messaggi : 939
Età : 35
Località : La Spezia
Data d'iscrizione : 04.01.12

MessaggioTitolo: Re: domanda c++ "contare" i membri a bordo   Mar 16 Set 2014 - 8:40

così però ad ogni frame lui imposta la visualizzazione delle mesh, ho trovato il codice del tg che funziona così:

conta gli ummu a bordo.

se al frame dopo il numero degli ummu è cambiato allora reimposta le visibilità delle mesh, altrimenti non fa niente, in modo che la simulazione venga ben bene alleggerita

Codice:


if(Crew.GetCrewTotalNumber()!=nummus){
   int q;
   for(q=0;q<Crew.GetCrewTotalNumber();q++){
      SetMeshVisibilityMode(ummu_idh[q],MESHVIS_VC);
      }
   for(q=Crew.GetCrewTotalNumber();q<8;q++){
      SetMeshVisibilityMode(ummu_idh[q],MESHVIS_NEVER);
      }
   }

nummus=Crew.GetCrewTotalNumber();



ovviamente nummus è un int da inizializzare a 0 (ovviamente non in post o prestep)
Tornare in alto Andare in basso
Visualizza il profilo dell'utente
Contenuto sponsorizzato




MessaggioTitolo: Re: domanda c++ "contare" i membri a bordo   

Tornare in alto Andare in basso
 
domanda c++ "contare" i membri a bordo
Tornare in alto 
Pagina 1 di 1

Permessi di questa sezione del forum:Non puoi rispondere agli argomenti in questo forum
Forum Orbiter Italia :: Orbiter Space Flight Simulator :: Sviluppo Add-on :: Orbiter SDK-
Andare verso: