\\ Home : Articoli : Stampa
Testo
Di robydx (del 18/01/2007 @ 23:30:37, in DirectX9, linkato 2393 volte)

Una cosa molto utile (forse fondamentale) è il testo.  In Direct3D il testo viene utilizzato creando un oggetto Font (da non confondere con Font di VB). Il processo è molto semplice, quasi banale.
Dichiarate un oggetto font

Public testo As Font

e settarlo con

testo=Font(device, f)

dove f è un oggetto Drawing.Font creabile in moltissimi modi.

Dim f As Drawing.Font
f = New Drawing.Font("arial", 12)

Per facilitare la cosa ho come al solito creato una funzione che semplifica le cose

Function creaFont(ByVal f As Drawing.Font) As Font
Return New Font(device, f)
End Function

da usare così

testo = creaFont(New Drawing.Font("Arial", 12))

Dato che per creare un Font di VB esistono moltissimi modi potete impostare il testo come volete (sottolineature, grassetto, corsivo ecc..). Per maggiori delucidazioni leggetevi la guida di VB.Net (sono cose che dovreste sapere già). Potete creare quanti font volete, senza alcun limite.
Per scrivere è molto semplice

r = New Rectangle(0, 100, 800, 600)
testo.DrawText("Questa è la scritta", r, DrawTextFormat.Left, Color.White)

L'oggetto r è un rettangolo, potete crearlo e impostarlo dove volete o anche inserirlo all'interno della funzione. Il rettangolo contiene la zona dove il testo sarà visualizzato. La stringa verrà scritta sullo schermo in base al colore (in fondo) e alla formattazione. La formattazione è molto importante dato che con il testo potete fare veramente di tutto. Il testo viene sempre visualizzato sopra lo schermo e per non essere coperto da poligoni conviene farlo per l'ultimo. L'istruzione va tra begin scene ed end scene.
Ecco alcune delle opzioni (collegabili con gli OR se non contraddittorie)
WordBreak: se il testo è troppo lungo per la larghezza del rettangolo và a capo
VerticalCenter: centra verticalmente il testo
SingleLine: qualsiasi cosa accada non và accapo
RightToLeftReading: al contrario
Center: centra orizzontalmente
Top: allinea in alto
Right: allinea a destra
Left: allinea a sinistra
Bottom: allinea in basso
C'è ne sono altre, scopritele voi.

Nel ciclo (sempre tra beginScene e EndScene) e all'interno scrivere.
Ecco l'esempio (questo tutorial è molto semplice).

Esempio VB

Esempio CS