spostare la visuale in 3D

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

spostare la visuale in 3D

Messaggio da luckluppolo »

Sto cercando di fare in modo k se si sposta il mouse si sposta anche la visuale dello stesso valore dello spostamento del mouse e k il mouse sia sempre fermo al centro. Qualcuno mi può aiutare???? :confuso:

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: spostare la visuale in 3D

Messaggio da Solid Snake »

E' inutile che ti diciamo come fare se non hai esperienza almeno con il 2D. Cambiare la visuale in base al movimento del mouse è quasi basilare nel 3D. Ma ripeto se non conosci nemmeno le basi del 2D non puoi passare al D3D.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
torchipeppo
Membro
Messaggi: 215
Iscritto il: 01/06/2011, 17:32
Specialità: Teoria e Manuali
Uso: GameMaker 8
Località: Da qualche parte...
Contatta:

Re: spostare la visuale in 3D

Messaggio da torchipeppo »

-----preceduto-----
Se fosse in 2D, ti direi di guardare il manuale alle sezioni "The Window", "The Mouse" e "Views", ma forse in 3D ti serve qualcosa di più... Ah, sto partendo dal presupposto che la visuale sia top-down (tipo RTS). Io ho la lite quindi non posso usare il 3D, se stai facendo una visuale in prima persona (tipo FPS) non posso aiutarti.
Il mio progetto attuale:
Spoiler
Traduzione del manuale GM8.1
I miei giochi su GMI:
Spoiler
  • Super Character Pong
  • Bug's Cave
  • Space: 9999

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

Solid Snake ha scritto:E' inutile che ti diciamo come fare se non hai esperienza almeno con il 2D. Cambiare la visuale in base al movimento del mouse è quasi basilare nel 3D. Ma ripeto se non conosci nemmeno le basi del 2D non puoi passare al D3D.
si, io so fare abbastanza il 2D; avevo già provato a creare un codice per spostare la visuale, ma non mi risultava corretto. quello k avevo pensato era k il mouse fosse fisso al centro e k avesse come sprite un mirino, ad ogni movimento registrava di quanto si spostava il mouse e spostava la visuale a quel valore,poi risistemava il mouse al centro (tutto questo ad ogni step) solo k nn riesco a tradurlo in codice!!! :furiosomedio:

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: spostare la visuale in 3D

Messaggio da Solid Snake »

Codice: Seleziona tutto

//CREATE
zdir=0;
direction=0;

Codice: Seleziona tutto

//DRAW
zdir+=display_mouse_get_y()-display_heigth()/2;
direction+=display_mouse_get_x()-display_width()/2;
d3d_set_projection_ext(x,y,z,x+(10*sin(degtorad(zdir))*cos(degtorad(-direction))),y+(10*sin(degtorad(zdir)))*sin(degtorad(-direction)),z+10*cos(degtorad(zdir)),0,0,1,45,1,1,100000);
display_mouse_set(display_width()/2,display_height()/2);
Non l'ho testato ma dovrebbe andare.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
torchipeppo
Membro
Messaggi: 215
Iscritto il: 01/06/2011, 17:32
Specialità: Teoria e Manuali
Uso: GameMaker 8
Località: Da qualche parte...
Contatta:

Re: spostare la visuale in 3D

Messaggio da torchipeppo »

Nel manuale c'è scritto tutto alle tre sezioni che ho detto prima. Ecco un possibile pseudocodice per una visuale in prima persona (tipo FPS) (da mettere in step):

Codice: Seleziona tutto

if (il mouse si è spostato dalla posizione "centrale")
{
     sposto la visuale a destra o a sinistra (mi guardo intorno) in base a quanto si è spostato il mouse sull'asse X
     sposto la visuale in alto o in basso (alzo gli occhi al cielo o mi guardo i piedi) in base a quanto si è spostato il mouse sull'asse Y
     riporto il mouse alla posizione "centrale"
}
Non posso dirti le funzioni né testare perché (l'ho già detto) ho la lite, ma a rigor di logica dovresti fare così (forse ho sbagliato qualche termine, ma spero che abbia afferrato il concetto).
Il mio progetto attuale:
Spoiler
Traduzione del manuale GM8.1
I miei giochi su GMI:
Spoiler
  • Super Character Pong
  • Bug's Cave
  • Space: 9999

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

Solid Snake ha scritto:

Codice: Seleziona tutto

//CREATE
zdir=0;
direction=0;

Codice: Seleziona tutto

//DRAW
zdir+=display_mouse_get_y()-display_heigth()/2;
direction+=display_mouse_get_x()-display_width()/2;
d3d_set_projection_ext(x,y,z,x+(10*sin(degtorad(zdir))*cos(degtorad(-direction))),y+(10*sin(degtorad(zdir)))*sin(degtorad(-direction)),z+10*cos(degtorad(zdir)),0,0,1,45,1,1,100000);
display_mouse_set(display_width()/2,display_height()/2);
Non l'ho testato ma dovrebbe andare.
ok per la visuale va bene xò se io vado avanti la direzione è diversa dalla direzione della visuale quindi se vado avanti nn vado dritto ma in un'altra direction

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: spostare la visuale in 3D

Messaggio da BaronVsCorsar »

usa una variabile per l'avanzamento (suggerisco direction) e
crea un'altra variabile per la direzione della "camera".
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

scusate se sn un nabbo, ma ho usato 2 variabili e lo spostamento del mouse è invertito,cioè se si sposta il mouse a destra la visuale va a sinistra, se si sposta il mouse in alto la visuale si sposta in basoo.... Help! :confuso:

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: spostare la visuale in 3D

Messaggio da BaronVsCorsar »

inverti il funzionamento.
potresti moltiplicare per (-1) l'effetto di spostamento,
o invertire il codice.

ti ricordo che in matematica l'asse y cresce verso l'alto, mentre sul pc le coordinate dello schermo crescono verso il basso. dubito sia questo il problema dato che lo hai anche per dx e sx.
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

BaronVsCorsar ha scritto:inverti il funzionamento.
potresti moltiplicare per (-1) l'effetto di spostamento,
o invertire il codice.

ti ricordo che in matematica l'asse y cresce verso l'alto, mentre sul pc le coordinate dello schermo crescono verso il basso. dubito sia questo il problema dato che lo hai anche per dx e sx.

no, invertendo per (-1), xò l'asse y del mouse è giusto quindi questo vuol dire k bisognerebbe invertire il codice, idee?

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: spostare la visuale in 3D

Messaggio da BaronVsCorsar »

no, invertendo per (-1), xò l'asse y del mouse è giusto quindi questo vuol dire k bisognerebbe invertire il codice, idee?
incomprensibile :fapensare:

prima dicevi di aver invertito sia l'asse orizzontale, sia quello verticale, ora che quello verticale è giusto... :confuso:

Ricordati che sei nel 3d, le coordinate x,y,z sono orientate rispetto un sistema di riferimento, e la tua camera non è detto che mostri l'alto corrispondente alla y crescente.
Dipende da come hai settato la visuale.

la funzione
d3d_set_projection_ext
hai capito come si utilizza o hai semplicemente copiato il codice che ti hanno proposto?
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

BaronVsCorsar ha scritto:
no, invertendo per (-1), xò l'asse y del mouse è giusto quindi questo vuol dire k bisognerebbe invertire il codice, idee?
incomprensibile :fapensare:

prima dicevi di aver invertito sia l'asse orizzontale, sia quello verticale, ora che quello verticale è giusto... :confuso:

Ricordati che sei nel 3d, le coordinate x,y,z sono orientate rispetto un sistema di riferimento, e la tua camera non è detto che mostri l'alto corrispondente alla y crescente.
Dipende da come hai settato la visuale.

la funzione
d3d_set_projection_ext
hai capito come si utilizza o hai semplicemente copiato il codice che ti hanno proposto?
No, lascia stare, sono un cretino io;non mi ero accorto k lui nella seconda riga aveva messo:
direction+=display_get_mouse-display_get_width()
ed è qui k sbaglia! :spat:
è direction+=(-display_get_mouse+display_get_width())
sono proprio un cretino!
Grazie comunque!

Avatar utente
luckluppolo
Newbie
Messaggi: 27
Iscritto il: 04/02/2013, 16:52
Specialità: programmazione 2D
Uso: GameMaker 8
Località: Veneto
Contatta:

Re: spostare la visuale in 3D

Messaggio da luckluppolo »

BaronVsCorsar ha scritto:
no, invertendo per (-1), xò l'asse y del mouse è giusto quindi questo vuol dire k bisognerebbe invertire il codice, idee?
incomprensibile :fapensare:

prima dicevi di aver invertito sia l'asse orizzontale, sia quello verticale, ora che quello verticale è giusto... :confuso:

Ricordati che sei nel 3d, le coordinate x,y,z sono orientate rispetto un sistema di riferimento, e la tua camera non è detto che mostri l'alto corrispondente alla y crescente.
Dipende da come hai settato la visuale.

la funzione
d3d_set_projection_ext
hai capito come si utilizza o hai semplicemente copiato il codice che ti hanno proposto?
No, lascia stare, sono io k sono un cretino, l'errore è k nella seconda riga il display_get_mouse è negativo e il display_get_width è positivo; quindi viene cosi:
direction+=(-display_get_mouse+dsplay_get_width)

sono proprio un cretino! :spat:
Grazie comunque!!!

Rispondi

Chi c’è in linea

Visitano il forum: Bing [Bot], Google [Bot] e 114 ospiti