Autore Topic: Supporto ai joypad  (Letto 1340 volte)

Offline Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Supporto ai joypad
« il: 06 Marzo 2012, 11:09:23 »
Altro dubbio che mi frulla in testa.
Vorrei creare una sorta di configuratore per joypad, ho dato un'occhiata alla classe in oggetto http://gambasdoc.org/help/comp/gb.sdl/.joystick?it&v3 , ma ad essere sincero non ho capito una mazza.

Avete per caso avuto modo di smanettarci un poco e capire come funziona?
E' possibile integrare tale classe in un progetto esistente?

Grazie sempre in anticipo per le risposte.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #1 il: 06 Marzo 2012, 12:52:56 »
Avete per caso avuto modo di smanettarci un poco e capire come funziona?
:ciao:
Ad un certo punto mi ero messo in testa anch'io di vedere un po' come interagire con un joystick (avrei voluto utilizzarlo per gestire i messaggi Midi), ma quando ho saputo che il vecchio tipo era stato ormai sostituito dalla joypad, ho lasciato perdere.  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #2 il: 06 Marzo 2012, 13:04:37 »
non dovrebbero esserci troppi problemi ad utilizzare un jostik,alla fime funziona piu o meno come un mouse/tastiera

Offline Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #3 il: 06 Marzo 2012, 16:40:46 »
Ho trovato questo esempio che dovrebbe fare al caso mio:

http://old.nabble.com/how-to-flush-a-process-stream-td31264019.html

Il mio dubbio però è se è possibile implementare questo codice in un progetto esistente visto che è impossibile abilitare gb.sdl e gb.qt contemporaneamente.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #4 il: 06 Marzo 2012, 19:39:11 »
purtroppo sdl non può coesistere con le qt, del resto il joy ha senso in un gioco che si presume sia realizzato con le sdl, questo cmq perchè le sdl forniscono il supporto al joystic , può essere che le qy invece non lo forniscano

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #5 il: 06 Marzo 2012, 20:03:30 »
sembrerebbe che l' unico modo sia usare exec, ma poi bisogna capire che diavolo vuol dire ciò che comunica il joy


Codice: [Seleziona]
Public Sub Gamepad_READ()
   Dim sBuf As String
Dim i As Integer
 

 
  If Lof(Gamepad) Then
    Read #Gamepad, sBuf, Lof(Gamepad)
 
Print sbuf
   
  End If
End

Public Sub Form_Open()

 
Gamepad = Exec ["cat", "/dev/input/js0"] For Read As "Gamepad"


End


Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #6 il: 10 Marzo 2012, 00:13:32 »
sembrerebbe che l' unico modo sia usare exec, ma poi bisogna capire che diavolo vuol dire ciò che comunica il joy
Molto interessante il tuo suggerimento, fsurfing.
Ho fatto una prova con il mouse:coder:
Codice: gambas [Seleziona]


Private hpro As Process

Public sub Button1_Click()

' è stato necessario avere i privilegi da Root !
' quindi uso "gksu" oppure "sudo" (mi farà apparire una finestra oppure mostrerà il cursore nella Console del progetto per inserire la password per Root):
    hpro = Exec ["sudo", "cat", "/dev/input/mouse0"] For Read As "processo"

End


Public Sub processo_Read()

' quello che verrebbe scritto sul terminale:
   Dim num As Byte

' leggo i dati decimali restituiti dal file-device del topastro:
   Read #hpro, num

'...e li mostro in console:
   Print num

End


Quello che è interessante, è che muovendo il mouse ottico mi venivano restituiti valori (più o meno sempre) coerenti. Per esempio, spostando il topastro in basso, ricevevo in console i valori: 40 e 0; portandolo in alto avevo: 8, 0 e 1; e portandolo a sinistra: 24, 0.

Vedi qui:
http://www.gambas-it.org/smf/index.php?topic=2104.0



...suppongo  :-\ che per il joypad il discorso sia analogo, ossia con valori costanti, standard.
« Ultima modifica: 03 Dicembre 2020, 00:39:51 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #7 il: 10 Marzo 2012, 12:26:25 »
no non proprio, considdera che il joy ha molri assi e molti pulsanti

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #8 il: 10 Marzo 2012, 12:27:08 »
la cosa migliore sarebbe usare extern ,ma non ho trovato una libreria da utilizzare ....

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #9 il: 10 Marzo 2012, 13:33:42 »
la cosa migliore sarebbe usare extern
:ciao:
Sì, hai ragione, sarebbe effettivamente la cosa migliore, poiché i valori sarebbero passati da e verso il joypad da una o più specifiche funzioni.

ma non ho trovato una libreria da utilizzare ....
Qualcuno... Speedvicio  :-[ dovrebbe fare una ricerca e vedere quali sono le funzioni da utlizzare ed, appunto, in quale libreria .so si trovano.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #10 il: 10 Marzo 2012, 17:18:53 »
ho sperimentato qualcosa con jstest che riesce a dare risultati più precisi.
Vi posto l'embrione di codice che avevo fatto e che non ho potuto finire per mancanza di tempo.
Attualmente manca uno switch per interrompere l'acquisizione dell'input una volta ottenuto, appena ho due minuti lo riprendo e vedo di completarlo.

Edit:Ho potuto lavorarci un pochino con qualcosa di più concreto, vi posto la versione 2 (in teoria dovrebbe funzionare decentemente)
« Ultima modifica: 10 Marzo 2012, 19:12:29 da Speedvicio »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #11 il: 11 Marzo 2012, 00:09:10 »
ho sperimentato qualcosa con jstest che riesce a dare risultati più precisi.
Vi posto l'embrione di codice che avevo fatto ......... vi posto la versione 2 (in teoria dovrebbe funzionare decentemente)

Sembra carino ed interessante.

Mannaggia la misera :hatecomputer: , però non ho un joystick, né un joypad per provarlo !


...però, se tu potessi studiare qualcosa senza Shell, magari, come suggeriva fsurfing, con chiamata di funzioni esterne.... sarebbe ancor più interessante.
« Ultima modifica: 11 Marzo 2012, 16:33:34 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #12 il: 11 Marzo 2012, 20:01:27 »
ho sperimentato qualcosa con jstest che riesce a dare risultati più precisi.
Vi posto l'embrione di codice che avevo fatto ......... vi posto la versione 2 (in teoria dovrebbe funzionare decentemente)

Sembra carino ed interessante.

Mannaggia la misera :hatecomputer: , però non ho un joystick, né un joypad per provarlo !


...però, se tu potessi studiare qualcosa senza Shell, magari, come suggeriva fsurfing, con chiamata di funzioni esterne.... sarebbe ancor più interessante.

Il problema è proprio quello , non ho idea di come interagire con librerie esterne in gambas  :-[

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Supporto ai joypad
« Risposta #13 il: 26 Marzo 2012, 03:45:19 »
Il problema è proprio quello , non ho idea di come interagire con librerie esterne in gambas  :-[

...guarda caso... :-[ avrei scritto al riguardo una breve spiegazione pratica  ;D
http://www.gambas-it.org/wiki/index.php/Extern:_richiamare_funzioni_esterne_a_Gambas
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »