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
Antares 2016 Flotta Shuttle AMSO DGIV launchpad autofcs blocca Universal apollo verticale Orbiter azimuth manuale texture Missione Nassp programma Rientro d3d9 lancio Poderosa Fleet jarvis Pegasus
Siti amici
Astronautica Ultima Speranza

AstronautiNEWS

Orbiter Forum

Tuttovola
Ultimi argomenti
» Salve a tutti
Da Francy03 Mar 16 Gen 2018 - 9:30

» "Softwarino" per una veloce visualizzazione 3D delle orbite
Da Ripley Mer 10 Gen 2018 - 14:59

» TransX - Problema raffigurazione nodi (ascendente e discendente)
Da schumifun Lun 8 Gen 2018 - 23:08

» [Risolto] Schermo bianco all'apertura degli scenari
Da Ripley Dom 7 Gen 2018 - 19:21

» [WIP] Missione San Marco 1
Da Francy03 Sab 6 Gen 2018 - 19:58

» Sviluppo di una base italiana - Sede ASVI
Da Francy03 Sab 6 Gen 2018 - 19:30

» Buon 2018 a tutto il FOI!
Da Pete Conrad Mar 2 Gen 2018 - 16:51

» Buon Natale
Da Franz Mer 27 Dic 2017 - 20:31

» Dalla Terra alla Luna - Serie TV
Da Pete Conrad Lun 25 Dic 2017 - 16:04

» Nuova versione BETA di Orbiter
Da Ripley Lun 11 Dic 2017 - 17:43

» Aggiornamento flotta XR
Da Ripley Lun 11 Dic 2017 - 12:45

» Ciao a tutti arrivo da Facebook
Da Ripley Dom 10 Dic 2017 - 23:00

» A cosa serve il LUA in orbiter?
Da Ripley Gio 7 Dic 2017 - 0:15

» Mi presento
Da Franz Sab 2 Dic 2017 - 15:11

» ciao a tutti
Da Francy03 Lun 27 Nov 2017 - 15:06

» Lander Lunare Abitabile Arcturus - sviluppo
Da Franz Sab 25 Nov 2017 - 22:43

» Ciao a tutti
Da Franz Ven 24 Nov 2017 - 10:21

» Hello Italians!
Da Francy03 Mer 22 Nov 2017 - 19:22

» Orbiter Sound 4.0 MFD crasha Orbiter2016
Da Ripley Dom 12 Nov 2017 - 22:26

» [Risolto] Jarvis non scaricabile
Da Ripley Mer 1 Nov 2017 - 0:12

» Cosa Vorreste Cambiare Del Forum?
Da Francy03 Gio 26 Ott 2017 - 17:24

» Ripley Administrator!
Da marcogavazzeni Sab 21 Ott 2017 - 7:43

» Rendezvous ISS "by the numbers"
Da wolf Ven 13 Ott 2017 - 12:31

» Ciao a tutti da Francy
Da Pete Conrad Ven 13 Ott 2017 - 7:18

» Salve a tutti
Da DDD Gio 5 Ott 2017 - 13:53

Argomenti simili
Contatore Visite

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à : 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
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à : 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
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: