Libreria Joystick per Dos

 

[Joystick] Dato il grande successo dell'emulazione dei giochi arcade su PC, ho deciso di rilasciare al pubblico la mia Libreria Joystick per Dos (che è utilizzata anche nel mio 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. Se sei un autore di emulatori o semplicemente stai pensando di aggiungere il supporto per joystick ai tuoi programmi, ti dovrebbe interessare!

 

Tipo Versione Descrizione Requisiti Caratteristiche Download

 

Tipo

Libreria C; prodotto freeware/GNU General Public License 2.0.

 

Versione

1.2 / inglese.

Modifiche nella versione 1.2:

 

Descrizione

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, dello stesso autore; 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.

 

Requisiti

 

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.

 

Download

Scarica la Joystick Library for Dos (versione 1.2)

 

Inizio pagina