Forum Orbiter Italia
Vuoi reagire a questo messaggio? Crea un account in pochi clic o accedi per continuare.


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
lander tastiera Rientro tutorial Nassp Shuttle Soyuz ummu kerbal IMFD SPACE apollo jarvis texture AMSO Fausto comandi OrbiterSound DGIV modellino Antares beta Eridanus autofcs d3d9 Skin
Siti amici
AstronautiNEWS

ForumAstronautico

Orbiter Forum

Tuttovola
Ultimi argomenti commentati
» [WIP] Sviluppo Arrow Freighter per Orbiter2016
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Gio 4 Feb 2021 - 10:14

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

» OrbiterSound 5.0 rilasciato
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 24 Ago 2020 - 13:17

» The return of OrbiterSound 5.0
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Dom 9 Ago 2020 - 23:56

» Extended Map MFD
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mer 5 Ago 2020 - 13:50

» SoundBridge
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Lun 6 Lug 2020 - 17:15

» Rilasciato XRSound, il nuovo sistema audio
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Dom 5 Lug 2020 - 0:05

» Orbiter in funzione su 2 PC
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Alex.Soyuz Mer 1 Lug 2020 - 19:08

» Devo interrompere l’attività FOI momentaneamente causa problemi personali
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Pete Conrad Mer 1 Lug 2020 - 14:36

» Canali vocali
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa LukeSweeX Mer 1 Lug 2020 - 2:39

» [chiuso] Orbiter in funzione su 2 PC
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mar 30 Giu 2020 - 20:10

» Forum Orbiter Italia su Astronauticast giovedì 18/06
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fabri91 Ven 19 Giu 2020 - 21:38

» mi presento
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Mer 17 Giu 2020 - 13:23

» La configurazione è dentro di te. Però è sbagliata...
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa FFabiani Mar 16 Giu 2020 - 12:04

» ISS per Orbiter 2016 in alta definizione
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Dom 14 Giu 2020 - 18:43

» Autopilot 172
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Dani77 Ven 12 Giu 2020 - 17:52

» Lhasa, Florida
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Gio 11 Giu 2020 - 21:14

» "Starlab" space station
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Pete Conrad Gio 11 Giu 2020 - 11:00

» Problemi avvicinamento ISS
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mer 10 Giu 2020 - 20:01

» Con Vessel Builder ora sviluppi i tuoi addon in pochissimo tempo!
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Mar 9 Giu 2020 - 17:05

» Schermate multiple Orbiter
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Ripley Mar 9 Giu 2020 - 14:17

» Apriamo un nuovo canale streaming OLM ?
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Mar 9 Giu 2020 - 10:48

» HiRes Textures & Beta
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Lun 8 Giu 2020 - 8:54

» Lander Lunare Abitabile Arcturus - sviluppo
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Dom 7 Giu 2020 - 22:26

» Antares 3.0
Rientro - [c++] utilizzare le variabili GetDynPressure()/GetAirspeed() per distruggere un mezzo in fase di rientro EmptyDa Fausto Sab 6 Giu 2020 - 23:40

Contatore Visite

 

 [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à : 24
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 in 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: