HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0410
SH903iTVgetkey4未解決


SH903iTV

リンク

2007/4/10(Tue) 22:18:33|NO.7231

getkey を使って、
スペースキーが押されたら *a へ、
シフトキー が押されたら *b へ、
ということをしたくて、ヘルプを見ながら↓を書いてみました。

getkey x,36 getkey y,16 if x=1 : goto*a if y=1 : goto*b *a cls 2 stop *b cls 3 stop
スペースキーやシフトキーを押してみましたが、
何の応答もありませんでした。
getkeyの使い方が間違っているのでしょうか?
     



この記事に返信する


oops

リンク

2007/4/10(Tue) 22:49:24|NO.7233


repeat getkey x,32 getkey y,16 if x=1 :go=0:break ;スペースキーが押されたら変数goを0にして、ループから抜ける if y=1 :go=1:break ;シフトキーが押されたら変数goを1にして、ループから抜ける wait 1 loop if go=0:goto *a ;変数goが0だったらラベルaへ if go=1:goto *b ;変数goが1だったらラベルbへ *a cls 2 stop *b cls 3 stop
getkeyはループ内で使わないと判定しなく(正確には判定しづらく)なります。



hasega-design

リンク

2007/4/21(Sat) 11:40:46|NO.7622


repeat wait getkey x,32 getkey y,16 if x+y : break loop if x : goto *a if y : goto *b *a cls 2 stop *b cls 3 stop

入力だけの判定でしたら、
数値判定省略してスッキリ。

邪道かな・・・



じった

リンク

2007/4/21(Sat) 12:30:34|NO.7623

(ちょっと失敗したので、削除して書き込みしなおしました)

じゃあ逆に、ずっとキー判定を待ち続ける方の例を・・・
getkey じゃなく、 onkey goto(gosub)を使います。


onkey goto *keyscan stop *keyscan keycode=iparam;割り込み発生時のキーコード if keycode=36 : goto*a if keycode=16 : goto*b stop *a cls 2 stop *b cls 3 stop
以上、SH903iTVさんのスクリプトの別解です。
でも、キーコード36は、スペースじゃなくHOMEキーですよ。
スペースキーなら、32にしてください。



f

リンク

2007/7/7(Sat) 02:38:37|NO.9369

age



ONION software Copyright 1997-2023(c) All rights reserved.