Di RobyDx (del 04/08/2007 @ 09:12:23, in DirectX9, linkato 1575 volte)
Le superfici in DirectDraw sono come sappiamo degli array di numeri corrispondenti ai colori. L'array di colori viene estratto eseguengo una operazione chiamata accesso alla memoria che genera una matrice di dimensione larghezza x altezza. Ogni punto di questa matrice è un intero che tramite la classe color possiamo facilmente gestire per ottenere o inserire il colore. Prima che iniziate a procedere vi avverto che DirectDraw presenta un grosso bug in questa istruzione. Se avete aggiornato alla versione 9.0b questa funzionerà altrimenti non troverete questa istruzione e vi sarà impossibile compiere questa azione....
Di RobyDx (del 04/08/2007 @ 09:14:06, in DirectX9, linkato 2078 volte)
Come sappiamo in DirectX possiamo usare molti formati per le immagini come bitmap, jpeg o tga. Tutte queste però vengono gestiste come bitmap al momento dell'effettivo utilizzo sia dal punto di vista della memoria che della velocità. Esistono però alcuni formati speciali che vengono sfruttati in maniera migliore i DXT. Ci sono 5 formati da DXT1 a DXT5 che si differenziano per spazio occupato e velocità di rendering. Per utilizzare questi formati potete o caricare un immagine effettuando una conversione in questo formato o caricare un'immagine da file già in questo formato....
Di RobyDx (del 05/08/2007 @ 16:34:57, in Direct3D10, linkato 3973 volte)
Le cubemap sono particolari rappresentazioni di texture esistenti in DirectX ormai da molte versioni. Come dice il nome, una cubemap è una texture che contiene al sue interno 6 superfici quadrate disposte a cubo.
Il motivo per cui queste sono state create è sostanzialmente per simulare riflessioni dell'ambiente circostante gli oggetti (il cosidetto environment mapping). Come ripeto spesso nei miei tutorial, ogni volta che si renderizza un oggetto questo non può sapere cosa c'è intorno e l'unico modo per un oggetto di vedere ciò che c'è intorno a se è quello di renderizzare su una texture da utilizzare successivamente. ...
Di RobyDx (del 06/08/2007 @ 09:48:43, in DirectX9, linkato 1635 volte)
Caricate una bitmap 32x32 su una superficie
Dim c As Surface c = device.CreateOffscreenPlainSurface(32, 32, Format.A8R8G8B8, Pool.Default) SurfaceLoader.FromFile(c, AppPath() & "\icona.bmp", Filter.None, Color.White.ToArgb)
ora assegnatela al device
device.SetCursorProperties(X, Y, c)
X e Y sono lo slittamento che il cursore avrà rispetto all'effettiva posizione del mouse (ad esempio impostando 16,16 il mouse cliccherà nel centro dell'icona mentre con 0,0 nell'angolo alto-sinistro). C è la superficie creata
device.ShowCursor(True)
Questa istruzione mostra l'icona. Va inserita nel ciclo, possibilmente immediatamente subito dopo il doEvents
Impostando a false invece il mouse sarà invisibile. Questo sistema è abbastanza inutile per cursori fissi mentre è utile per cursori in movimenti per la velocità di cambio.
Ora tutto ciò che è stato renderizzato sullo schermo all'interno del blocco begin e end non è stato renderizzato ma solo calcolato. Nella query è stato memorizzato il numero dei pixel visibili dell'oggetto.
Dim n As Integer n = q.GetData(GetType(Integer), True)
Con queste istruzioni possiamo leggere questo numero, in n ci sarà il numero dei pixel che verranno renderizzati sullo schermo....
Di RobyDx (del 09/08/2007 @ 11:06:17, in DirectX9, linkato 4823 volte)
DirectInput è la componente di DirectX responsabile della gestione degli input da periferiche esterne. Nonostante Visual Basic fornisca una gestione molto affidabile per la gestione di tastiera e mouse questa si rivela troppo lenta per affrontare "le fatiche" di un gioco in real time. Se ad esempio un gioco gira a 60 frame al secondo, anche gli input devono essere gestiti con la stessa frequenza ed è quindi necessaria un controllo più diretto. Inoltre Direct Input è l'unico modo per ottenere input da JoyStick, gamepad, volanti ed ogni altra periferica esistente. Capite quindi che Direct Input è fondamentale per un gioco. Usare Direct Input è molto semplice ed in DirectX 9 ancora di più. La prima periferica che andiamo ad analizzare sarà la tastiera del PC....
Di RobyDx (del 09/08/2007 @ 11:10:47, in DirectX9, linkato 2807 volte)
Come per la tastiera anche per il mouse DirectInput rappresenta la migliore soluzione soprattutto per la velocità. Tuttavia, a seconda di quello che dovete fare, non tutti useranno questo tipo di controllo. Perchè? Il motivo è che Direct Input non restituisce la posizione in cui si trova lo schermo ma il numero di pixel di cui si è spostata la freccia in una direzione. La cosa è ottima per i Pc dato che la maggior parte dei giochi hanno controlli Mouse e Tastiera ma per alcuni programmi può essere più semplice da usare il sistema standard di VB (o meglio ancora un unione tra i due)....
Di RobyDx (del 09/08/2007 @ 11:19:58, in DirectX9, linkato 4289 volte)
Senza dubbio la gestione delle periferiche di controllo è la parte più interessante di Direct Input. In Direct Input è possibile creare un sistema per la gestione di tutti i tipi di Joypad, volanti e qualsiasi diavoleria voi possediate. Potete inoltre controllare molti joypad contemporaneamente e la cosa risulta utile per giochi multiplayer. L'utilità non finisce qui dato che alcuni tipi di mouse potrebbero necessitare un controllo più preciso. Insomma la cosa si fa interessante....
Di RobyDx (del 09/08/2007 @ 11:20:25, in DirectX9, linkato 2491 volte)
Se realizzerete dei giochi da distribuire al publico incontrerete subito un problema di compatibilità nel settore del controllo. Se tutti infatti possiedono una tastiera più o meno uguale a quelle degli altri, questo non vale per i mouse e soprattutto non vale per i vari joystick, gamepad e volanti. Quanti pulsanti ha il joypad? Il mouse ha la rotellina? La leva è analogica? Tutti fattori che se non considerati potrebbero rendere i vostri giochi letteralmente incontrollabili. Risulta quindi molto importante conoscere a priori il tipo di controllo che si ha a disposizione in modo da gestire al meglio eventuali situazioni. Sapere quali sono le periferiche collegate al PC è molto semplice. Ecco come fare....