RILASCIATO ORBITER 2016!!! CLICCA QUI PER SCARICARLO
 
IndiceIndice  FAQFAQ  LinkLink  CercaCerca  RegistrarsiRegistrarsi  Accedi  
Accedi
Nome utente:
Parola d'ordine:
Connessione automatica: 
:: Recuperare la parola d'ordine
FOI sui social networks
Argomenti simili
Siti Amici
Astronautica Ultima Speranza

AstronautiNEWS

Orbiter Forum

Tuttovola.org

Contatore Visite
Ultimi argomenti
» Problema installazione D3D9
Da DDD Oggi a 20:23

» Accordo Altec - Virgin Galactic
Da Pete Conrad Oggi a 19:43

» Sviluppo di una base italiana - Sede ASVI
Da Andrew Oggi a 18:45

» "Starlab" space station
Da Andrew Oggi a 12:47

» Concetto "Red Antares"
Da Andrew Oggi a 12:15

» Mars One, la "colonizzazione di Marte" slitta di 4 anni...
Da Andrew Oggi a 11:24

» MARS - National Geographic Channel
Da Andrew Oggi a 11:13

» Ancora un fallimento per il Progress
Da Ripley Oggi a 0:39

» Propulsione Spaziale
Da m.a.s Oggi a 0:29

» R.I.P. John Glenn
Da Fausto Ieri a 22:53

» Shuttle Fleet R.I.P.
Da wolf Gio 8 Dic 2016 - 15:46

» Rilasciato Space Shuttle Ultra 4.0 (per O2010)
Da wolf Mer 7 Dic 2016 - 21:15

» L'uomo su Mercurio
Da Andrew Mar 6 Dic 2016 - 20:05

» Stephen Hawking ricoverato per problemi respiratori
Da Fausto Sab 3 Dic 2016 - 20:42

» Avete bisogno di un un razzo vettore?
Da Matt44 Sab 3 Dic 2016 - 17:57

» Sospensioni motore DGIV da tastiera
Da Ripley Mer 30 Nov 2016 - 12:39

» Saluti!
Da Fausto Mer 30 Nov 2016 - 9:13

» Ma che Luna o Marte.. colonizziamo Titano!
Da Andrew Dom 27 Nov 2016 - 12:27

» Serie TV -The Expanse
Da m.a.s Sab 26 Nov 2016 - 12:27

» Paolo Nespoli di nuovo sulla ISS con la missione VITA
Da Dany Sab 26 Nov 2016 - 9:09


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


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

MessaggioOggetto: 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
Vedere il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
fred18
Add-on Developer
Add-on Developer


Numero di messaggi : 923
Età : 33
Località : La Spezia
Data d'iscrizione : 04.01.12

MessaggioOggetto: 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
Vedere il profilo dell'utente
simone
Add-on Developer
Add-on Developer


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

MessaggioOggetto: 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
Vedere il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
simone
Add-on Developer
Add-on Developer


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

MessaggioOggetto: 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
Vedere il profilo dell'utente http://www.facebook.com/profile.php?cropsuccess&id=100000660
fred18
Add-on Developer
Add-on Developer


Numero di messaggi : 923
Età : 33
Località : La Spezia
Data d'iscrizione : 04.01.12

MessaggioOggetto: 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
Vedere il profilo dell'utente
Contenuto sponsorizzato




MessaggioOggetto: Re: domanda c++ "contare" i membri a bordo   Oggi a 21:18

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

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