RILASCIATO ORBITER 2016!!! CLICCA QUI PER SCARICARLO
 
IndiceIndice  FAQFAQ  LinkLink  CercaCerca  RegistratiRegistrati  Accedi  
Accedi
Nome utente:
Password:
Connessione automatica: 
:: Ho dimenticato la password
FOI sui social networks
Argomenti simili
Siti Amici
Astronautica Ultima Speranza

AstronautiNEWS

Orbiter Forum

Tuttovola.org

Contatore Visite
Ultimi argomenti
» Rilasciato Anim8or versione 1.0
Da Ripley Ieri alle 22:31

» D3D9Client - il client grafico di Jarmonik
Da Ripley Ieri alle 17:26

» Nuova versione BETA di Orbiter
Da Ripley Ven 1 Set 2017 - 16:18

» Segnali di vita da Dansteph!
Da Ripley Gio 31 Ago 2017 - 0:06

» Multistage2015
Da fred18 Lun 28 Ago 2017 - 14:10

» Sviluppo di una base italiana - Sede ASVI
Da marcogavazzeni Dom 27 Ago 2017 - 21:19

» Terza missione di Paolo Nespoli nello spazio.
Da marcozambi Dom 27 Ago 2017 - 9:34

» Texfilms - Un nuovo canale streaming live
Da Ripley Dom 20 Ago 2017 - 20:14

» Nuove textures HRSC per Marte
Da wolf Ven 18 Ago 2017 - 12:02

» Domanda ridicola sui piani orbitali Terra-Luna
Da Ripley Mar 8 Ago 2017 - 7:29

» Space Shuttle Ultra - il vero Shuttle a casa vostra
Da wolf Gio 3 Ago 2017 - 21:17

» sound e carburante limitato
Da DDD Mer 2 Ago 2017 - 11:11

» Cambio indirizzo mail
Da Ripley Mar 1 Ago 2017 - 16:28

» [Risolto] Problema download XR Fleet
Da DDD Dom 23 Lug 2017 - 9:39

» [Risolto] Problema avviamento Orbiter
Da Ripley Sab 22 Lug 2017 - 21:12

» Buonasera, mi presento
Da Ripley Sab 22 Lug 2017 - 14:40

» Nuove navi in sviluppo per la flotta XR: XR0, XR3, XR4
Da wolf Ven 7 Lug 2017 - 12:24

» Traduzione ITA manuale operativo di volo flotta XR
Da Ripley Ven 7 Lug 2017 - 11:44

» GeneralVehicle
Da marcogavazzeni Gio 29 Giu 2017 - 20:24

» Vittime del lancio della Progress MS-06
Da Ripley Sab 24 Giu 2017 - 22:50


Condividere | 
 

 domanda c++ "contare" i membri a bordo

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
simone
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1005
Età : 21
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
Vedi 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à : 34
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
Vedi il profilo dell'utente
simone
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1005
Età : 21
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
Vedi 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à : 21
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
Vedi 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à : 34
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
Vedi 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
Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 di 1
 Argomenti simili
-
» validità domanda di laurea
» domanda di laurea
» AIUTO! ERRORE compilazione domanda adisu
» RICHIESTA RETTIFICA DOMANDA
» Assemblea Generale Albo Gestori Ambientali Torino, giovedì 9 e venerdì 10 giugno 2011

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: