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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1222
81スタートstickの使い方3解決


81スタート

リンク

2023/12/22(Fri) 09:57:54|NO.100902

12月からHSPを始めた初心者です。
次のようなスクリプトで矢印キーを連打しても5回に1回くらいしかヒットしません。
タッチするたびにヒットするようにするにはどのようにすればいいか教えてください。
よろしくお願いいたします。


a=0 *kurikaesi stick key await 600 if key&1 : mes "左" if key&4 : mes "右" mes key a=a+1 if a < 5 : goto *kurikaesi mes "終" stop
結果は次のようになります。(右を連打したとき)

0

0
0
0




この記事に返信する


kの字

リンク

2023/12/22(Fri) 11:00:23|NO.100903

キーを押したときだけカウンターを動かす感じでどうでしょう。

a=0
*kurikaesi
stick key
await 600
if key&1 : mes "左" :a++
if key&4 : mes "右" :a++
if a < 5 : goto *kurikaesi
mes "終"
stop



沢渡

リンク

2023/12/22(Fri) 12:37:26|NO.100904

stick命令で取得されるキーの状態は
「stick命令が実行された瞬間の状態」を取得するもので、
このコードではawaitによる待ち時間が600ミリ秒(=0.6秒)とかなり長く、
この0.6秒の間に「押す→離す」とした場合は
stick命令による検出が行われないのではないかと思われます。
このように↓awaitによる持ち時間をもっと短くすれば
良いのではないでしょうか。

a=0 key=0 *kurikaesi a=a+1 stick key0 key=key|key0 //これまでのキーの状態を一つにまとめる await 33 //秒間30ループ(1000÷30≒33) if a\18=0 { //18ループに1回表示 if key&1 : mes "左" if key&4 : mes "右" mes key key=0 //キー状態の入った変数をリセット } if a < 180 : goto *kurikaesi //6秒間実行する(秒間30ループ×6秒=180) mes "終" stop



81スタート

リンク

2023/12/23(Sat) 06:37:01|NO.100912

早速返信いただきありがとうございます。
色々と調べましたが解決できずに悩んでいました。
早速次のステップに進めます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.100902への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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