конечно можно и с массивами, но мне почемуто первое что пришло в голову, это разделить на потоки нажатия кнопок и проверять какой из них свободен.
WHILE(1)
GETSCREEN
IF_PIXEL_IN(618,671, 647,681, 566784)
IF($s1=0)
SetThread (s1, 1)
ELSE
IF($s2=0)
SetThread (s2, 1)
ELSE
IF($s3=0)
SetThread (s3, 1)
ELSE
print("все потоки заняты, нужно еще")
END_IF
END_IF
END_IF
END_IF
waitms(10)
END_CYC
///////////////////////////////////////
THREAD(s1, 0)
$s1=1
wait(3)
KEYDOWN(#q)
waitms(10)
KEYUP(#q)
$s1=0
SetThread (s1, 0)
END_THREAD
THREAD(s2, 0)
$s2=1
wait(3)
KEYDOWN(#q)
waitms(10)
KEYUP(#q)
$s2=0
SetThread (s2, 0)
END_THREAD
THREAD(s3, 0)
$s3=1
wait(3)
KEYDOWN(#q)
waitms(10)
KEYUP(#q)
$s3=0
SetThread (s3, 0)
END_THREAD
если твоих шаров будет тьма тмущяя и их(потоков) небудет хватать, нестесняйся, добовляй еще.