mieki256's diary



2014/12/02(火) [n年前の日記]

#1 [dxruby] DXRubyのSpriteのアタリ範囲について

アタリ範囲というか、衝突判定の範囲だけど。大体分かってきた。ていうか、以前もこのへんでハマったけどすっかり忘れていただけのような気もしてきたり。

例えば、Sprite を継承したクラスを作って表示すると、以下のような表示に。
ss01.png
画像の左上と、Sprite の x, y が一致してる。

ここで、offset_sync = true を設定。
ss02.png

この状態で、アタリ範囲を設定したいわけで。

見た目からして、「collison = [-32,-32,32,32] を設定すればいいのかな?」と思い込んで設定すると…。実際には下のような位置にアタリ範囲が来てしまう。
ss03.png

正解は、collison = [32, 32, 96, 96] を設定すること。要するに、x,y を基準にしてアタリ範囲を設定するのではなくて、画像の左上を (0,0) と考えてアタリ範囲を設定すればいい。

考えてみれば、center_x, center_y だって、画像の左上を (0,0) と捉えた上で「画像の、この位置を、回転の中心位置としなさいよ」と指定してるわけで。

アタリ範囲も同じ。画像の左上を (0,0) と捉えた上で「画像の、このへんを、アタリ範囲にしなさいな」と考えて指定すれば、それでOKだったわけですよ。

てなわけで、テストに使ったスクリプトを一応置いときます。Public Domain ってことで。

_test_sprite_hitrange.rb.txt

サンプルの中にアタリ範囲を表示するモジュールがあった。 :

DXRuby 1.4.1 のサンプルスクリプト群の中に、hitrange.rb という、Sprite のアタリ範囲を表示してくれるモジュールがあることに気付いたり。最初からコレを使ってアタリ範囲を表示していたら、このあたり、すぐに分かったのかもしれない。トホホ。

以上です。

過去ログ表示

Prev - 2014/12 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project