Matt44 Add-on Developer
Numero di messaggi : 1226 Età : 46 Località : Bergamo Data d'iscrizione : 13.04.11
| Titolo: [C++] Visualizzare testo a video Ven 8 Feb 2013 - 22:06 | |
| Vedo di spiegarmi meglio, anche se il titolo è chiaro mi servirebbe poter visualizzare un testo variabile sullo schermo durante la simulazione, metto un'immagine di esempio... Le scritte a cui mmi riferisco sono quelle visibile ad esempio sopra l'MFD di sinistra e destra, le scritte non standard della visualizzazione. Come si fanno? Io ho trovato un oapiCreateAnnotation ho provato a farlo funzionare ma ho due problemi, il primo è che la simulazione diventa lentissima (però era una prova grezza con il codice buttato li per vedere se andava), e il secondo problema è che non capisco se riesce a prendere del testo variabile. Questa cosina mi servirebbe per verificare determinati parametri durante lo sviluppo, e successivamente mi sarebbe utile per per un paio di finezze che mi piacerebbe aggiungere nel mio prossimo lavoretto Grazie. | |
|
Fausto Admin
Numero di messaggi : 7181 Età : 41 Località : Arcore (Milano) Data d'iscrizione : 27.06.09
| Titolo: Re: [C++] Visualizzare testo a video Ven 8 Feb 2013 - 22:37 | |
| mmh, fred dovrebbe saperti rispondere. Ha creato una scritta al di fuori del cockpit ma non so che metodo abbia usato... | |
|
Matt44 Add-on Developer
Numero di messaggi : 1226 Età : 46 Località : Bergamo Data d'iscrizione : 13.04.11
| |
fred18 Add-on Developer
Numero di messaggi : 950 Età : 41 Località : La Spezia Data d'iscrizione : 04.01.12
| Titolo: Re: [C++] Visualizzare testo a video Sab 9 Feb 2013 - 0:32 | |
| Scrivendo di corsa, poi semmai ne riparliamo con calma:
Devi fare un overload della funzione clbkDrawHud, usando lo sketchpad.
cioè nell'overload mettere ad esempio
char btbuff[512]; memset(btbuff, 0, sizeof(btbuff)); int btlen; btlen=sprintf_s(btbuff,"Remaining Stage Burning time: %.1f s",remBT()); skp->Text(200,200,btbuff,btlen);
Per la posizione del testo c'è un discorso a parte, nell'esempio ho messo 200-200 ma in realtà il meglio è calcolarla in base alle dimensioni del viewport, nel caso ti servisse poi ti faccio vedere come ho fatto!
ciaoooo | |
|
Matt44 Add-on Developer
Numero di messaggi : 1226 Età : 46 Località : Bergamo Data d'iscrizione : 13.04.11
| Titolo: Re: [C++] Visualizzare testo a video Sab 9 Feb 2013 - 11:02 | |
| A volte le cose più ovvie sono quelle che non vedi... bastava cercare a funzione "scrivi sull'Hud" Grazie! | |
|
Matt44 Add-on Developer
Numero di messaggi : 1226 Età : 46 Località : Bergamo Data d'iscrizione : 13.04.11
| Titolo: Re: [C++] Visualizzare testo a video Sab 9 Feb 2013 - 14:01 | |
| Per completezza metto il pezzo di codice a disposizione, grazie alle dritte di fred sono riuscito a trovare questo, lo condivido: - Codice:
-
bool clbkDrawHUD (int mode, const HUDPAINTSPEC *hps, oapi::Sketchpad *skp);
- Codice:
-
bool TEST::clbkDrawHUD (int mode, const HUDPAINTSPEC *hps, oapi::Sketchpad *skp) { VESSEL3::clbkDrawHUD (mode, hps, skp); int cx = hps->CX, cy = hps->CY;
int linespacing = 2, charwidth = 2, lineNo = 200, len; char buffer[512]; memset(buffer, 0, sizeof(buffer));
double SWonoff = stonoff; double SWtarget = target; double SWlng = lng; double SWstat = stat;
len = sprintf_s(buffer, "stonoff: %.2f", SWonoff); skp->Text(200, linespacing*100, buffer, len); len = sprintf_s(buffer, "target: %.2f", SWtarget); skp->Text(200, linespacing*110, buffer, len); len = sprintf_s(buffer, "LNG: %.2f", SWlng); skp->Text(200, linespacing*120, buffer, len); len = sprintf_s(buffer, "STAT: %.2f", SWstat); skp->Text(200, linespacing*130, buffer, len);
return true; }
| |
|
fred18 Add-on Developer
Numero di messaggi : 950 Età : 41 Località : La Spezia Data d'iscrizione : 04.01.12
| Titolo: Re: [C++] Visualizzare testo a video Sab 9 Feb 2013 - 21:03 | |
| Esatto, perfetto | |
|
Contenuto sponsorizzato
| Titolo: Re: [C++] Visualizzare testo a video | |
| |
|