« 【よみもの】もーりおのつぶやき 第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
口臭チェッカー市場