◆□□□□□□□□□□□□□□□□□□□□□□□□□□□◆ HSPであなたもプログラマー 発行者そらとす 第十四回 “キー入力U”2001/9/27 MAIL:soratosu@24i.net HP:http://www3.to/soratosu/ ◆□□□□□□□□□□□□□□□□□□□□□□□□□□□◆ どうもこんにちは〜。 すみません。昨日書いただけで発行するのをうっかりしていました。 今日。突き指してしました〜。脹れてはいないんですけど、 痛い。(ヒビ入ったときよりはマシだけど。) しかも、薬指なのでRETURNキー押しにくい…。 ☆前回 前回はgetkeyでのキー入力でした。 詳しくはバックナンバーで。(HPへGO) ☆今回 今回は、stickでキー入力を受けてみたいと思います。 違いは、一回押されれば、いったん離さないと、次のキー入力を 受けない、というものです。 使い方は大体getkeyと同じ使い方です。 違うところは、 getkey 変数,キーコード stick 変数 となります。 つまり、stickは押されたキーコードが変数に入る、ということです。 1 カーソルキー左(←) 2 カーソルキー上(↑) 4 カーソルキー右(→) 8 カーソルキー下(↓) 16 スペースキー 32 Enterキー 64 Ctrlキー 128 ESCキー 256 マウスの左ボタン 512 マウスの右ボタン 1024 TABキー がそれぞれ代入されます。 もし、EnterとCtrlキーが同時に押された場合には、 32 (Enter) + 64 (CTRL) = 96が代入されます。 *loopzone stick a if a=128 : end wait 1 goto *loopzone などとして使います。 しかし、このスクリプトには、欠点があります。 それは、ずっとTABなど、が押されれたばあい、ESCが押されても、 1024 + 128で、1152が代入されるので、いつまでたっても三行目には、引っかかりません。 それを解決するには、こうします。 *loopzone stick a if a&128 : end wait 1 goto *loopzone で解決します。 違いは、3行目の「=」が「&」に変わる、というだけです。 これで、128がはいっていたならendを実行します。 あんまり複雑に考えすぎないでね(^^; とりあえず、stickを使うときは、&を使う、というふうにしとけば、大抵は困りません。 ◎ではでは、予告してたかどうかは、わかりませんが、連打ゲーを作ってみましょう!! n=100 *loopzone stick a if a&16 : n- if n=0 : goto *tsugi title "あと"+n+"回" await 1 goto *loopzone はい。こんなけ。 超単純な、時間制限もない、連打ゲームができました。 3行目のn-というのは、n=n-1やn-=1と同じ働きをします。n-はn=n-1よりも速いです。 titleというのは、ウィンドウの一番上の、タイトルバー(青いとこ)の文字を変更する命令です。 どうです? ではこのへんで。 ★募集 絶対にするとは限りませんが、 「こんなことがしたい」等を募集いたします。(ちょっとネタ切れ近いので あと2〜3ヶ月分ぐらいしかない) そらとすが技術的に不可能(3Dの表示など《現在練習中》)なことはできませんが、精一杯がんばります。 ■読者コーナー おまちしております!!!!!!!!!!!!! ★なんてよむねーん jack-o'-lantern (じゃっからんたん) かぼちゃちょうちん (なんでこんなもんを…。)