Re: [DLL] NJAssimp
Inviato: 17/03/2013, 22:04
Hai ragione, chiamalo Modeljakator
Programmazione e sviluppo videogiochi con GameMaker
http://gmitalia.altervista.org/forum/
http://gmitalia.altervista.org/forum/viewtopic.php?f=31&t=9731
sarà ovvio, ma in questo modo non avrò un gioco regolare che rispetta sempre lo stesso ritmo... che me ne faccio? a parte il belvedere...Solid Snake ha scritto:Il motivo è ovvio, quando giri dietro alla lucertola gli fps aumentano perchè gm disegna meno roba.
Codice: Seleziona tutto
interval=current_time-time;
//usa la variabile interval e fai delle proporzioni, in questo modo avrai gli stessi "movimenti" indipendentemente dagli fps
time=current_time;
Grazie , ho potuto così vederlo.... ma non nel mio solito pc perché mancante della dll MSVCP100 ( che ho cercato , scaricato da internet ed inserita nella relativa cartella system32, ma non funzionava lo stesso )... bensì nel mio piccolo notebook che erano 5 mesi che non avviavo più. Qui però con il touchpad non sono riuscito a stabilizzare la vista riuscendo a vedere solo dall' alto verso il basso . Ho quindi alzato tramite il tasto W e mosso lateralmente con A e D .Nell'archivio ho aggiunto anche l'exe così civic potrà provare di persona.
Dovrebbe essere calcolata in base alla speed_room fps e numero di triangoli visualizzati in quel momento. In U3d ho fatto diversi test senza mai trovare uno script perfetto ed alla fine ho optato in velocità=(room_speed/(fps+0.01)/11);la velocità
30 fa schifo, impostalo a 60 che è lo standard di tutti i giochi esistenti.enick ha scritto:il 9999 si imposta quando si necessità un test del motore a pieno potenziale, settalo a 30 !
Infatti, poichè è un test con gli fps senza alcun limite non posso sapere a quanti fps andrà il computer delle altre persone che lo utilizzano ottenendo che la camera si sposti a velocità esagerate o a passo di lumaca, tutto ciò che ho fatto è calcolare quanti millisecondi ha impiegato lo step precedente(che senza limite è deciso esclusivamente dalla potenza del pc) ed ho usato questo valore per regolare la velocità della camera in modo da avere una velocità costante qualunque sia il framerate dell'utilizzatore. Questa tecnica è praticamente obbligatoria ed usata nel 100% dei giochi ma in genere con game maker si evita di usarla per una questione di comodità.Prometeo ha scritto:altro esempio nella camera ci sono variabili di tempo come last_tick, this_time,current_time, che non capisco e mi chiedo se c'entrino con la velocità...
Questo perchè non ho usato le view, di conseguenza è come se tu avessi impostato una finestra grande 10000x10000 facendo buggare la posizione del mouse il che si è tramutato in una continua rotazione.Prometeo ha scritto:ho provato a cambiare le dimensioni della room a 10000X10000 e la camera è impazzita e girava velocemente su se stessa non rispondendo ai comandi... bho
L'inizializzazione del 3d l'ho messa nel create dell'oggetto control (d3d_start) e la andrebbero messe tutte le altre impostazioni. La proiezione l'ho impostata nell'oggetto camera assieme a tutti i vari calcoli matematici per lo spostamento tramite wasd+mouse che sicuramente non capirai.Prometeo ha scritto:Altra cosa, dove sono i settaggi dello start del 3D? non li trovo, sono nella dll?... cioè se volessi cambiare la camera o inserire la nebbia?... c'ho altre domande, ma per ora fermiamoci qui.
Codice: Seleziona tutto
if (id == global.camera_attuale)
{
//imposta la proiezione
}
no vabbè, per adesso ci provo io, poi se ho dei problemi ti farò sapere... senti, che mi dici del sistema che ho usato per animare la lucertola?... lo proposi tempo fa se ti ricordi, e tu mi dicesti che era problematico, ma non ricordo perchè... forse per il fatto di dover tenere tutti i modelli caricati e pronti all'uso?... per ora sembra che funzioni in modo fluido, ma è ovvio che sono ancora pochi... e se si caricassero ogni volta che servono per poi scaricarli? rallenterebbe comunque? o ho detto una cosa da quel nubbio che sono?Jak ha scritto:eventualmente posso rifare l'oggetto camera eliminando la velocità dinamica così magari trovi tutto più semplice (ma ne dubito) e per la room speed puoi impostarla a 60 o 30 o quel che vuoi in qualunque momento senza problemi.
Lo sconsigliavo proprio per questioni di fluidità (e di memoria ma ormai quella si caga quindi basta che non esageri e non dovresti preoccupartene) per il resto non ha difetti anzi, con gm8.1 dovrebbe essere molto veloce a disegnarsiPrometeo ha scritto:senti, che mi dici del sistema che ho usato per animare la lucertola?... lo proposi tempo fa se ti ricordi, e tu mi dicesti che era problematico, ma non ricordo perchè... forse per il fatto di dover tenere tutti i modelli caricati e pronti all'uso?... per ora sembra che funzioni in modo fluido, ma è ovvio che sono ancora pochi...
Caricare un modello è un'operazione RELATIVAMENTE veloce ma ci impiega comunque tantissimo tempo (anche mezzo/1 secondo per i pc più lenti/modelli complessi) e quindi bisogna necessariamente caricarli tutti ad inizio livello.Prometeo ha scritto:e se si caricassero ogni volta che servono per poi scaricarli? rallenterebbe comunque? o ho detto una cosa da quel nubbio che sono?
Codice: Seleziona tutto
xt=obj_Character.x+cos(direction*pi/180);
yt=obj_Character.y-sin(direction*pi/180);
zt=sin(-zdirection*pi/180)+128+passo+livello+trema;
xf=obj_Character.x;
yf=obj_Character.y;
zf=128+passo+livello+trema;
d3d_set_projection(xf,yf,zf,xt,yt,zt,0,0,1);
No... non è cambiato niente.Jak ha scritto:Le normali sono perfette, hai semplicemente scambiato la posizione della telecamera con la sua direzione.
Nel draw dell'oggetto camera cambia il tuo codice con questo:Ed i modelli riceveranno la luce nella giusta direzione!Codice: Seleziona tutto
xt=obj_Character.x+cos(direction*pi/180); yt=obj_Character.y-sin(direction*pi/180); zt=sin(-zdirection*pi/180)+128+passo+livello+trema; xf=obj_Character.x; yf=obj_Character.y; zf=128+passo+livello+trema; d3d_set_projection(xf,yf,zf,xt,yt,zt,0,0,1);
Sia lucertoloni che terreno, tutto perfetto.
giusto, l'errore stava nella luce ambient, devo aver sbagliato coi copia incolla... ho adattato la luce del player coi dislivelli e funziona... l'unico a non ricevere la luce ora è il floor, ma credo che lì non ci sia soluzione... grazie jakJak ha scritto:A me funziona
Ti rimando l'esempio con quella cosa cambiata e alcune texture eliminate (per visualizzare meglio le luci) nonchè eliminata la luce bianca al centro che l'hai attivata nell'oggetto ambient ma non è mai esistita (cioè, non l'hai mai modificata ne niente, hai solo attivato una luce usando l'id dell'oggetto )
Per sicurezza ho riscaricato il rar e fatto le modifiche da 0 e ti assicuro di non averne fatte altre.
https://docs.google.com/file/d/0B62O2vy ... p6ODQ/edit
(file che provvederò ad eliminare appena avrai risolto)
Come vedi la luce è direzionata correttamente rispetto alle lucertole e se vai sopra la loro coda viene illuminata perfettamente anche essa (segno che funziona)
Il terreno è anch'esso perfetto, viene illuminato correttamente ad eccezione di quando sali troppo e la luce non viene spostata assieme al player perchè gli hai dato una z fissa.