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
» "Starlab" space station
Da wolf Oggi a 20:37

» Sviluppo di una base italiana - Sede ASVI
Da marcogavazzeni Gio 16 Feb 2017 - 18:25

» Dyna-Soar declassificato!
Da Andrew Dom 29 Gen 2017 - 12:14

» Apollo 1: cinquant’anni fa, la prima tragedia spaziale americana
Da Ripley Ven 27 Gen 2017 - 14:46

» Informazione su Pad24_UR500_O2016_v2
Da Ash Mar 24 Gen 2017 - 22:47

» Happy birthday, mr. Aldrin!
Da Pete Conrad Ven 20 Gen 2017 - 12:00

» Base Sync mfd, qualche problema
Da Ripley Gio 19 Gen 2017 - 12:03

» Morto Eugene Cernan
Da Ripley Mer 18 Gen 2017 - 10:52

» MARS - National Geographic Channel
Da m.a.s Mer 11 Gen 2017 - 3:46

» Questa foto non l'avevo mai vista
Da Pete Conrad Mar 10 Gen 2017 - 19:17

» XP + O2016 + DGIV/UCGO - Crash on Eva
Da Ash Lun 9 Gen 2017 - 18:21

» Ciao a tutti !
Da Andrew Dom 8 Gen 2017 - 10:32

» Felice Anno Nuovo 2017 :)
Da Pete Conrad Dom 1 Gen 2017 - 15:31

» Rilasciato NASSP 7.0 RC
Da Diabolos Mer 28 Dic 2016 - 19:15

» Un Sereno Natale a Tutti! :)
Da Ripley Dom 25 Dic 2016 - 23:24

» Ciao a tutti
Da m.a.s Sab 24 Dic 2016 - 1:58

» Trasmissione "In diretta dalla Luna" su Focus
Da m.a.s Sab 24 Dic 2016 - 1:54

» Configurazione in stile TKS / Gemini MOL
Da Almaz Mer 21 Dic 2016 - 16:46

» Allunaggio DGIV
Da Ripley Lun 19 Dic 2016 - 1:39

» Stasera eclissi totale di Luna!
Da Pete Conrad Sab 17 Dic 2016 - 22:52


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 : 924
Età : 34
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 : 924
Età : 34
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   

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: