OWBasic Standard Library

Gruppe STD Start INTRO Alphabetischer Index

Abfragen von Touch-Tabellen

STD_TCHOBJ%(TCHTBL%[])

Die Funktion STD_TCHOBJ vergleicht die Touch-Koordinaten mit den in TCHTBL definierten rechteckigen Bereichen und gibt den Objektcode des berührten Bereiches zurück. Wurde kein Bereich berührt, so wird -1 zurückgegeben.

Die Einträge in der Touch-Tabelle sind folgendermaßen aufgebaut:
CONST tchtbl=(<objcode>, <touchfunc>, <x1>,<y1>,<x2>,<y2>,
<objcode>, <touchfunc>, <x1>,<y1>,<x2>,<y2>,
...
-1)
Ist der Objektcode -2, so wird das aktuelle Element nicht abgefragt, ist er -1, so wird die Abfrage abgebrochen. Jede Touch-Tabelle hat daher mit dem Objektcode -1 zu enden.

Es können bis zu acht verschiedene Touch-Funktionen verwendet werden. Dazu können der globalen Variablen std_tchstd_tch_t mit dem entsprechenden Index Funkionszeiger des Typs func!(x1,y1,x2,y2) zugewiesen werden. std_tch[0] verweist per Default auf TOUCHED!.

Beipiel:
CONST tchtbl=(1, 1, 0,0,159,19,
10, 0, 0,20,78,159,
11, 0, 20,159,159,
-1)

std_tch[1]=FUNC(BTNTOUCH!)

DO
SYS 2
CASE SELECT STD_TCHOBJ(tchtbl)
 CASE 1: end 0
 CASE 10: PRINT "left half touched"
 CASE 11: PRINT "right half touched"
ENDCASE
LOOP WHILE TRUE

Gruppe STD Start INTRO Alphabetischer Index