コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
moi ◆hL/XpFV8MD2F
2021/9/17 9:48
SPRITE同士の当たり判定、どうやらSPHOMEに基づくらしい?
なかなか困りもの

コメント

アバター
こういち 2021/9/17 23:12 ◆.Id/aHiU36hu
SPHOMEを実行するたびにSPCOLの領域設定し直すしかないってことかな?
確かに面倒。
あとは、SPSET,SPCHRでも同じことが言えそう。サブルーチン化するのが良さそう。
アバター
moi 2021/9/17 23:46 ◆hL/XpFV8MD2F
ATANでバーを回転させるためSPHOMEが0,16(底)で固定になってしまい、このような状態ではこう流れてくるボールとの当たり判定タイミングが非常に遅くなってしまう事態が・・・(もはや完全に重ならないと真にならない)
アバター
こういち 2021/9/18 2:26 ◆.Id/aHiU36hu
そういう複雑な当たり判定。SPCOLの判定は大きめにしておいて、SPHITSPが真だったら自力で細かい当たり判定を計算するようにしてる。(多角形と円の判定は面倒ですが)
アバター
ツララ 2021/9/19 10:57 ◆ArUdBYOYME1V
もしかしてSPCOLと連携して当たり判定領域が変形する命令ってSPSCALEだけなんじゃないんです?
当たり判定自体はSPHOMEを基準点としてSPSETで指定した矩形の範囲だけで
SPROTでのスプライトの表示位置とは無関係だったりするんじゃ…?

回転する矩形との当たり判定を実装したいなら
矩形の頂点の回転移動した座標から線分で当たり判定を判別する処理を作った方がいいかも。
もしくは一回転分を10度ごとの36パターンに分割したグラフィックデータを参考にしながら
複数の矩形の集合体としての当たり判定グループをそれぞれ設定して
SPROTで回転表示させる数値に対応させて切り替えるとか。

別の案としては、最初から回転させたい矩形を予め「複数の矩形をSPLINKさせて繋げたモノ」として設定しておいて
親スプライトを回転させると、当たり判定のある矩形の位置も追随して変化するようにしとくとか。
アバター
moi 2021/9/22 23:21 ◆hL/XpFV8MD2F
SPLINK!!その手があった
アバター
ツララ 2021/9/24 10:47 ◆ArUdBYOYME1V
自分で書いてて思ったけど
透明なスプライトをSPLINKで連結させるのって他にも色々と利用法ありそう

SPCOL命令で設定した当たり判定の領域をうっすら可視化するようなDEF欲しい…欲しくない?

実際のところ、SPHIT系命令に反映される領域がどうなってるかは完全に私の予想なのでなんとも言えないですけどね。
親スプライトを色々動かしていて、SPLINKで繋げた子スプライトに受け継がれるのがSPOFSの情報くらいな気がしたので
なんとなくそうなんじゃないかなって思っただけなので。
結果には私も興味があるので要望に叶うような結果になったのなら報告ヨロ

個人的な意見ですけど
もし私が同じような処理作るとしたら360度を必要な解像度に分割したパターン分けの案を採りますね
理由としては三角関数を含んだ浮動小数点演算での確認が難しい要素を排除できそうだから
アバター
こういち 2021/9/24 21:15 ◆ou0jbJnEJ0Kb
正直やりたい内容がイマイチピンと来てないですけど、あーたんってことはもしかして、ボールが近づいたらその方向にバーを向ける感じだったり?
SPCOL sp,-max(w,h),-max(w,h),max(w,h)*2,max(w,h)*2

あとはSPHITSPが反応したら三平方の定理とかでなんとか…かな。

SPANIMとか当たり判定の挙動どうなるんだろう。当たり判定をアニメ出来ればいいのに…
アバター
みむ*mim 2021/9/25 4:59 ◆Y9UAsgfMEmHF
SPCOLVECという命令があるので、例えば8x32の長方形なら8x8程度のSPCOL範囲を設定したあと、32の方向にSPCOLVECを設定しておけば自動的に線形補間してくれて、それなりに良い感じの当たり判定が取れますよ。

あと
>SPCOL命令で設定した当たり判定の領域をうっすら可視化するようなDEF欲しい…欲しくない?
に叶うか分かりませんが、拙作ツールでこういうの作ってます。親ツイートの「みむツールズ」というのに入っていますのでご要望に合えばどうぞ!
https://twitter.com/hidemimtp/status/1224264638704939008
アバター
こういち 2021/10/1 21:55 ◆.Id/aHiU36hu
SPCOLVEC
完全に忘れてました。

SPCOLVECが存在するとなるといよいよSPHITSPが謎技術になってきた。

SPHITSP 二不思議
・複数衝突している場合は管理番号が最小のSPが返される
・SPCOLVECで判定を伸ばすことが出来る
アバター
ツララ 2021/10/4 19:47 ◆ArUdBYOYME1V
SPOFS 管理番号 OUT X,Y
って書式で調べたいスプライトの座標を求めれるけど
SPLINKで紐付けされた子スプライトの座標も親スプライトの移動や回転に引きづられて変化した絶対座標上の位置のが得られるみたいね。
矩形や複雑な図形もいったん基礎的な三角形に全部分解して、それらの合成物として再構築してやれば
SPLINKさせた1ドット四方の透明な子スプライトのSPOFSで得た座標の数値から当たり判定を取る方法も
案外イケるかもしんないね。

線分同士が交差してるかどうかを判別するDEF
例えば2つの線分の端点(X,Y)の8つの引数から真偽を返すみたいなの作れば
それを元にして、2つの三角形の”面”が重なっているかどうかを判別するDEFも作れそう。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -