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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0217
いかえもんカーソルキーで項目を選ぶタイトル画面を作っているのですが、あと一歩のところで上手くいきません2解決


いかえもん

リンク

2020/2/17(Mon) 20:34:24|NO.89499

カーソルキー上下で変数divを足し引きし、それを選択肢の項目数で割った余りで場合分けしています。
しかしいざ実行してみると、カーソルキーの押し方次第で一度に過剰に足し引きされてしまい上手くいきません。
一度押したら綺麗に一度しか足し引きされないようにするにはどうすればよいのでしょうか?



repeat:redraw 2:color 0,0,0 : boxf 0,0,640,480 if(select == 0){ font "MS Pゴシック", 34,16 color 203,80,206 pos 390,300 mes "Game Start" }else{ font "MS Pゴシック", 30,16 color 203,167,206 pos 400,300 mes "Game Start" } if(select== 1 || select == -1){ font "MS Pゴシック", 34,16 color 203,80,206 pos 390,335 mes "Exit" }else{ font "MS Pゴシック", 30,16 color 203,167,206 pos 400,335 mes "Exit" } //↓キーを押した時の処理 getkey down,40 if( down == 1){ wait 10 div ++ } getkey up,38 //↑キーを押した時の処理 if(up == 1){ wait 10 div -- } //divを項目数で割った余りをtitleに代入 select = div \ 2 //Exitを選んでZキーを押すと終了 getkey Z,90 if(select == 1 ||select== -1 && Z == 1 ){ wait 100 end } font "MS Pゴシック", 20,16 color 255,255,255 pos 0,0 mes "select = " + select pos 0,40 mes "div = " + div redraw 1:await 10:loop



この記事に返信する


ZAP

リンク

2020/2/17(Mon) 20:48:14|NO.89500

getkeyだと押しっぱなしの間、ずっと「キーが押された」と検知されますからね。
前のフレームで押されたら、その情報を自分で用意した変数なりに保存しておいて、
次のフレームでは前フレームに引き続き押されっぱなしかどうかを自分で判定する
必要があります。

もしgetkeyを使うことにこだわりがないのであれば、
stick命令なら、トリガー設定で「キーを押された瞬間のみ」を検知できるので、
そちらを使ってみるのもありかも。



いかえもん

リンク

2020/2/17(Mon) 21:05:34|NO.89501

ありがとうございました。
stick命令を使うと上手くいきました。



記事削除

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

NO.89499への返信

マスコット

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

名前

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

削除用パスワード

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

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

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