FreeBASIC – tastiera

Dopo aver visto come lavorare con il mouse, oggi impareremo a lavorare con la tastiera (keyboard).

Funzione multikey

Il nome della funzione che utilizzeremo è multikey.

In quest’altro articolo viene invece descritto l’uso della funzione getkey.

Funzionamento

Questa funzione necessita come argomento del valore del codice del tasto che si vuole verificare se è stato premuto. Se il tasto viene effettivamente premuto la funzione restituisce il valore -1 (true), altrimenti 0 (false).

Sul sito ufficiale di FreeBASIC è presente la lista dei codici dei tasti.

A ciascun codice corrisponde una costante.

La collezione dei nomi di queste costanti rientra nello spazio dei nomi (namespace) identificato dalla sigla FB che va quindi anteposta al nome della costante attraverso la notazione puntata. Per esempio: FB.SC_ESCAPE (per indicare il tasto ‘Esc’).

Questi valori costanti sono definiti all’interno del file di intestazione fbgfx.bi che fa parte della libreria grafica di FreeBASIC.

Ciò comporta che all’inizio del modulo dovremo includere la libreria grafica attraverso l’istruzione #include.

Esempio

#include "fbgfx.bi"

dim as integer x, y
screen 19
x = 300: y = 200

''continua il ciclo sino alla pressione del tasto 'Esc' (esci)
do
  ''verifica se vengono premuti i tasti freccia
  if multikey(FB.SC_LEFT) then x = x - 1
  if multikey(FB.SC_RIGHT) then x = x + 1
  if multikey(FB.SC_UP) then y = y - 1
  if multikey(FB.SC_DOWN) then y = y + 1
  ''pulisce lo schermo e disegna il cerchio alle nuove coordinate
  cls
  circle(x, y), 30
  sleep 15, 1
loop until multikey(FB.SC_ESCAPE)

Il secondo parametro (1) della funzione sleep comunica al compilatore FreeBASIC che la pausa di 15 ms non può essere interrotta dalla pressione di un qualsiasi tasto.

Bene. Anche oggi abbiamo fatto un piccolo passo in avanti. 🙂

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.