Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Ruotare view attorno a un'istanza

Messaggio da Homunculus »

Magari potete darmi una mano sto impazzendo con un problema con le view. Vorrei fare in modo che la view ruotasse attorno al personaggio del mio gioco, dove il personaggio sta esattamente al centro della rotazione. Non é un problema fintanto che il personaggio sta al centro della view, ma per una scelta quasi obbligata rispetto al gameplay il personaggio si trova (e resta) piu in basso rispetto al centro. La vew in questo caso continua a girare attorno al suo centro e non quello del personaggio, non so bene come risolvere
Filo
GMI Honor
Messaggi: 6097
Iscritto il: 09/08/2008, 14:31
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da Filo »

potresti usare view_xview[0]=sin(...)cos o tan
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da Homunculus »

Gia provato non é proprio così evidente come sembra
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da sggsoftware »

Homunculus ha scritto:Magari potete darmi una mano sto impazzendo con un problema con le view. Vorrei fare in modo che la view ruotasse attorno al personaggio del mio gioco, dove il personaggio sta esattamente al centro della rotazione. Non é un problema fintanto che il personaggio sta al centro della view, ma per una scelta quasi obbligata rispetto al gameplay il personaggio si trova (e resta) piu in basso rispetto al centro. La vew in questo caso continua a girare attorno al suo centro e non quello del personaggio, non so bene come risolvere
Come devo immaginarmelo il gioco? Un omino visto dall'alto può andar bene come esempio? L'omino appare sullo schermo sempre rivolto verso l'alto, mentre invece è lo schermo a girare.

Se stai realizzando qualcosa del genere, devi calcolarti le coordinate di un punto immaginario che si trova davanti al giocatore, e poi centrare la view su questo punto (oltre ovviamente a cambiare l'angolazione della view). Questo codice dovrebbe andar bene (l'ho testato):

Codice: Seleziona tutto

var px;
var py;

px=x+100*cos(direction*6.28/360);
py=y-100*sin(direction*6.28/360);

view_xview=px-view_wview/2;
view_yview=py-view_hview/2;
view_angle=360-direction+90;
Con direction sto indicando la rotazione del giocatore; ovviamente, se nel tuo progetto usi una variabile diversa, devi sostituirla (ad esempio image_angle).
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da Homunculus »

Grandissimo, funziona alla perfezione. Io sbagliavo il calcolo dei punti px e py. Tra parentesi, la conversione tra gradi e radianti la puoi fare con la funzione degtorad di gm
Filo
GMI Honor
Messaggi: 6097
Iscritto il: 09/08/2008, 14:31
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da Filo »

che differenza c'è?
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Ruotare view attorno a un'istanza

Messaggio da Homunculus »

Nessuna, é solo piu comodo