OnKeyPressについては、CROW・SSPリファレンスに解説が載っているのですが、「同時に複数のキーを押した時はどうなるの?」と思ったので、実験してみた結果をまとめます。
実験に使用したベースウェアは、SSP/2.02.29です。これ以外のベースウェアでは、ベースウェアからの通知内容が異なる可能性があります。
修飾キーとその他のキーの同時押しをした場合 †
reference0 | 修飾キーではない方の押されたキーの識別子 |
reference1 | 修飾キーではない方のキーコード |
reference2 | キーを押したままの時の繰り返し回数(SSPのみ) |
reference3 | キーイベントが来たキャラクターウインドウID(SSPのみ) |
reference4 | 修飾キーがカンマ区切りで列挙される |
- 太字で強調した部分が、リファレンスに載っていなかった部分です。
- たとえばAlt+Shift+Ctrl+A、と押すと、次のようになります
#pre{{
GET SHIORI/3.0
Charset: UTF-8
Sender: SSP
SecurityLevel: local
ID: OnKeyPress
Reference0: a
Reference1: 65
Reference2: 1
Reference3: 0
Reference4: shift,ctrl,alt
}}
- 修飾キーの中でもSHIFTキーだけは特殊で、SHIFTを押した時点でイベントが発生します(CtrlとAltでは発生しません)。
#pre{{
GET SHIORI/3.0
Charset: UTF-8
Sender: SSP
SecurityLevel: local
ID: OnKeyPress
Reference0: shift
Reference1: 16
Reference2: 1
Reference3: 0
Reference4: shift
}}
普通のキーを同時押しした場合 †
reference0に、同時押ししたキーの中から1つが通知されます。それ以外のキーは無視されるようです。
シューティングゲームであるような、発射ボタン(Zキー)を押しながら、ボム発動(Xキー)、と言うようなことはできないようです。
※そもそもそう言うキー操作が伺かで必要なのか?と言う疑問もありますが。