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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0804
うひょショーティングでキーを押した瞬間のみ処理したい3解決


うひょ

リンク

2006/8/4(Fri) 10:41:04|NO.1777

シューティングでキーを押したフレームのみ処理をしたいのですが、
getkeyを使って判定しているため(stickでは判定できないキーです)
キーを普通に押しただけでも何フレームか処理が実行されます。
押した瞬間だけ処理するにはどうすればいいでしょうか。



この記事に返信する


かきしす

リンク

2006/8/4(Fri) 12:33:39|NO.1780

こんな感じでいかがでしょう?


screen 0,320,240 keyflg=0 *メイン redraw 0:color 0,0,0:boxf 0,0,320,240 getkey key,32; スペースキーをチェック if (keyflg=0)and(key=1){ color 255,255,0:boxf 50,50,270,190 ;     押された瞬間のみ、黄色いBOX表示 keyflg=1 ;『押されたフラグ』設定 } keyflg=key;キーが離されると、フラグ解除 redraw 1:await 10 goto *メイン



RuthlessDragon

リンク

2006/8/4(Fri) 13:27:43|NO.1784

HSP3掲示板の方で俺が同じ質問をしたときにKさんがくださったモジュールです。


;getkeytrig p1,p2 ;p1,p2はgetkeyと使い方は同じ p1に押された時だけ1が返る statに押されている間1が返る #deffunc getkeytrigini dim kyeold,256 : dim kye,1 return #deffunc getkeytrig var p1,int p2 getkey kye,p2 p1=((kye!kyeold(p2))&kye) kyeold(p2)=kye return kye



うひょ

リンク

2006/8/6(Sun) 16:46:36|NO.1819

解決しました。
今回はRuthlessDragonさんに提示してもらったモジュールを使うことにしましたが、
かきしすさんのサンプルは参考になりました。
ありがとうございます!



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