[botta & risposta]Potenziare i controlli del joystick
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
[botta & risposta]Potenziare i controlli del joystick
Mentre facevo una classica schermata di configurazione tasti(da parte dell'utente) mi è capitato di dover gestire anche il joystick. Per facilitarmi la creazione del gioco ho pensato di creare degli script per usare facilmente un tasto identificato dall'azione che fa in modo da evitare di controllarmi ogni volta il tasto selezionato eccetera. In parole più semplici è molto più facile usare uno script che ti dici se è premuto il tasto pungo indipendentemente da quali bottoni ha scelto l'utente. Mi è dunque capitato di dover gestire anche il joystick allo stesso modo ma ho notato che il joystick non ha molti controlli come quelli della tastiera, ad esempio non è possibile controllare se il pulsante è appena stato premuto o è stato rilasciato, inoltre le freccette non sono considerate come pulsanti separati, si può solo sapere la direzione che indicano e ciò non favorisce il tutto perchè come per i pulsanti non cè il controllo pressione/rilascio e non vi è nemmeno alcun rilevamento su quale delle freccette è stata premuta attualmente.
Per risolvere questo problema ho fatto una serie di script con cui è possibile avere dei controlli più avanzati rispetto a quelli normali.
Ho fatto in totale 7 script ottimizzati al meglio per la velocità:
joystick_buttons_control_init()
Questo serve ad inizializzare il tutto
joystick_buttons_control_update()
Questo refresha il controllo del joystick, è cosigliabile usarlo in ogni step
joystick_check_button_pressed(joystick_id,button_id)
vi dice se il pulsante scelto del joystick scelto è appena stato premuto
joystick_check_button_released(joystick_id,button_id)
vi dice se il pulsante scelto del joystick scelto è appena stato rilasciato
joystick_check_arrow_pressed(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è appena stata premuta
maggiori dettagli sull'utilizzo all'interno dello script
joystick_check_arrow_released(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è appena stata rilasciata
maggiori dettagli sull'utilizzo all'interno dello script
joystick_check_arrow_released(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è attualmente premuta
maggiori dettagli sull'utilizzo all'interno dello script
Qui il download:
http://www.megaupload.com/?d=ZUY4WYW0
E' un file di script, entrate in gm ed usate il comando "import scripts"
A breve un'editabile dimostrativo.
Per risolvere questo problema ho fatto una serie di script con cui è possibile avere dei controlli più avanzati rispetto a quelli normali.
Ho fatto in totale 7 script ottimizzati al meglio per la velocità:
joystick_buttons_control_init()
Questo serve ad inizializzare il tutto
joystick_buttons_control_update()
Questo refresha il controllo del joystick, è cosigliabile usarlo in ogni step
joystick_check_button_pressed(joystick_id,button_id)
vi dice se il pulsante scelto del joystick scelto è appena stato premuto
joystick_check_button_released(joystick_id,button_id)
vi dice se il pulsante scelto del joystick scelto è appena stato rilasciato
joystick_check_arrow_pressed(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è appena stata premuta
maggiori dettagli sull'utilizzo all'interno dello script
joystick_check_arrow_released(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è appena stata rilasciata
maggiori dettagli sull'utilizzo all'interno dello script
joystick_check_arrow_released(joystick_id,arrow_id)
vi dice se la freccia scelta del joystick scelto è attualmente premuta
maggiori dettagli sull'utilizzo all'interno dello script
Qui il download:
http://www.megaupload.com/?d=ZUY4WYW0
E' un file di script, entrate in gm ed usate il comando "import scripts"
A breve un'editabile dimostrativo.
Ultima modifica di Jak il 26/02/2011, 21:45, modificato 3 volte in totale.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Doppioposto per richiamare l'attenzione. Ho testato i miei script su un controller della play 2 con l'adattatore(controllati da un'altro utente di GMI).
Lo script dell'update avera un'errore che ho fatto quando ho ottimizzato il codice. Ora comunque ho risolto e qui trovate il file corretto:
http://www.megaupload.com/?d=ZUY4WYW0
A breve un editabile dimostrativo sul suo semplice funzionamento
Lo script dell'update avera un'errore che ho fatto quando ho ottimizzato il codice. Ora comunque ho risolto e qui trovate il file corretto:
http://www.megaupload.com/?d=ZUY4WYW0
A breve un editabile dimostrativo sul suo semplice funzionamento
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
utile,grazie ;D
eppure mi sembra tutto giusto...
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Mi fa piacere che qualcuno li trova utili. Tra testing vario e realizzazione ci ho perso una giornata e mezza. Quello è niente in confronto a tutto il resto che ho fatto per la configurazione dei tasti ma comunque mi sembravano troppo utili per non metterli su gmi.
Esiste una sezione appostita del sito dove mettere il tutto? Snippet se non sbaglio è solo per uno script singolo.
Già che ci sono propongo una sezione dedicata ai botta e risposta.
Esiste una sezione appostita del sito dove mettere il tutto? Snippet se non sbaglio è solo per uno script singolo.
Già che ci sono propongo una sezione dedicata ai botta e risposta.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- CaMpIoN
- Membro super
- Messaggi: 684
- Iscritto il: 17/11/2009, 16:20
- Specialità: Programmatore
- Uso: GM:Studio 1.4 Master
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Mi sembra interessante ci voleva qualche controllo in piu per il joystick, fin'ora simulavo quel release con variabili ecc..
Giochi da me creati:
Spoiler
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Infatti uso quel sistema solo che il tutto è ottimizzato al meglio per essere più veloce possibile e si gestisce praticamente da solo. La cosa più impegnativa è stato il controllo delle freccette poichè si sa solo la direzione(la quale oltretutto non è un valore angolare). Con i miei script ho reso le freccette un tasto a parte, ciò è a mio parere utilissimo perchè la tastiera ha le freccette dunque si può fare lo stesso identico controllo sia per il joystick che per la tastiera e facilitare lo sviluppo. Quello script esegue i controllo solo ed esclusivamente per i tasti che ha il joystick in modo da non fare calcoli inutili ed il tutto chiaramente solo se esiste un joystick, le variabili vengono comunque inizializzate in modo che se checkate un tasto che non esiste vi da "0" e non errore per variabile non esistente comunque non ho messo molti controlli quindi se per esempio checkate tasti non esistenti, che so il -1 è possibile che vi venga fuori errore, provvederò a fare anche questi controlli ora che faccio l'esempio di utilizzo così non verrà mai fuori un'errore.CaMpIoN ha scritto:Mi sembra interessante ci voleva qualche controllo in piu per il joystick, fin'ora simulavo quel release con variabili ecc..
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Fatto questo piccolo editabile di esempio sul semplice funzionamento di quelle poche ma utilissime funzioni.
http://www.megaupload.com/?d=0UTZA6SQ
Praticamente vi aumenterà la variabile appostita di 1 ogni volta che premete/rilasciate il tasto opportuno. ho messo il controllo delle freccette e dei tasti 1 2 3 4 che nel joystick della play 2 sono rispettivamente triangolo,cerchio,X,quadrato. Se attivate le levette analogiche GM le interpreta come freccette direzionali.
Ho aggiustato gli script ed ora non daranno mai errore(al massimo vi daranno strani risultati se ad esempio controllate un terzo joystick che GM non supporta), se vi dimenticate di inizializzare non fa niente perchè gli script inizializzano(solo se non è già stato fatto) automaticamente, è comunque buona norma inizializzare sempre. L'update vi consiglio di eseguirlo sull'evento begin_step dell'oggetto con l'id minore, se eseguirete dei controlli prima di updatare questi non saranno aggiornati e quindi i controlli saranno in ritardo di uno step.
Infine l'update fa tutto il lavoro sporco, quando checkate un tasto non farete altro che eseguire un controllo ad una variabile quindi potete usare quelle funzioni quante volte volete senza rischio di rallentare il gioco(chiaro che se lo fate millemila volte anche il più semplice controllo può rallentare)
Spero che il tutto vi sia utile, come ho già detto l'ho testato completamente quindi il funzionamento è assicurato(lo dico perchè non fa male mettere anche il supporto del joystick ad un gioco quindi potete usare queste funzioni senza avere un joystick per provare, se il gioco vi funziona con la tastiera vi funzionerà anche col joystick alla stessa maniera )
http://www.megaupload.com/?d=0UTZA6SQ
Praticamente vi aumenterà la variabile appostita di 1 ogni volta che premete/rilasciate il tasto opportuno. ho messo il controllo delle freccette e dei tasti 1 2 3 4 che nel joystick della play 2 sono rispettivamente triangolo,cerchio,X,quadrato. Se attivate le levette analogiche GM le interpreta come freccette direzionali.
Ho aggiustato gli script ed ora non daranno mai errore(al massimo vi daranno strani risultati se ad esempio controllate un terzo joystick che GM non supporta), se vi dimenticate di inizializzare non fa niente perchè gli script inizializzano(solo se non è già stato fatto) automaticamente, è comunque buona norma inizializzare sempre. L'update vi consiglio di eseguirlo sull'evento begin_step dell'oggetto con l'id minore, se eseguirete dei controlli prima di updatare questi non saranno aggiornati e quindi i controlli saranno in ritardo di uno step.
Infine l'update fa tutto il lavoro sporco, quando checkate un tasto non farete altro che eseguire un controllo ad una variabile quindi potete usare quelle funzioni quante volte volete senza rischio di rallentare il gioco(chiaro che se lo fate millemila volte anche il più semplice controllo può rallentare)
Spero che il tutto vi sia utile, come ho già detto l'ho testato completamente quindi il funzionamento è assicurato(lo dico perchè non fa male mettere anche il supporto del joystick ad un gioco quindi potete usare queste funzioni senza avere un joystick per provare, se il gioco vi funziona con la tastiera vi funzionerà anche col joystick alla stessa maniera )
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: [botta & risposta]Potenziare i controlli del joystick
a sto punto potevi fare una gex per semplificare il tuttoJak ha scritto:Fatto questo piccolo editabile di esempio sul semplice funzionamento di quelle poche ma utilissime funzioni.
http://www.megaupload.com/?d=0UTZA6SQ
Praticamente vi aumenterà la variabile appostita di 1 ogni volta che premete/rilasciate il tasto opportuno. ho messo il controllo delle freccette e dei tasti 1 2 3 4 che nel joystick della play 2 sono rispettivamente triangolo,cerchio,X,quadrato. Se attivate le levette analogiche GM le interpreta come freccette direzionali.
Ho aggiustato gli script ed ora non daranno mai errore(al massimo vi daranno strani risultati se ad esempio controllate un terzo joystick che GM non supporta), se vi dimenticate di inizializzare non fa niente perchè gli script inizializzano(solo se non è già stato fatto) automaticamente, è comunque buona norma inizializzare sempre. L'update vi consiglio di eseguirlo sull'evento begin_step dell'oggetto con l'id minore, se eseguirete dei controlli prima di updatare questi non saranno aggiornati e quindi i controlli saranno in ritardo di uno step.
Infine l'update fa tutto il lavoro sporco, quando checkate un tasto non farete altro che eseguire un controllo ad una variabile quindi potete usare quelle funzioni quante volte volete senza rischio di rallentare il gioco(chiaro che se lo fate millemila volte anche il più semplice controllo può rallentare)
Spero che il tutto vi sia utile, come ho già detto l'ho testato completamente quindi il funzionamento è assicurato(lo dico perchè non fa male mettere anche il supporto del joystick ad un gioco quindi potete usare queste funzioni senza avere un joystick per provare, se il gioco vi funziona con la tastiera vi funzionerà anche col joystick alla stessa maniera )
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Vero ma le mie vecchie esperienze nella creazione di gex non hanno avuto molto successo. Penso che ora ci riproverò e farò questa gex.Tizzio ha scritto:a sto punto potevi fare una gex per semplificare il tutto
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: [botta & risposta]Potenziare i controlli del joystick
si.. all'inizio non si capisce molto.Jak ha scritto:Vero ma le mie vecchie esperienze nella creazione di gex non hanno avuto molto successo. Penso che ora ci riproverò e farò questa gex.Tizzio ha scritto:a sto punto potevi fare una gex per semplificare il tutto
Ma dopo qualche tentativo capisci che è una cagata...
potresti fare anche la collyx in gex almeno hai sempre gli argomenti degli script sott'occhio
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Infatti è da quella, dopo averla fatta tutta per 3 volte senza successo(ha più di 80 funzioni e la volevo fare per bene la gex che credi)che mi sono arreso completamenteTizzio ha scritto:si.. all'inizio non si capisce molto.
Ma dopo qualche tentativo capisci che è una cagata...
potresti fare anche la collyx in gex almeno hai sempre gli argomenti degli script sott'occhio
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: [botta & risposta]Potenziare i controlli del joystick
non ci credo riesci a fare una gexJak ha scritto:Infatti è da quella, dopo averla fatta tutta per 3 volte senza successo(ha più di 80 funzioni e la volevo fare per bene la gex che credi)che mi sono arreso completamenteTizzio ha scritto:si.. all'inizio non si capisce molto.
Ma dopo qualche tentativo capisci che è una cagata...
potresti fare anche la collyx in gex almeno hai sempre gli argomenti degli script sott'occhio
è la cosa più semplice ...
inserisci lo script in gml;
inserisci la dll ;
definisci gli script e metti un info nella seconda e casella in basso a destra riguardante gli argument, del tipo: collyx_blah(pointx,pointy,blah,blah)...
non è per niente difficile magari non provare subito con 80 funzioni
prova appunto con questo del joystick
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Non è difficile, ho anche se guito le istruzioni del gex creator che sono identiche alle tue, il fatto è che non funziona...
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- CaMpIoN
- Membro super
- Messaggi: 684
- Iscritto il: 17/11/2009, 16:20
- Specialità: Programmatore
- Uso: GM:Studio 1.4 Master
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Forse un po' in ritardo , ma posso sapere cosa hai preso per adattare il joystick per PS2 al PC, poi un'altra cosa, quello della xBox ha bisogno degli infrarossi (o qualcosa del genere) per funzionare, sul mio PC penso che non ci sono, è possibile comprare uno a parte tipo chiavetta come quella bluetooth?Jak ha scritto:Doppioposto per richiamare l'attenzione. Ho testato i miei script su un controller della play 2 con l'adattatore(controllati da un'altro utente di GMI).
Lo script dell'update avera un'errore che ho fatto quando ho ottimizzato il codice. Ora comunque ho risolto e qui trovate il file corretto:
http://www.megaupload.com/?d=ZUY4WYW0
A breve un editabile dimostrativo sul suo semplice funzionamento
Giochi da me creati:
Spoiler
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
un adattatore ps2-usb: costo variabile tra i 6 € fino ai 14€. Mediaworld in genere ha questi dispositivi.CaMpIoN ha scritto:Forse un po' in ritardo , ma posso sapere cosa hai preso per adattare il joystick per PS2 al PC, poi un'altra cosa, quello della xBox ha bisogno degli infrarossi (o qualcosa del genere) per funzionare, sul mio PC penso che non ci sono, è possibile comprare uno a parte tipo chiavetta come quella bluetooth?
da quello che so il joypad della Xbox va con bluetooth. Di sicuro non con infrarossi.
cmq sì, è possibile, ma costano relativamente tanto in quanto ormai è un dispositivo superato (e a dire il vero non si è mai diffuso molto, a parte sui portatili di inzii anni 2000).
Schiva 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é?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
- CaMpIoN
- Membro super
- Messaggi: 684
- Iscritto il: 17/11/2009, 16:20
- Specialità: Programmatore
- Uso: GM:Studio 1.4 Master
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Grazie mille, ma tu sei un bot?
Sai praticamente tutto xD (Prendila come un complimento )
Sai praticamente tutto xD (Prendila come un complimento )
Giochi da me creati:
Spoiler
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [botta & risposta]Potenziare i controlli del joystick
Testing by Massimo. Ci avrò messo una giornata a fargli testare tutto per bene, non so dove l'ha pigliato poichè personalmente non l'ho mai visto(nemmeno al mediaworld)CaMpIoN ha scritto:Forse un po' in ritardo , ma posso sapere cosa hai preso per adattare il joystick per PS2
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: [botta & risposta]Potenziare i controlli del joystick
io cel'ho comprato alla cometJak ha scritto:Testing by Massimo. Ci avrò messo una giornata a fargli testare tutto per bene, non so dove l'ha pigliato poichè personalmente non l'ho mai visto(nemmeno al mediaworld)CaMpIoN ha scritto:Forse un po' in ritardo , ma posso sapere cosa hai preso per adattare il joystick per PS2
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti