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

AstronautiNEWS

Orbiter Forum

Tuttovola
Ultimi argomenti
» Sviluppo di una base italiana - Sede ASVI
Da Dany Oggi alle 18:43

» [WIP] Missione San Marco 1
Da Dany Gio 14 Dic 2017 - 14:21

» 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 non funziona
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

» MOONSCAPE versione completa - documentario di Paolo Attivissimo
Da Ripley Gio 28 Set 2017 - 0:01

» Astronautica US chiude i battenti
Da Ripley Mer 27 Set 2017 - 23:52

» Rilasciato Anim8or versione 1.0
Da Pete Conrad Ven 22 Set 2017 - 14:39

» D3D9Client - il client grafico di Jarmonik
Da Ripley Mar 19 Set 2017 - 17:26

» Segnali di vita da Dansteph!
Da Ripley Gio 31 Ago 2017 - 0:06

» Multistage2015
Da fred18 Lun 28 Ago 2017 - 14:10

» Terza missione di Paolo Nespoli nello spazio.
Da marcozambi Dom 27 Ago 2017 - 9:34

Argomenti simili
Contatore Visite

Condividere | 
 

 [C++] Gestione animazioni MGROUP_SCALE

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
Matt44
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1218
Età : 39
Località : Bergamo
Data d'iscrizione : 13.04.11

MessaggioTitolo: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 13:37

Sto definendo un paracadute e come facevo con spacecraft3 ho utilizato SCALE, ed in questo caso MGROUP_SCALE. Ho però un problema non riesco a fermare l'animazione; per spiegarmi meglio la mia idea era di creare un animazione che rimpicciolisce la mesh del paracadute e poi farla andare al contrario... (da 1 a 0) solo che il paracadute si rimpicciolisce ma poi non torna più indietro.

Io sono partito da questo che ho trovato su OH

MGROUP_SCALE bay2 (0, LGrp2, 2, _V(8.111672,-6.521036,-54.86), _V(0,1,0));
Tornare in alto Andare in basso
Vedi il profilo dell'utente http://asvo.jimdo.com/
Fausto
Admin
Admin
avatar

Numero di messaggi : 7088
Età : 34
Località : Arcore (Milano)
Data d'iscrizione : 27.06.09

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 14:00

Aspetta, non ho capito: le due cose devono essere fatte da sole in sequenza o devi fare in modo che premendo il tasto l'animazione ritorni al punto di partenza?

_________________________________________________

Dategli una grande sfida, una che sembra impossibile. Dategli il desiderio di vincerla. Unite le due cose, e l'essere umano è capace di tutto

Jim Lovell
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Matt44
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1218
Età : 39
Località : Bergamo
Data d'iscrizione : 13.04.11

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 14:09

Vorrei che premendo il tasto l'animazione si attivi rimpicciolisca il paracadute e poi ripremendolo torni indietro, con TRANSALTE e ROTATE funziona perfettamente, con SCALE non funziona. Non capisco se devo fare qualcosa di differente.

static UINT Par1Grp[8] = {60,61,159,160,147,149,118,119};
static MGROUP_SCALE Par1 (0, Par1Grp, 8, _V(8.111672,-6.521036,-54.86), _V(0,1,0));
anim_pan1 = CreateAnimation (0);
AddAnimationComponent (anim_Par1, 0, 1, &Par1);

Quello sopra è la definizione dell'animazione che uso per ogni animazione, l'unica cosa che cambia è  MGROUP_SCALE.
Tornare in alto Andare in basso
Vedi il profilo dell'utente http://asvo.jimdo.com/
Fausto
Admin
Admin
avatar

Numero di messaggi : 7088
Età : 34
Località : Arcore (Milano)
Data d'iscrizione : 27.06.09

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 14:45

Il codice che vedo qui è giusto, il mio sospetto è che ci sia qualcosa da qualche altra parte che impedisce l'animazione.. ora non ho sotto mano il codice ma domani vedo di postarti le varie parti che vanno a creare l'animazione del gonfiaggio del galleggiante di Antares.. sono sicuro che si tratta di qualche virgola o qualche parentesi mancante, com'è di solito in questi casi Censored

_________________________________________________

Dategli una grande sfida, una che sembra impossibile. Dategli il desiderio di vincerla. Unite le due cose, e l'essere umano è capace di tutto

Jim Lovell
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Matt44
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1218
Età : 39
Località : Bergamo
Data d'iscrizione : 13.04.11

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 14:57

Come al solito, grazie... non c'è urgenza comunque Smile
Tornare in alto Andare in basso
Vedi il profilo dell'utente http://asvo.jimdo.com/
fred18
Add-on Developer
Add-on Developer


Numero di messaggi : 939
Età : 34
Località : La Spezia
Data d'iscrizione : 04.01.12

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 15:36

Domanda: per translate e rotate ti funziona semplicemente così? perché in teoria il "ritorno" dell'animazione dovrebbe essere definito in post step o in cosume buffered key a seconda di dove lo si mette: il concetto è premo il tasto dell'animazione, se lo stato dell'animazione è 0 allora parte in un verso, se lo stato dell'animazione è 1 allora parte nell'altro. Anche perché non è detto che debba fare avanti e indietro (pensa a come le usi con Spacecraft3). Mi meraviglia che funzioni così easy con translate e rotate. confused 2
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Matt44
Add-on Developer
Add-on Developer
avatar

Numero di messaggi : 1218
Età : 39
Località : Bergamo
Data d'iscrizione : 13.04.11

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Mer 19 Giu 2013 - 15:53

Quella è la definizione, che è l'unica cosa che cambia. Tutto il resto rimane invariato.

Poi c'è la gestione dello stato, ma quella parte non è stata toccata... appena posso farò altre prove, ora mi sto distraendo per non impazzirci sopra, che poi magari è la solita virgola persa per strada.
Tornare in alto Andare in basso
Vedi il profilo dell'utente http://asvo.jimdo.com/
Fausto
Admin
Admin
avatar

Numero di messaggi : 7088
Età : 34
Località : Arcore (Milano)
Data d'iscrizione : 27.06.09

MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   Ven 21 Giu 2013 - 14:09

Come promesso, posto qui tutte le parti relative all'animazione del galleggiante, spero possa essere utile a risolvere i tuoi dubbi:

Codice:
const double GALL_OPERATING_SPEED = 0.5;

class antares: public VESSEL2 {
public:
enum DoorStatus { DOOR_CLOSED, DOOR_OPEN, DOOR_CLOSING, DOOR_OPENING }status_gall;

void Activategall (DoorStatus action);
   void Revertgall (void);

UINT anim_gall;

double proc_gall;
};


antares::antares (OBJHANDLE hObj, int fmodel)
: VESSEL2 (hObj, fmodel)
{
status_gall = DOOR_CLOSED;

proc_gall = 0.0
}

void antares::clbkPostStep (double simt, double simdt, double mjd){
if (status_gall >= DOOR_CLOSING) {
      double da = oapiGetSimStep() * GALL_OPERATING_SPEED;
      if (status_gall == DOOR_CLOSING) {
         if (proc_gall > 0.0)
            proc_gall = max (0.0, proc_gall-da);
         else {
            status_gall = DOOR_CLOSED;
            }
      } else  { // door opening
         if (proc_gall < 1.0)
            proc_gall= min (1.0, proc_gall+da);
         else {
            status_gall = DOOR_OPEN;

         }

         }
      SetAnimation (anim_gall, proc_gall);
}

}


void antares::clbkSaveState (FILEHANDLE scn)
{
if (status_gall) {
   sprintf (cbuf, "%d %0.4f", status_gall, proc_gall);
   oapiWriteScenario_string (scn, "GALL", cbuf);

  }      

}

void antares::clbkLoadStateEx (FILEHANDLE scn, void *vs)
{
if (!strnicmp (line, "GALL", 4))
         sscanf (line+4, "%d%lf", &status_gall, &proc_gall);

SetAnimation (anim_gall, proc_gall);

}


void antares::DefineAnimations (void)
{
static UINT gall1Grp[1] = {13};
static MGROUP_SCALE gall1 (midx,gall1Grp, 1, _V(0.948,0.942,2.03), _V(15,15,15));
static UINT gall2Grp[1] = {12};
static MGROUP_SCALE gall2 (midx,gall2Grp, 1, _V(0.948,-0.942,2.03), _V(15,15,15));
static UINT gall3Grp[1] = {11};
static MGROUP_SCALE gall3 (midx,gall3Grp, 1, _V(-0.948,-0.942,2.03), _V(15,15,15));
static UINT gall4Grp[1] = {10};
static MGROUP_SCALE gall4 (midx,gall4Grp, 1, _V(-0.948,0.942,2.03), _V(15,15,15));
static UINT gall5Grp[1] = {9};
static MGROUP_SCALE gall5 (midx,gall5Grp, 1, _V(0.0,0.0,-2.342), _V(4,4,5));
static UINT gallmark1Grp[1] = {89};
static MGROUP_TRANSLATE gallmark1 (midx, gallmark1Grp, 1, _V(0.0,-0.007,0.0));
static UINT gallmark2Grp[1] = {89};
static MGROUP_TRANSLATE gallmark2 (midx, gallmark2Grp, 1, _V(0.0,-0.008,0.0));
anim_gall=CreateAnimation (0.0);
AddAnimationComponent (anim_gall, 0, 1, &gall1);
AddAnimationComponent (anim_gall, 0, 1, &gall2);
AddAnimationComponent (anim_gall, 0, 1, &gall3);
AddAnimationComponent (anim_gall, 0, 1, &gall4);
AddAnimationComponent (anim_gall, 0.0, 1, &gall5);
AddAnimationComponent (anim_gall, 0.0, 0.01, &gallmark1);
AddAnimationComponent (anim_gall, 0.99, 1, &gallmark2);
}


int antares::clbkConsumeBufferedKey(DWORD key, bool down, char *kstate)
{
if (!down) return 0;
   switch (key) {
case OAPI_KEY_G: 
PlayVesselWave3(MyID, 11);
if (GroundContact()) RevertMasterAlarm(),PlayVesselWave3(MyID, 1);
   
else Revertgall();
return 1;
}
return 0;

}

void antares::Activategall (DoorStatus action)
{
   status_gallswitch = action;
}

void antares::Revertgall (void)
{
   Activategall ((status_gallswitch == DOOR_CLOSED || status_gallswitch == DOOR_CLOSING) ?
      DOOR_OPENING : DOOR_CLOSING);
}


void antares::clbkPostCreation()
{
SetAnimation (anim_gall, proc_gall);
}

Credo di aver messo tutto.. copia ed incolla e prendi spunto sostituendo i nomi delle tue animazione al posto delle mie, cancella le parti che non ti servono.. e facci sapere il risultato!Winkie

_________________________________________________

Dategli una grande sfida, una che sembra impossibile. Dategli il desiderio di vincerla. Unite le due cose, e l'essere umano è capace di tutto

Jim Lovell
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Contenuto sponsorizzato




MessaggioTitolo: Re: [C++] Gestione animazioni MGROUP_SCALE   

Tornare in alto Andare in basso
 
[C++] Gestione animazioni MGROUP_SCALE
Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 di 1
 Argomenti simili
-
» Titolo I, Capo III (Artt. 199-207) - Servizio di gestione integrata dei rifiuti
» PROGRAMMA DI GESTIONE DI BONIFICA AMIANTO
» Codici ATECO per gestione rifiuti?
» GESTIONE IMPIANTO DI RECUPERO R4 - R13
» problema gestione rifiuti impresa edile: registro c/s

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: