![]() |
| TI99 Environment |
| Syntax |
| CALL_JOYST(keyunit,x,y) |
| Description |
|
This function scans for the gamepad controller's input. It is TI-99/4A's implementation of DarkBASIC's joystick() function. Parameters "x" and "y" are unused; they are mandatory to maintain compatibility with TI programs copied directly from other sources. You can place two unused/dummy variables here. A keyunit value of 1 checks for controller 1. A keyunit value of 2 checks for controller 2 (NOT IMPLEMENTED yet). The global variables "joysty" and "joystx" hold the y,x return values of the controller's position (see image below). ![]() As with the TI-99/4A computer, to check for the fire button (button A) use the CALL_KEY function. When the A button is pressed, the TIAsc global variable will return the value of 18. TIKeyStatus global variable holds the actual fire button (A button) status of CALL_KEY (possible return values are -1,0,1). If the A button has not been pressed TIKeyStatus = 0. If the A button is pressed, TIKeyStatus = 1. If the same A button is being held from a previous call, TIKeyStatus = -1. |
| Example Code |
Example 1:
do
call_screen(8)
repeat
fire = CALL_KEY(1,k,s) : display_at(11,1,"fire:"+Str$(fire),0)
CALL_JOYST(1,x,y)
display_at(10,1,"joystx:"+str$(joystx),0)
display_at(10,15," joysty:"+str$(joysty),0)
display_at(12,1,"Fire button status: "+str$(TIKeyStatus),0)
ti_sync()
until fire > 0 or joystx > 0 or joysty > 0
display_at(10,1,"joystx:"+str$(joystx),0)
display_at(10,15," joysty:"+str$(joysty),0)
display_at(12,1,"Fire button status: "+str$(TIKeyStatus),0)
if tikeystatus = 1 then call_screen(16)
if tikeystatus = -1 then call_screen(11)
tiwait(500)
LOOP
Example 2:
speed = 2
CALL_CLEAR() : call_char(128,rpt$("f",16)) : CALL_MAGNIFY(2)
CALL_SCREEN(16)
CALL_SPRITE(1,128,5,1,1,0,0)
randomize hitimer()
px = call_positionX(1) : py = call_positionY(1)
do
display_at(23,1,"joyst x:"+str$(x)+" joyst y:"+str$(y),0)
display_at(24,1,"Pos x:"+str$(px)+" Pos y:"+str$(py),0)
CALL_JOYST(1,X,Y) : x = joystx : y = joysty
fire = CALL_KEY(1,k,s)
if fire = 18 and TIKeyStatus = 1
call_colorsprite(1,rnd(13)+2)
endif
CALL_MOTION(1,-Y * speed,X * speed)
ti_sync()
px = call_positionX(1) : py = call_positionY(1)
loop
| Go back to ... |
| TI99E Commands Menu |
| Main Menu |
Copyright © Carlos Santiago Lebron - TI99 Environment 2020
![]() |