Libreria
Joystick per Dos |
Dato il grande successo dell'emulazione dei giochi arcade su PC, la
SZP ha deciso di rilasciare al pubblico la propria Libreria Joystick per Dos (che è
utilizzata anche nell'emulatore JoyEmu). Questo pacchetto
include il codice C completo (Borland C e DJGPP, ma dovrebbe risultare semplice tradurlo
in altri dialetti) ed un programma di test.
Questo piccolo pacchetto è indirizzato
a quei programmatori che vorrebbero introdurre il supporto per joystick nei loro programmi
ma non desiderano sprecare troppo tempo su questa caratteristica. Con due semplici
funzioni, è possibile verificare lo stato di entrambi i joystick, inclusi i tasti di
fuoco; sono supportati joystick con 2, 4, 6 e 8 pulsanti di fuoco.
Se non sei un programmatore,
potresti dare un'occhiata a JoyEmu, sempre della SZP; questo
emulatore di tastiera ha un pannello di controllo molto sofisticato e permette di
aggiungere il supporto joystick a programmi esistenti senza modificare il codice sorgente;
inoltre, è compatibile con Dos e Windows 9x.
Il codice per queste routine è preso dal sorgente di
JoyEmu; compila senza problemi sotto:
ma dovrebbe risultare abbastanza portabile ad altri compilatori C Dos.
Caratteristiche |
L'utilizzo è molto semplice:
unsigned char j, mode, skipjoy; // Impostare mode in base al tipo di joystick richiesto: // JOY_2BUTTONS joystick standard a 2 pulsanti // JOY_4BUTTONS joystick con 4 pulsanti (il fuoco 3 e 4 corrisponde ai pulsanti // di fuoco dell'altro joystick) // JOY_6BUTTONS joystick a 6 pulsanti (il fuoco 3 & 4 è come sopra, il fuoco 5 // e 6 è collegato alle direzioni del secondo joystick) // JOY_8BUTTONS joystick a 8 pulsanti (i pulsanti 1..6 sono come sopra, // i pulsanti 7 e 8 sono collegati alle rimanenti direzioni del // secondo joystick) // // Impostare skipjoy a: // JOY_NONE se tutti i joystick connessi devono essere rilevati e calibrati; // JOY_SECOND se viene utilizzato solo il primo joystick, che deve essere calibrato. // // Impostare calibfile al nome del file da utilizzare per salvare/ricaricare // le informazioni di calibrazione (NULL per forzare la ricalibrazione ad ogni // avvio). j = InstallJoystick(mode, skipjoy, calibfile);
j & JOY_FIRST // il primo joystick è presente? j & JOY_SECOND // il secondo joystick è presente? j & JOY_BOTH // entrambi i joystick sono presenti? // (oppure: è presente un joystick a 6/8 pulsanti?)
unsigned int fj, sj; ReadJoystick(&fj, &sj);
fj & JOY_xx // la direzione è attiva?
dove "xx" può essere: UP (su), DN (giù), LT (sinistra), RT (destra)
fj & JOY_AF // il primo pulsante è premuto? fj & JOY_BF // il secondo pulsante è premuto? fj & JOY_CF // il terzo pulsante è premuto? (solo mode >= JOY_4BUTTONS) fj & JOY_DF // il quarto pulsante è premuto? (solo mode >= JOY_4BUTTONS) fj & JOY_EF // il quinto pulsante è premuto? (solo joystick 1, mode >= JOY_6BUTTONS) fj & JOY_FF // il sesto pulsante è premuto? (solo joystick 1, mode >= JOY_6BUTTONS) fj & JOY_GF // il settimo pulsante è premuto? (solo joystick 1, mode = JOY_8BUTTONS) fj & JOY_HF // l'ottavo pulsante è premuto? (solo joystick 1, mode = JOY_8BUTTONS)Naturalmente, sostituire ad "fj" la variabile "sj" per testare il secondo joystick.
Le informazioni di calibrazione sono
salvate e ricaricate automaticamente quando viene specificato 'calibfile' in
InstallJoystick; l'utente, tuttavia, non viene avvertito se si verifica un errore durante
il salvataggio delle informazioni di configurazione. La modalità del joystick (2, 4, 6 o
8 pulsanti) è anch'essa salvata nella configurazione; se il modo specificato o il modo
memorizzato nel file di configurazione è JOY_6BUTTONS/JOY_8BUTTONS (ma i due modi non
coincidono), la routine invoca automaticamente la ri-calibrazione del joystick; lo stesso
accade se un nuovo joystick viene trovato, oppure se il programma rileva come incorretta
la calibrazione (questo è più difficile: è possibile che joystick differenti abbiano
una calibrazione simile ma non identica, per cui questa routine può fallire nel rilevare
l'incongruenza).
Se si desidera forzare la ricalibrazione dei joystick, è sufficiente cancellare il file
di configurazione.
Se il vostro programma richiede più di due tasti di
fuoco, cercate di mantenere un opzione per coloro che hanno joystick con due soli tasti di
fuoco, in modo che possano utilizzare la tastiera al posto dei pulsanti mancanti.
Se il vostro programma utilizza un solo joystick, utilizzare JOY_SECOND come valore del
parametro skipjoy.
La routine disattiva automaticamente i joystick
quando vengono disconnessi; dovete successivamente invocare InstallJoystick dopo aver
aggiunto eventuali dispositivi.
Requisiti:
Versioni |
Libreria C; prodotto freeware/GNU
General Public License 2.0.
Ultima versione: 1.2 / inglese.
Modifiche nella versione 1.2:
Download |
Scarica la Joystick Library for Dos (versione 1.2)
![]() |
Inizio pagina |