トピック
ぷうた FUTA.2004

タッチ判定がめんどい!

いつも自分は TOUCH OUT TT,TX,TY IF TX>=○○ AND TY>=○○ AND TX<=○○ AND TY<=○○ THEN ○○ て、するんですけど、めんどくさいです 他の方法教えてください!
2そうだね
プレイ済み
返信[1]
親投稿
ぷうた FUTA.2004
SPHITRCを使うのが多いと聞いたんですけど、 どうやるんですか?
0そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
サンプルプログラム
0そうだね
プレイ済み
返信[3]
親投稿
私がよく使ってる方法は「別ページに色を塗って、タッチした時にそのページの位置から『何の色をタッチしたか』を読み取る」というのを。 このスクショは開発段階の時のですが、この色情報を隠したまま読み取らせて各メニューへ飛ぶようにしています。
3そうだね
プレイ済み
返信[4]
親投稿
はる HARUHI-0913
DEF TCHBTN(X0,Y0,X1,Y1) TOUCH OUT TT,TX,TY RETURN TT && TX<=X1 && TX>=X0 && TY<=Y1 && TX>=Y0 END という自作関数を作って、 IF TCHBTN(X座標0,Y座標0,X座標1,Y座標1) THEN ○○ をすればいいです。 これなら多少楽になると思います。
2そうだね
プレイ済み
返信[5]
親投稿
スプライトとの当たり判定なら、だにえるさんの方法。 不定形(複雑な形)の範囲なら、みけらんジェロさんの方法。 座標での判定を簡略化するなら、DieMatsmotさんの言われているやり方で、はるさんのサンプル的なやり方、などですかね。 矩形や円形なら座標で判定しやすいですが、それ以外だとみけらんジェロさんなどのやり方にしないと面倒かなって感じがありますね。 あとは座標をDATAとか配列にいれて、メインのプログラムはシンプルにする、という方法もあります。まあ座標判定なのは変わりませんが、IFをずらずら書くよりはスッキリすると思います。
2そうだね
プレイ済み
返信[6]
親投稿
ぷうた FUTA.2004
ついに俺もDEFを使うのか… DEF使ったことないので、 もう少し詳しく教えてください
0そうだね
プレイ済み
返信[7]
親投稿
カービィ★KIRBY Kirbystar_Nin751
タッチ判定に関して、私もつい最近DEF作りましたな…… ボタン描画命令とあわせていつか公開しようかと思ってます(
0そうだね
プレイ済み
返信[8]
親投稿
DEFは命令を作る命令って事は理解していますか? それで命令には、大まかに 1 結果を返さないもの 2 結果を戻り値として返すもの 3 結果をOUTで返すもの のパターンがあります。 結果を戻り値として返すものはBUTTON()のように()括弧が付きます。結果を2つ以上の値として返したい場合は、OUTで返すようにします。で、これらを作る事が出来ますが、まず簡単なものを作ってみてわからない事を聞いた方が早いんじゃないかなって思いますね。
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
個人的には色を使ってGSPOITで判断というのが最も簡単だと思います。(わざわざ別ページに描画しなくてもOK) ボタン等(タッチが有効な領域)をGRPで表示しているならば普通にその色を使うと良いですが、スプライトやBGで表示しているならば透明色のGRPが便利です。 透明色はRGB(0,R,G,B)で表示できます。透明だから画面には何も見えませんがしっかりと表示はされていてGSPOITで読み出すことが可能です。 RGB指定しなくても(色が255以下の値ならば)8の倍数の色(8,16,24,32など)を画面表示していれば扱いが非常に楽です。 GRPは8の倍数で丸められるため23という色で表示しても16に変わってしまうため注意です。「?23>>3<<3」とすれば「8の倍数で丸められる」という意味が分かると思います。
4そうだね
プレイ済み
返信[10]
親投稿
GSPOIT()に1票
1そうだね
プレイ済み
返信[11]
親投稿
ぷうた FUTA.2004
皆さん教えて頂いてありがとうございました! 使い分けます!
1そうだね
プレイ済み