« 【よみもの】もーりおのつぶやき 第14回 | メイン | HSPTV!メルマガ 第46号 »

2007年08月05日

【講座】HSPよく使うフレーズ 第35回 stick命令の結果

今回はHSPセンターの掲示板にあった質問から、すこしまとめてみた。

stick命令を使う質問のなかで

stick kk
という命令に続いて

if kk=16: 処理

if kk&16: 処理

という文は同じか?という疑問です。

上記の例ではstick命令の後になにも書いていないので、
キーを押し下げた瞬間のみに反応します。

押し下げ中は常に反応する設定で書き直してみます。

repeat
stick kk,2047,0
title ""+kk
wait 1
loop

これでコントロールキーを押したまま、スペースキーを押してみて
ください。

2進数の話しになりますが、キーに対応するビットが立つという状況です。

同時にスペースキーとそれ以外を押すというのは、
あまり無い状況ですが、このような状況になります。

この場合
>if kk=16: 処理
こちらの判定文では動きませんが、
>if kk&16: 処理
こちらなら動くはずです。

この場合の&は数値にマスクをして1ビットを取り出す効果があります。

このスクリプトを実行して、コントロールキーを押したまま、
スペースキーを押してみてください。

repeat
a="":b=""
stick kk,2047,0
if kk=16:a="イコール "
if kk&16:b="アンド "
title ""+kk+a+b
wait 1
loop

さて、最初の「stick kk」の場合は、本当に同時にキーを押し下げる
という事はほとんど無いので、=も&も同じようになりそうですが、
厳密に言えば違うという事です。

(うすあじ)

投稿者 usuaji : 2007年08月05日 12:21

口臭チェッカー市場