imageCollide
始めにAnimation Engineを開いて、start using stack "animationEngine" サンプルスタックは、下記をメッセージボックスにコピペしてリターンキーを go stack \ url "http://kenjikojima.com/livecode/ae/imageCollide.livecode" PING イメージなど、透明部分のある(アルファチャンネル)イメージの、 不透明な部分が重なった時に「true」を返します。 ファンクションが有効な最大イメージサイズは 80 x 80。 基本構文 imageCollide(イメージ名1, イメージ名2, しきい値ピクセル数) imageCollide(the name of image 1, the name of image 2, threshold) パラメータ 「threshold」 日本語にすると限界点とか、しきい値という言葉になりますが、 イメージの半透明な影とか滲みの部分が重なった時にでも、「true」を返えさない範囲が設定できます。 別な言葉で言えば、実際のイメージの実質的な部分の衝突で、「true」を返す設定にできます。 どういう数値にすればその範囲が定められるのか、サンプル作成時点では不明でしたが、 とにかく設定すれば機能するようです。ドキュメントによると、「threshold」の設定は 0 から 255 となっています。 サンプル2 のイメージサイズは、50x50 ピクセル。 完全に不透明な円の直径は 26 ピクセルなので、 「threshold」 を 12 としてみた処、範囲が遠過ぎてあまり効果が見えませんでした。少しづつ数値を上げて、 最終的に 90 にしたところ完全な不透明部分の衝突で、trueが返されました。 -- カード内のスクリプト(サンプル2) on mouseMove if imageCollide(the name of img 1,the name of img 2,90) then put "Collide!" into fld "collide" else put "" into fld "collide" end if end mouseMove