sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

[tutorial] move_contact_solid con precisione centesimale

Messaggio da sggsoftware »

La funzione move_contact_solid di Game Maker è estremamente potente per la creazione di giochi di ogni tipo, dai platform ai top-down. Una grave limitazione purtroppo consiste nel fatto che la funzione non è in grado di effettuare spostamenti decimali. Esempio: move_contact_solid(0,1.3) >> La parte decimale viene ignorata, e il giocatore si muoverà ogni step di 1 pixel netto. Questa limitazione può risultare molto grave nel caso di giochi con accelerazioni/decelerazioni molto graduali, o comunque in generale con giochi ad alto framerate.

Questi 2 script, per i quali ho speso un sacco di tempo a scervellarmi, risolvono il problema, consentendo una precisione al centesimo di pixel.

Script xprec:

Codice: Seleziona tutto

if (!variable_local_exists("xpre")) xpre=50;

var newp,velo;
newp=x*100+xpre+argument0*100;
velo=floor(newp/100)-x;

if (velo>0) move_contact_solid(0,velo);
else if (velo<0) move_contact_solid(180,-velo);
xpre=newp-floor(newp/100)*100;
Script yprec:

Codice: Seleziona tutto

if (!variable_local_exists("ypre")) ypre=50;

var newp,velo;
newp=y*100+ypre+argument0*100;
velo=floor(newp/100)-y;

if (velo>0) move_contact_solid(270,velo);
else if (velo<0) move_contact_solid(90,-velo);
ypre=newp-floor(newp/100)*100;
Basta passare agli script lo spostamento in pixel. Ovviamente, xprec è per il movimento sull'asse x, yprec per l'asse y. Scomporre il moto nelle 2 componenti è estremamente utile per semplificare problemi relativi alle collisioni.
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da maz85 »

potremo inserirli in tutorial sul sito..
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da sggsoftware »

maz85 ha scritto:potremo inserirli in tutorial sul sito..
Ah scusate, c'è la sezione tutorial nel sito? Grazie, ora do un'occhiata.
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da maz85 »

Piu che altro su generale stiamo discutendo per rimpolpare la sezione tutorial nel sito, vedi se puoi participare. :salut:
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da sggsoftware »

maz85 ha scritto:Piu che altro su generale stiamo discutendo per rimpolpare la sezione tutorial nel sito, vedi se puoi participare. :salut:
Ho dato un'occhiata ai tutorial sul sito. Sono pochissimi!!! :shock: maz, a me non dispiacerebbe partecipare, ma non sarebbe meglio aprire una nuova sezione nel forum chiamata "tutorial e guide" o qualcosa del genere?

Nel sito i tutorial sono meno raggiungibili; tra l'altro con i post si ha il vantaggio di poter chiedere al creatore del tutorial eventuali chiarimenti. Il forum inoltre è più dinamico: quando viene aggiunto un nuovo post, viene messo in evidenza.

Volendo si potrebbe anche lasciare la lista dei tutorial nel sito principale, reindirizzando però l'utente ai singoli post sul forum.
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da maz85 »

Il link è questo: http://gmitalia.altervista.org/gmi_foru ... f=1&t=1347

Praticamente sul sito si metteva il file a disposizione poi si metteva il link al forum dove se ne poteva discutere. Cmq chiunque può mandarmi via email il file editabile e una piccola spiegazione così io posso aggiungere.

Oppure se non è necessariamente un tutorial, ma un piccolo esempio, sul sito basta aggiungere su Download un nuovo "esempio gmk/gmd".
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da sggsoftware »

maz85 ha scritto:Cmq chiunque può mandarmi via email il file editabile e una piccola spiegazione così io posso aggiungere.
Ok, se scrivo nuovi tutorial te li mando via email con una breve descrizione. Ci sono un sacco di bei tutorial che si potrebbero realizzare, primo tra questi un sistema di intelligenza artificiale per giochi platform.
maz85 ha scritto:Praticamente sul sito si metteva il file a disposizione poi si metteva il link al forum dove se ne poteva discutere.
Scusa, ma ancora non mi è chiaro del tutto: se non ho capito male i tutorial compariranno nella sezione del sito Articoli > Tutorial. Come fanno gli utenti a postare commenti o domande? Devo creare un topic sul forum parallelo al tutorial e aggiungere il link? E poi in quale sezione?
Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da maz85 »

Poi ci penso io nel tutorial ad indirizzarlo su un topic magari su Domande o risposte o su Programmazione avanzata (dipende dalla difficoltà/complessità), per esempio se crei l'argomento di discussione su un tuo tutorial e me lo fornisci (il link) o me lo cerco io, provvederò ad inserire sulla pagina del sito anche il link alla discussione. Lo stesso
vale sul topic che hai aperto, per scaricare i file gmk o altre risorse puoi indirizzare li.
sggsoftware
Membro
Messaggi: 178
Iscritto il: 01/07/2007, 15:09
Uso: GM:Studio 2
Località: Sicilia
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da sggsoftware »

maz85 ha scritto:Poi ci penso io nel tutorial ad indirizzarlo su un topic magari su Domande o risposte o su Programmazione avanzata (dipende dalla difficoltà/complessità), per esempio se crei l'argomento di discussione su un tuo tutorial e me lo fornisci (il link) o me lo cerco io, provvederò ad inserire sulla pagina del sito anche il link alla discussione. Lo stesso
vale sul topic che hai aperto, per scaricare i file gmk o altre risorse puoi indirizzare li.
OK, tutto chiaro! Se scrivo tutorial te li mando. ;)
Agamemnon
Membro super
Messaggi: 948
Iscritto il: 16/04/2006, 15:10
Uso: GM:Studio 2
Località: Aprilia (LT)
Contatta:

Re: [tutorial] move_contact_solid con precisione centesimale

Messaggio da Agamemnon »

Whoa! Davvero una buona idea Sggsoftware, la voglio provare.