CLICCA QUI PER SCARICARE ORBITER 2016
 
IndiceIndice  LinkLink  CercaCerca  RegistratiRegistrati  Accedi  
Accedi
Nome utente:
Password:
Connessione automatica: 
:: Ho dimenticato la password
FOI è sui social
Parole chiave
Nassp Fausto tastiera jarvis multiplayer AMSO autofcs XRSound installare IMFD Soyuz Shuttle apollo SPACE OrbiterSound TransX Antares ummu mars Rientro DGIV d3d9 Skin comandi Eridanus lander
Siti amici
AstronautiNEWS

ForumAstronautico

Orbiter Forum

Tuttovola
Ultimi argomenti
» OMP - Orbiter Multiplayer Project - Installazione
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mer 12 Feb 2020 - 20:28

» Kerbal Space Program 2
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mer 12 Feb 2020 - 15:34

» Ciao a tutti cari vecchi miei amici
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Claudio00 Lun 10 Feb 2020 - 21:47

» D3D9 - il client grafico di Jarmonik
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 3 Feb 2020 - 17:50

» Blender Mesh Tools add-on
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Ven 17 Gen 2020 - 11:07

» Lunar Transfer MFD - LTMFD
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mer 25 Dic 2019 - 10:13

» AMSO-2016 rilasciato!
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 23 Dic 2019 - 16:10

» SoundBridge
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mar 17 Dic 2019 - 15:47

» Porting AMSO per Orbiter2016
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Tiger14 Ven 13 Dic 2019 - 15:37

» AMSO 1.23 rilasciato (per Orbiter 2010-P1)
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 25 Nov 2019 - 12:49

» [Risolto]Come aggiungere una base?
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa spino871 Sab 23 Nov 2019 - 15:15

» Novità
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Andrew Sab 21 Set 2019 - 23:36

» [Risolto]DGIV su Orbiter 2016 si può?
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa spino871 Gio 5 Set 2019 - 16:57

» Problema di DTmin con Sync Orbit MFD
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Gio 29 Ago 2019 - 12:39

» I video di Orbiter Live Missions sono tutti persi!!
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Pete Conrad Mer 28 Ago 2019 - 8:14

» Poderosa 2017
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Andrew Mar 27 Ago 2019 - 16:28

» Rientrare sulla terra
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 26 Ago 2019 - 16:49

» Interplanetary MFD
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 26 Ago 2019 - 0:59

» Come far funzionare AutoFCS su Orbiter 2010
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Dom 25 Ago 2019 - 23:57

» Nuova versione BETA di Orbiter
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Andrew Dom 25 Ago 2019 - 0:49

» Più di due mesi senza post??
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Andrew Gio 22 Ago 2019 - 7:57

» [Risolto]Uso corretto dei motori SCRAM
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa spino871 Mer 21 Ago 2019 - 10:12

» [Risolto]Come cambiare una scorciatoia da tastiera per la flotta XR
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa spino871 Mar 20 Ago 2019 - 18:01

» [Risolto]Bug su Radio/Mp3 MFD con Orbiter2016
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Ven 16 Ago 2019 - 14:14

» Documentario PBS cinquantenario Apollo 11
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Atlantis Mar 30 Lug 2019 - 10:48

Contatore Visite

Condividi
 

 [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro

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

Numero di messaggi : 1010
Età : 23
Località : Catania
Data d'iscrizione : 12.02.10

Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro Empty
MessaggioTitolo: [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro   Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptySab 15 Giu 2013 - 15:47

appena finito di implementare la funzione nel mio machiavelli ho pensato che metterla in questa sezione ,e ampliarla sempre più in modo da farla diventare un manuale per chi come me è alle prime armi con il c++,sarebbe stata una buona idea quindi cominciamo


INTANTO i credits
la formula per il calore è stata presa da una discussione su OF appena la ritrovo dò i giusti credits
per quanto riguarda la stringa che chiude l'attuale dll i credits vanno a Fred


//questa funzione permette alla dll di aggiornare in ogni istante i valori
//che inseriremo subito sotto,l'ideale per il nostro scopo
void machiavelli::clbkPostStep(double simt,double simdt,double mjd)
{


//la formula che permette di trovare la temperatura
//GetDynPressure() e GetAirspeed() leggono i valori attuali corrispondenti
//in tempo "reale"
double heat = (0.5*GetDynPressure() * (GetAirspeed()))/100000;
//
//questo codice invece ci dice che se la temperatura va sopra i 600 kelvin si attiva
//la nostra funzione 
if (heat>600){
//
///////////creazione primo detrito tramite un comando jettison (vedi avanti) 
Jettison();
////chiusura dll attuale
OBJHANDLE hdel;
hdel=GetHandle();
oapiDeleteVessel(hdel);
}else{}
};


ATTENZIONE la stringa di chiusura della dll va messa sempre alla fine della nostra funzione
per ovvi motivi


la funzione jettison in ordine,inserisce dei puntatori che servono a calcolare la velocità al momento del distacco e inizializzano una nuova dll
esterna a quella del modulo attuale

il codice da usare è questo

void machiavelli::Jettison()
{
VESSELSTATUS2 vs;
memset(&vs,0,sizeof(vs));
vs.version=2;
GetStatusEx(&vs);

VECTOR3 ofs = _V(3,6,0);
VECTOR3 rofs, rvel = {vs.rvel.x, vs.rvel.y, vs.rvel.z};
VECTOR3 vel = {0,0,2};
Local2Rel (ofs, vs.rpos);
GlobalRot(vel,rofs);
vs.rvel.x=rvel.x+rofs.x;
vs.rvel.y=rvel.y+rofs.y;
vs.rvel.z=rvel.z+rofs.z;

//il nome del file .cfg del nuovo mezzo
oapiCreateVesselEx("machiavelli2", "machiavelli2", &vs);

//altra funzione Jettison in modo da creare più pezzi
Jettison12();
};


da notare che così creeremo un solo pezzo che si distaccherà ecco il perchè del richiamo ad un'altra funzione Jettison nell'ultima riga

VECTOR3 ofs = _V(3,6,0); cambiando questo valore cambierai la direzione di espulsione del detrito dando l'effetto esplosione


per quanto riguarda la visuale (che andrebbe "persa" una volta distrutto il modulo principale,creiamo una sola funzione jettison che abbia un puntatore 

OBJHANDLE h;

e che carichi così il nuovo detrito

h=oapiCreateVesselEx("machiavelli1", "machiavelli1", &vs); 

alla fine di questa funzione mettiamo

oapiSetFocusObject(h);


se qualcosa non è chiaro o se avete suggerimenti scrivete pure!
Torna in alto Andare in basso
https://www.facebook.com/profile.php?cropsuccess&id=100000660
 
[c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro
Torna in alto 
Pagina 1 di 1

Permessi di questa sezione del forum:Non puoi rispondere agli argomenti in questo forum
Forum Orbiter Italia :: Progetti della community :: Sviluppo Add-on :: Orbiter SDK-
Vai verso: