FRK
Membro attivo
Messaggi: 407
Iscritto il: 14/10/2006, 18:48
Uso: GM:Studio 2
Località: Bergamo
Contatta:

Collisioni del player in rotazione...

Messaggio da FRK »

Ho provato di tutto, ma per ogni nuovo script un nuovo problema. 8)
il più funzionale che ho provato è (nell'evento collisione tra player e muro):

Codice: Seleziona tutto

global.con=true;
if x>other.x
{
x=other.x;
} 
if x<other.sprite_width
{
x=sprite_width; 
}
if y>other.y
{
y=other.y;
} 
if y<sprite_height
{
y=sprite_height;
}
"global.con" è la variabile che serve a limitare la rotazione del player nell'evento step

Codice: Seleziona tutto

...
if keyboard_check(ord("A"))&& global.con=false
{
image_angle+=1
}
if keyboard_check(ord("D"))&& global.con=false
{
image_angle-=1
}
...
global.con=false
...
in questo modo funziona, ma spesso si incastra.
Altra cosa importante è che per motivi grafici l'origine del player è spostata più verso un lato dell'immagine...

Qualcuno ha gia fatto/risolto robe del genere? :hum:
BerGame - Sviluppo videogiochi mobile, advergame e videogiochi educativi
Immagine
ImmagineMiglior ambientazioni

Immagine GMI 09 Competition
Migliore ambiente di gioco
Miglior fattore
guida html
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da maz85 »

Non ho provato il codice, ma il problema è che quando ruoti il personaggio si incastra sul muro?
O imposti una maschera circolare per il personaggio oppure fai che addosso il muro lo sprite ruota
in base a come si appoggia.
FRK
Membro attivo
Messaggi: 407
Iscritto il: 14/10/2006, 18:48
Uso: GM:Studio 2
Località: Bergamo
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da FRK »

maz85 ha scritto:Non ho provato il codice, ma il problema è che quando ruoti il personaggio si incastra sul muro?
Si, a volte mentre ruota, si incastra "lateralemente" nel muro...
maz85 ha scritto:O imposti una maschera circolare per il personaggio oppure fai che addosso il muro lo sprite ruota
in base a come si appoggia.
Emh... e come? :oops:
Vorrei postare l'editabile ma si tratta del gioco per la competizione...
BerGame - Sviluppo videogiochi mobile, advergame e videogiochi educativi
Immagine
ImmagineMiglior ambientazioni

Immagine GMI 09 Competition
Migliore ambiente di gioco
Miglior fattore
guida html
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da maz85 »

Sull'oggetto metti mask = uno sprite tondo (è visto dall'alto il gioco?) praticamente mask sostituisce le collisioni ovvero tutto colliderà con mask e non con lo sprite.
FRK
Membro attivo
Messaggi: 407
Iscritto il: 14/10/2006, 18:48
Uso: GM:Studio 2
Località: Bergamo
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da FRK »

provato anche con una mask... non migliora :(

... va bhe per ora lo lascio cosi... non è che sia ingiocabile, basta non fare movimenti assurdi...
...non so, se qualcuno ha da propormi qualche codice da provare in alternativa ben venga...
BerGame - Sviluppo videogiochi mobile, advergame e videogiochi educativi
Immagine
ImmagineMiglior ambientazioni

Immagine GMI 09 Competition
Migliore ambiente di gioco
Miglior fattore
guida html
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da maz85 »

Linka un editabile su questo problema, non devi linkare il gioco completo, crea un altro file di gm e ci metti le cose che ti interessano.
Avatar utente
dave_djtam
GMI Advanced
Messaggi: 1604
Iscritto il: 02/07/2007, 21:32
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da dave_djtam »

io ho la soluzione, ma mi sono fatto una testa tanta x arrivarci, e dato che utilizzo tale codice x il game della competizione.........non posso avvantaggiare un avversario......
al termine te lo daro' volentieri
Immagine
Miglior colonna sonora / Miglior utilizzo di particles
Echos
Listen to me
ScreenSaver Full V3
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: Collisioni del player in rotazione...

Messaggio da sggsoftware »

Io suggerirei di non usare l'image_angle, perchè modifica la rotazione sia dello sprite che della maschera. Piuttosto, utilizza una tua variabile (magari chiamala "rot"), e poi aggiungi nell'evento Draw dell'oggetto questo codice:

Codice: Seleziona tutto

draw_sprite_ext(sprite_index,-1,x,y,image_xscale,image_yscale,rot,image_blend,image_alpha);
In questo modo, lo sprite apparirà ruotato sullo schermo, ma l'area di collisione non sarà soggetta a rotazione. Puoi usare anche una mask circolare, ma non è necessario. Piuttosto disattiva il rilevamento collisioni precise sullo sprite!!!

E comunque quel sistema di collisioni mi convince assai poco; secondo me sarebbe meglio utilizzare la funzione move_contact_solid:
http://gmitalia.altervista.org/gmi_foru ... f=6&t=2163