E' semplice
Non preoccuparti per include#, l'editor fà tutto
Aggiungi un nuovo file al progetto (cliccando con il tasto destro sull'elemento Project nel Solution Explorer e fai "Add a new item". Ti farà salvare un file, salvalo nella cartellla del codice sorgente del programma e chiamalo "GestioneFile.dba" e poi salva. Adesso vedrai che avrai 2 file: uno scritto in grassetto che sarebbe il file di avvio del programma detto "Main File" e l'altro, GestioneFile.dba. Facendo così, il codice contenuto in GestioneFile.dba verrà aggiunto alla fine del Main File durante la fase di compilazione. Questo ti permette di tenere il codice sorgente pulito e non incasinato. Inoltre puoi separare codici specifici per file così da orientarti anche meglio. Non puoi dichiarare variabili in cima ai file che non sono il Main File, quindi gli altri possono contenere solamente funzioni e routine
Copia nel file "GestioneFile.dba" (doppio click sul'elemento nel solution explorer) il codice di prima. Adesso puoi usare quelle funzioni nel Main File (e non solo
).
Una funzione non è altro che un normale comando, si differenzia tra i comandi base per l'inserimento dei parametri e per il nome: non può avere spazi nel nome e i parametri devono essere messi tra le parentesi tonde. Si differenziano dalle routine (che in dark basic pro sarebbero i blocchi di codice richiamati tramite il comando
gosub) per la possibiltà di avere un valore di ritorno che può essere assegnato ad una variabile ad esempio. Per scriverle è semplice, si utilizza la semplice struttura:
Codice:
function nome_funzione<$ se stringa>(parametri)
// codice
endfunction <valore_di_ritorno>
Quello compreso tra le parentesi angolari indica che è una cosa opzionale. Nel caso la funzione deve ritornare una stringa bisogna inserire il $ alla fine del nome della funzione.
Un'esempio semplice di funzione: wrapangle a 180°
[spoiler]
La funzione nativa di Dark Basic "wrapangle" ci permette di riportare un valore numerico in un angolo. Esempio:
Codice:
a# = wrapangle(725)
a# adesso è uguale a 5, poichè per ottenere 725 un angolo deve fare 2 giri completi da 360 (quindi 720) e aggiungere 5° gradi.
[/spoiler]
Codice:
function wrapangle180(angolo#)
a# = angolo
while a# > 180
a# = 180 - a#
endwhile
endfunction a#
Adesso vediamo come richiamarla
Come abbiamo detto prima, non si mettono spazi e servono le parentesi tonde per racchiudere i parametri:
Codice:
#ax = 869
a# = wrapangle180(a#)
Adesso a# contiene il valore restituito dalla funzione
Le funzioni sono molto utili quando bisogna eseguire operazioni specifiche su determinati valori dati in input. Ma anche se dobbiamo solamente eseguire operazioni semplici che modificano valori. Esempio: scriviamo una funzione che data la velocità frontale (velz) e la velocità orizzontale (velx) ci muova un oggetto (index_oggetto).
Codice:
function muovi_oggetto(index_oggetto,velz,velx)
move object index_oggetto, velz
move object left index_oggetto, velx
endfunction
Ecco una piccola spiegazione sulle funzioni