2012-04-23 14 views
0

たとえば、私は指で描くことができる線があり、長方形があります。私は矩形と衝突したときに私の線が描画を終了させたい。どうすればいいですか? ?私はこの描画された線とオブジェクトの衝突(コロナSDK)

local function onCollision(event) 
     if (event.phase == "began") then 


       if event.object1.myName == "top" and event.object2.myName == "line" then 
         line("ended") 

       end 

     end 
end 

    Runtime:addEventListener("collision", onCollision); 

のように衝突・スミスとのことを行うことができますが、それは動作しません...任意のアイデアを推測

local line = function() 
if(e.phase == "began") then 
--code for line 
elseif(e.phase == "moved") then 
--code for line to draw 
elseif(e.phase == "ended") then 
--code for line to stop draw 
end 

:ラインの元私の機能については

答えて

0

私はあなたのコードをもっと見ていく必要があります。特に、あなたが望んでいる答えを与えるために、行を作成する方法(あるいはそれらを頻繁に作成/破棄する場合の行)が必要です。しかし、私がこれをやっていたら、指の動きごとに線を描き直し(物理的なボディを追加せずに)、指の位置に基づいて矩形との交点を手動でチェックします。すなわち、次のようなもの:

local line = function() 
    ... 
    elseif(e.phase == "moved") then 
     local cb = rect.contentBounds 
     if event.x > cb.xMin and event.x < cb.xMax and event.y > cb.yMin and event.y < cb.yMax) then 
      line("ended") 
     end 
    else 
    .... 
end 

衝突の問題点は、作成および再作成ラインを、彼らが交差する起こるのかしている場合、あなたはそれらの短いライフサイクル(実際にイベントを取得できない場合があります彼らは実際に動いていない)。本当に衝突を使用する場合は、touch begin(円)上に目に見えないプロキシオブジェクトを作成し、動きの開始点からそれまでの線を描画します。次に、プロキシオブジェクトのタッチジョイントを使用して、そのオブジェクトの衝突を検出します。それはおそらくそれが価値よりも厄介です。

+0

http://stackoverflow.com/questions/11915215/collision-of-a-line-and-object-corona-sdk-ここをクリックしていただきありがとうございます。最悪のことは、衝突したくないと感じることです – barmyman

関連する問題