09-02-2011, 05:49 PM
Ho fatto questo piccolo esempio, per i neofiti che vogliono cominciare con darkbasic pro, l'ho voluto fare, anche perchè in giro su internet si trova be poco in Italiano, almeno io ho provato a dare un'idea di come gestire l'input, caricare un modello, impostare il display mode e a cosa serve il Sync etc...
Source:
"Se l'utente preme il tasto sinistro del mouse il giocatore si sposterà in avanti di 4 unità sulle assi x, y ,z" io le ho chiamate unità perché non sapevo come altro scrivere xD
Ovviamente il codice è molto semplice, quindi si può migliorare notevolmente, inserendo collissioni, luce etc...
Ma per iniziare va bene, perché il codice che ho scritto è abbastanza semplice da capire.
Spero che il codice l'ho commentato discretamente xD.
Dowload del progetto, con un modello 3d fatto da me, fa pena perché era solo per il tutorial XD.
Download
Source:
Codice PHP:
//Impostazione Frame Rate
Sync on //Attiviamo l'opzione: Sync, che servirà per "rinfrescare" lo schermo
Sync rate 60 //Impostiamo gli fps a 60
//Autocam off
Autocam off //Cosi che la camera non si auto-posiziona nel momento in cui un nuovo oggetto viene creato o caricato
//Attiviamo il backdrop (correzione fatta nel post e no nel progetto, nel progetto c'è: "Impostiamo colore sofondo")
backdrop on
//Settaggio display
if (check display mode (800, 600, 32)) //Se il pc supporta la profondità 32 bit, allora esegue l'istruzione: "set display mode 800, 600, 32"
set display mode 800, 600, 32
else //altrimenti
set display mode 800, 600, 16 //esegue quest'altra azione, che imposta la profondità a 16 bit
ENDIF
//Settaggio raggio e posizione della camera
position camera 0, 250, 0 //Posizioniamo la camera x, y, z = 0, 250, 0
set camera range 0, 10000 //Impostiamo il raggio della camera: 0 = valore vicino - 10000 = valore lontano
//Variabili
x = 4
y = 4
z = 4
//Caricamento modello 3D
Load object "Models\model.x", 1 //Il numero 1, specifica il numero oggeto, infatti se compiliamo senza il numero, il compilatore ci darà
//questo errore: "Parameter for 'LOAD OBJECT' do not match 'Filename, Object Number' at line 28."
DO
//Muovere il "personaggio"
if (mouseclick() = 1) //Se l'utente preme il tasto sinistro del mouse il giocatore si sposterà in avanti di 4 unità sulle assi x, y ,z
move camera x + y + z
ENDIF //Fine dell'if
if (mouseclick() = 2) //Se l'unte preme il tasto destro del mouse il giocatore si sposterà indietro di 4 unità sulle assi z, y, z
move camera x - y - z
ENDIF //Fine dell'if
rotatey#=wrapvalue(rotatey#+mousemovex()) //L'utente spostando il mouse potrà ruotare la camera
rotate camera rotatex#,rotatey#,0 //Fine codice
//Fine
Sync //D'obligo per "rinfrescare" lo schermo, alrimenti se lo mettiamo al di fuori del cilco DO lo schermo verrà "rinfrescato" solo una volta
LOOP
"Se l'utente preme il tasto sinistro del mouse il giocatore si sposterà in avanti di 4 unità sulle assi x, y ,z" io le ho chiamate unità perché non sapevo come altro scrivere xD
Ovviamente il codice è molto semplice, quindi si può migliorare notevolmente, inserendo collissioni, luce etc...
Ma per iniziare va bene, perché il codice che ho scritto è abbastanza semplice da capire.
Spero che il codice l'ho commentato discretamente xD.
Dowload del progetto, con un modello 3d fatto da me, fa pena perché era solo per il tutorial XD.
Download