ワンポイントテクニック No.028

INKEY$の省電力モード


 ゲームにおいて何かキー入力があるまで待つという処理をすることは多々あると思います。それはIF文を使えばこのように簡単にできますね。

100 K$=INKEY$:IF K$=""THEN 100

 では、INKEY$の代わりにINKEY$1としてみたらどうなるでしょう。

100 K$=INKEY$1:IF K$=""THEN 100

 こうすることでINPUT$(1)(括弧は省略可能)と同じようにキー入力がされるまでINKEY$1でストップします。ただし、キーリピートが効いてしまうためにINPUT$(1)とは異なりIF文無しの場合は確実なキー入力待ちには使うことはできません。
 このINKEY$1の最大の特長はキー入力待ち状態でオートパワーオフが働くということです。これをリアルタイム動作を要求しないシミュレーションゲームやRPGなどのコマンド入力でINKEY$の代わりに使えばプレイ中に一時中断したい場合はそのまま放置するだけでオートパワーオフが可能になります。ただし、キー入力がない限り待ち続けるのでアクションゲームなどには使うことはできません。
 実はこれはPC-E500シリーズの本体に内蔵のエンジニアリングソフトウェアでは通常のINKEY$の代わりにすべてINKEY$1が使われているのですが、これによってエンジニアリングソフトウェアではどの場面でもオートパワーオフが利く仕様になっています。
 要は1という引数をつけることで省電力モードのINKEY$になっているわけです。ちなみにINKEY$で使える引数は0と1のみで、0は通常のINKEY$となっており、引数を省略した場合は0と見なされます。


RETURN

inserted by FC2 system