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










PING イメージ

false



true




false
パラメータ threshhold 設定




true
パラメータ threshhold 設定