どういうゲームを作るかによりますよね。
例えばタイピングゲームなんかだと少なくともA〜Zまでのキーは全て使いますよね。
ですがタイピングゲームはキー押下の同時検出をする必要はありません。
最低でも人間のタイピングより速く検出出来ればいいわけです。
onkey gosub *inkey
stop
*inkey
repeat 26
if(iparam = 65+cnt){
pos posx,posy : mes strf("%c",65+cnt)
if(posx+ginfo(14)<ginfo_winx){
posx+=ginfo(14)
}else{
posx=0
posy+=ginfo(15)
}
}
loop
return
それ以外で、例えばシューティングゲームなんかは同時検出が必要ですね。
私が今制作しているゲームは、シューティングゲームですがWASDでの移動方式を使っています(といってもHSPでの制作ではないのですが・・・)。
この場合はstick命令では検出が不可能ですので、getkey命令で複数のキー情報を取得するしかありません。
#const speed 5
#const size 10
repeat
getkey A,65
getkey W,87
getkey D,68
getkey S,83
x+=(A*(-speed))+(D*(speed))
y+=(W*(-speed))+(S*(speed))
x=limit(x,size,ginfo_winx-size)
y=limit(y,size,ginfo_winy-size)
color 255,255,255 : boxf
color : boxf x-size,y-size,x+size,y+size
redraw 1 : redraw 0 : await 10
loop
しかし、基本的にタイピングゲーム以外で10個以上のキーを使うものは少ないです。
MMOオンラインRPGなどは使うかもしれませんが、個人制作のレベルであまりにキーが多いのは、プレイアビリティの面からみても避けるべきでしょう。
stick命令の方が書く量自体は少なく済むので、stickで済ませられるならstickで、無理ならgetkeyを使うだけで良いと思いますよ。