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

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



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