Attenzione: il tutorial pubblicato sul sito è stato suddiviso in 5 parti. Linee di codice troppo lunghe potrebbero essere tagliate dal browser. Per la completezza e l'affidabilità del codice fate riferimento al tutorial completo in pdf.
scarica il seguente tutorial in formato pdf (161 kb)
scarica il codice completo in formato testo (.cpp, 10.6 Kb)
CONCLUSIONI
Spero di essere riuscito a mostrare con semplicità e “senza andare sul difficile” come poter implementare un buon numero di “features” adatte per sviluppare un gioco in 3rd person… naturalmente per un grosso/medio progetto l’ideale è creare un progetto non-monolitico come questo esempio. E magari codare ed indentare un po’ meglio (compresa qualche GROSSA ottimizzazione qua e là) non sarebbe male
.
Spero inoltre che i C++ssari più incalliti non si rattristino troppo per il mio codice… fosse stato Object Pascal, C# o qualunque altra cosa sul generis forse avrei fatto un lavoro più pulito…
RINGRAZIAMENTI
Questo è il mio primo tutorial (in generale, non solo di Irrlicht). Se sono riuscito (e se sono stato invogliato) lo devo a IrrlichtItalia nella sua interezza e in particolare a: webmaster,cadue, white tiger,bellaz89 e a tutti quelli che sono stati (e spero saranno) molto pazienti con me.
E un grazie anche a tutti voi che, per un motivo o per l’altro, state leggendo.
Baci & Abbracci
Hammeronthenet
azz… ho provato a compilare il tutto (dalla guida in pdf) e mi da due errori
su:
virtual bool OnEvent(SEvent event) = 0;
e
MyEventReceiver receiver;
x Michele: guardati il forum, è cambiata la classe per gestire gli input da tastiera in Irrlicht… Paolino, nn dovevi mettere una nota all’epoca???
esatto, guarda questa discussione
http://paooolino.altervista.org/forumirrlicht/viewtopic.php?t=333
ciao!
Grazie!!!
hammeronthenet puoi passarmi il tuo contatto caso mai mi servisse una mano?
Comunque… ho letto e nn ho risolto
hai scritto
virtual bool OnEvent(SEvent event)
invece di
virtual bool OnEvent(SEvent &event) ?
che errore ti da? lo stesso di prima? che modifiche hai fatto? per poterti aiutare devi essere piu’ preciso.
Il mio contatto (e-mail) è scritto nella prima pagina del tutorial.
Puoi sentirmi lì.
Ciao.
grazie
Salve
Innanzitutto complimenti per il tutorial, davvero fatt bene.
L’unica cosa che ti chiedo è se si puo’ pubblicare il file con il codice funzionante…
cioè proprio il main, dato che per qualche oscura ragione foxit reader nn mi permette di copiare in modalità “visualizza testo”.
Grazie
@peppmost
ho contattato l’autore del tutorial,
pubblichero’ al più presto il codice completo in formato testo
a presto!
grazie mille:D
codice pubblicato!
http://irrlichtitalia.altervista.org/tutorials/hammeronthenet/code.cpp
grazie per la prontezza:D
cmq mi da errore:
K:\Dev-Cpp\3dgames\da sito\Makefile.win [Build Error] [sito.exe] Error 1
cmq l’avevo gia’ riscritto tutto a mano…
una cosa sola è strana: impostando la velocità di movimento a 2.3f(come da voi consigliato) sul mio computer fa 100 metri in 0,2 secondi…un record:D mettendola a 0.1 va meglio ma sugli altri computer fa 1 metro in 100 secondi… secondo voi dipende dalla velocità di calcolo del pc? io avevo pensato che forse ci vorrebbe un timer per il movimento per ovviare al problema. Premetto che sono del tutto nuovo all’argomento videogames(ho iniziato ieri)
Grazie
uhm.. magari non c’entra niente, ma credo che al makefile non piaccia molto il fatto che il path contenga uno spazio (\da_sito\) prova a toglierlo. Per quanto riguarda velocità, il valore ottimo varia da caso a caso, come anche non esiste una unità di misura fissa; nel 3D si parla di “unità” per misurare lo spazio, poi tu decidi se una unità è un metro, o un centimetro. La velocità di calcolo del pc può influire in questo, prova a cercare nel forum “ciclo di compensazione” per saperne di più.
Scusate se arrivo così tardi…ma almeno ho il vantaggio di aver letto tutti i post scritti finora,forum incluso
Purtroppo però,sia che usi Dev-Cpp o VC++ 6.0, il codice viene compilato,linkato,il prog parte e…la memoria non poteva essere “read”!il messaggio completo è:
“L’istruzione a “0×0040130c” ha fatto riferimento alla memoria a “0×00000000″.La memoria non poteva essere “read”".
Questo è quanto.L’errore si ripete in maniera del tutto identica con VC++ 6.0.
Vi sarei grato se riuscissi ad avere delucidazioni a riguardo.
Ovviamente dopo tre giorni di follia,di prove e di modifiche al codice,ma soprattutto dopo essermi deciso a postare sul forum, ecco che come per magia il programma inizia a funzionare.Nessun buffer overflow nelle chiamate alle funzioni,nessun errore nella gestione degli indirizzi di memoria e nessun altro dei “fondati” sospetti che mi erano venuti in mente in questi giorni ha trovato riscontro,bensì un semplice settaggio dei parametri di progetto e della posizione di quest’ultimo nelle cartelle di irrlicht…o almeno penso,visto che ho smanettato così tanto che non vorrei aver toccato qualcosa e non ricordarmi neanche…
Cmq l’ho fatto fungere con il VC++ 6.0,chiunque dovesse avere problemi con questo ambiente può postare qui e se posso sarò di aiuto.
Grazie cmq e…hammeronthenet ti voglio bene per il tutoria
Io non ho avuto difficoltà a compilare, mi potete spiegare perché per il salto non si usa la bellissima funzione jump() integrata in irrlicht???
semplicemente perchè quando è stato scritto l’articolo quella funzione non esisteva!