トピック

タッチ情報って

クリア(消去)できますか? 似たようなものでもいいので教えて下さい。
0そうだね
プレイ済み
返信[1]
親投稿
ナツキ natukin1978
タッチ情報をクリアする命令は無いっぽい。 どういった用途でクリアしたいのでしょうか? 現在は最後にタッチされた座標を返すって動きみたいですが、 タッチされていない時は座標0,0を返して欲しいって感じ?
0そうだね
プレイ済み
返信[2]
親投稿
TOUCH命令は指定した変数にタッチ情報を代入する「だけ」なので、その変数をクリア(例えば0に)すればクリアできますけど、そういう意味ではない?
0そうだね
プレイ済み
返信[3]
親投稿
まあx0,y0でもいいかも。 用途っていうか…説明しにくい… ゲームを作っているんですけど、ゲームの中で例えば(タッチパネルに)ファイルが3つあるとします。そのファイルの中のひとつをタッチすると、画面が白にフェードアウトして0.5秒(FADE RGB(255,255,255),50 WAIT80)経つともとに戻り(FADE RGB(0,0,0,0),50 CLS)、ファイルの中のものが表示され、それをタッチペンでタッチするとゲームが始まるんですけど、(ここまではいい)そこでBボタンをおすとその前のところにもどるようにしたいんですけど またそこが(なにもタッチしてないのに)タッチされゲームが始まってしまう…
0そうだね
プレイ済み
返信[4]
親投稿
やっぱtx,tyの変数に0を代入するだけでいいかも。 ちょっとやってみます。
0そうだね
プレイ済み
返信[5]
親投稿
WAIT80のとこWAIT90でした。
0そうだね
プレイ済み
返信[6]
親投稿
ナツキ natukin1978
TOUCH命令の最初の引数(タッチされた時間)の戻り値を見ていない? タッチされていない時は0になっているはずですが……
0そうだね
プレイ済み
返信[7]
親投稿
これがそのファイルの中のもののとこ。タッチすると@1~15に飛ばされる。
0そうだね
プレイ済み
返信[8]
親投稿
ナツキ natukin1978
@LOOP2のどこかにVSYNC命令を入れてみたら?
1そうだね
プレイ済み
返信[9]
親投稿
@LOOP2のなかに「PRINT STTM」をいれるとさっきのところでは表示されなかった… あとVSYNC入れてみます
0そうだね
プレイ済み
返信[10]
親投稿
5フレーム経ってからタッチされた…
0そうだね
プレイ済み
返信[11]
親投稿
あ、画像
0そうだね
プレイ済み
返信[12]
親投稿
MIKI ifconfig
「タッチされたら処理開始」 ではなくて、 「タッチされて、離されたら処理開始」 にすれば? プチコンのトップメニューもそんな感じ。
1そうだね
プレイ済み
返信[13]
親投稿
ナツキ natukin1978
変数STTMの値を全く見ていないのも問題なので何とかしましょう。
0そうだね
プレイ済み
返信[14]
親投稿
ナツキ natukin1978
例 IF STTM>0 THEN ? "タッチ中" つまりSTTMが0の時はタッチされていないはずです。
0そうだね
プレイ済み
返信[15]
親投稿
別のでやってますが こんな感じですか? あと、タッチペンで触りっぱなしのときどんどん進んでしまうので、一応「タッチペンが放されたときに処理」を例でもいいので教えて下さい!分からないので…その命令とかあるのでしょうか?
0そうだね
プレイ済み
返信[16]
親投稿
VSYNCとtx=0 ty=0なくても出来ました
0そうだね
プレイ済み
返信[17]
親投稿
Hanzo rzsense
「タッチペンが放されたときの処理」は、例えば添付リストをご参照ください。添付では、タッチして放すと、BEEP音が鳴ります。なお、タッチ状態(ボタン状態も)は、1フレームの間保持されるので、TOUCH OUTの実行は、最低1フレーム(VSYNC)空ける必要があります。
1そうだね
プレイ済み
返信[18]
親投稿
ナツキ natukin1978
例 VAR STTM,TX,TY,PREVSTTM WHILE TRUE VSYNC TOUCH OUT STTM,TX,TY IF STTM==0 && PREVSTTM>0 THEN ? "タッチ終了" ENDIF PREVSTTM=STTM WEND
0そうだね
プレイ済み
返信[19]
親投稿
僕には難しかったみたいです… すいません… また慣れてきた頃に再挑戦してみようと思います(・ω・)
0そうだね
プレイ済み
返信[20]
親投稿
kitman2000
状態の変化を見るためには「前の状態」と「今の状態」を見比べる必要がある。 先のお二方の例にあるPTMやPREVSTTMが「前の状態」。 「前の状態」が1以上(押され続けている)でTOUCH命令で取り出した「今の状態」が0(離されている)ならば「離された瞬間」であると判断している。 そして最後に「今の状態」を「前の状態」として保存してループし、VSYNCで時間経過を待つことで「次」が「今」になり「今」が「前」になって以下ループし続ける。
1そうだね
プレイ済み
返信[21]
親投稿
Smoothie ryukey-h
TXうんたらかんたらの前にSTTM!=0 ANDをいれれば解決する気が...
1そうだね
プレイ済み
返信[22]
親投稿
前のタッチされた時間が0より大きくて、今のタッチされた時間(?)が0の時処理をする そして前のタッチされた時間を今のタッチされた時間(0)にして、1フレーム待つってことかな? 最初のPTM=-1ってなんだろう…
0そうだね
プレイ済み
返信[23]
親投稿
「触りっぱなしは○○秒・○○フレームまでしかできない」とかは出来るかな?
0そうだね
プレイ済み
返信[24]
親投稿
Hanzo rzsense
私の例のPTMは、ナツキさんの例のPREVSTTMと全く同じで「1フレーム前のタッチ状態」を表します。 PTM=-1は、実はPTM=0でもよいのですが、PTM=正の値ではダメです。なぜか?それは、実際にPTM=-1をPTM=1にしてみればわかりますが、ループに入ったばかりの段階で、PTMが正すなわち1フレーム前はタッチされていたことになり、判定を誤ります。
0そうだね
プレイ済み
返信[25]
親投稿
Hanzo rzsense
○秒以上タッチしていたら、タッチを放しても反応しないようにする、ということでしょうか? それならば、添付をご参照ください。 添付では、1秒(60フレーム)以上タッチし続けていると、タッチを放してもBEEP音を出しません。
0そうだね
プレイ済み
返信[26]
親投稿
詳しく説明してませんでした ○○秒以上タッチし続けたらタッチペンが離されるまで強制的に離される(タッチ操作が効かなくなる) みたいな…
0そうだね
プレイ済み
返信[27]
親投稿
MIKI ifconfig
理想を高く持つのはいいんだけど、まずは身の丈にあった行動を。 シンプルな「押したら進む」「離したら進む」という処理を実装して、それを完全に理解して自分の物にできたと思ったら、より複雑な処理へと進むといいと思います。 最初から背伸びしても理解できないし自力ではバグも取れないし、肝心のプログラム作成も進まないし、いいことないです。
4そうだね
プレイ済み
返信[28]
親投稿
Hanzo rzsense
○秒タッチし続けたら、タッチを放していなくても強制的にタッチを放したことにして処理を行い、その後実際にタッチを放しても無視する、ということでしょうか? だとすれば、私の提示例におけるIF文を次のようにしてみましょう。 IF(PTM>0 && PTM<60 && TM==0)¦¦ TM==60 THEN・・・ 1秒以上タッチしていたら、タッチを放さなくてもBEEP音を鳴らし、以降、実際にタッチを放しても無視します。 タッチ状態を想定し、それぞれの変数やIF条件判定がどうなるのか、紙に書き出すなどしてシミュレートしてみることをおすすめします。
0そうだね
プレイ済み