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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0518
とりっきー長押しでチャージ出来るようにしたい6解決


とりっきー

リンク

2017/5/18(Thu) 21:08:23|NO.79867

この度、初心者ですがHSPでアクションゲーを作ろうとしています
そこで質問なのですが
「短押し」「長押し」で「攻撃」「溜め攻撃(チャージ中の演出有)」と変わるような演出を作ろうと考えています
早速組もうとしたのですが、どのようにしたら簡潔に組めるか分かりません

getkey atkey,88
if atkey = 1{

}

上記ので短押しの判定をするとして
長押しの判定をしたい場合はどのようにしたら良いでしょうか?
教えて頂けたら幸いです



この記事に返信する


k

リンク

2017/5/18(Thu) 21:33:17|NO.79870

簡単に書くとこんな感じですかね
長押しの判定はaが20以上とか30以上とかでいいのではないかと

repeat getkey atkey,88 if atkey = 1{ a++ } else { a=0 } title " "+a await 16 loop



とりっきー

リンク

2017/5/18(Thu) 22:01:39|NO.79872

回答ありがとうございます!
早速やってみます



とりっきー

リンク

2017/5/18(Thu) 23:30:24|NO.79882

参考にさせて頂いて
サブルーチン内で機能するように組み替えてみました
*サブ
getkey atkey,88
if atkey = 1{
a++
if a = 10 & chrse = 1{
mmplay 11:chrse = 1
}
if a <= 9 & chrse = 0{
mmplay 10:chrse = 1 : a = 0
}
if a = 50 & chrse = 1{
mmplay 12
}

} else {

if a <= 50 & chrse = 1{
mmplay 13 : a = 0
}
chr = 0 : chrse = 0
}
title " "+a
return

といった形でチャージ時の音取得などはうまく行きました
ただし、キーから離した時の攻撃の処理というかがうまく行きませんでした
この場合はどのようにしたらいいのでしょう?



k

リンク

2017/5/19(Fri) 08:25:04|NO.79883

キー用のフラグを用意するといいと思います
フラグで直前までキーが押されていたか判断します

repeat getkey atkey,88 if atkey = 1{ a++ : x_key_flg=1 } else { if (x_key_flg=1 & a>=50){ title "長くキーを押した "+a wait 50 } if (x_key_flg=1 & a>=10 & a<50){ title "普通にキーを押した "+a wait 50 } if (x_key_flg=1 & a>=1 & a<10){ title "短くキーを押した "+a wait 50 } a=0 : x_key_flg=0 } title " "+a await 16 loop



とりっきー

リンク

2017/5/19(Fri) 21:01:52|NO.79886

ありがとうございます!
やりたい処理がうまく行きました!



とりっきー

リンク

2017/5/19(Fri) 21:02:12|NO.79887

回答ありがとうございました!



記事削除

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

NO.79867への返信

マスコット

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

名前

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

削除用パスワード

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

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

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