2012-01-12 17 views
0

私は自分の試合で山のプロファイルを持っており、ユーザーが山を押す(タッチイベント)と山の間の谷を押す(形を作るために使用されたアルファチャンネル)の間を見分けることができるようにコロナが必要です。コロナはこの意味での表示オブジェクトを長方形として扱うため、私が見つけた手段で私の必要性を満たすことはできません。任意の形状のグラフィックスからボタン(コロナSDK)を作成する方法は?

しかし、コロナ物理機能を使用すると、複雑なポリゴンを作成して任意の形状を模倣して衝突処理を行うことができますが、ボタンと同様の方法はありません。

アイデア?

答えて

0

これは自動ではありませんが、少しセットアップとコードが必要な解決策があります。あまりにも難しくはありません。

event.xevent.yのパラメータを調べることで、イベントリスナーのタッチ位置をテストします。これは、各ストリップの左端のx値と右端のx値、たとえばオブジェクトの上から下の10ピクセルの値を持つテーブルを作成することで効率的にすることができます。例えば、この山を考える:

enter image description here

例えば、Yは、テーブルへのインデックスとして、各光の青色の長方形の底の座標、及びそのエントリに左x及び右のyの値をロードする使用:

hitTable[120] = {245,260} 
hitTable[130] = {230,275} 

のように...

その後、タッチイベントリスナーでは、機能またはちょうどそれがに最も近いですかを確認するためのテストのいずれか、あなたのテーブルの指標の一つにevent.yパラメータを強制します。次に、そのテーブルエントリを使用して、event.xがそのy座標に指定したx座標の間にあるかどうかを確認します。そうでない場合は、タッチを無視してください。

あなたも、テーブルを作成し、このような画像自体のプロパティとしてそれを割り当てることができます。

hitTable = {} 
hitTable[120] = {245,260} 
hitTable[130] = {230,275} 
... and so on, then ... 
myMountain.hitTable = hitTable 

あなたがevent.target.hitTableように、タッチイベントリスナーでテーブルにアクセスすることができることをやったら。

+0

ジェフキックのおかげでありがとう。しかし、私はテーブルを作成するために手作業を必要とするので、このようなソリューションを避けることを望んでいました。その意図は、上記のような40の山脈のラインに沿って私のアプリでかなりの大きさでどこかにあることです。 ImはAnscaに対するこれらの機能要求の別の1つかもしれないと恐れている。しかし、確かに彼らはそれを前に聞いた。 – Amoxus

0

山頂を90度の角度の先端で作成できますか?その後、山頂を分割して45度回転させると、正方形に収まります。それぞれをエクスポートしたら、それらをCoronaにインポートして45度に戻します。私はこれをテストhaventしかし、私はそれが動作するかもしれない想像してください:)

+1

これはうまくいく可能性があります。しかし、私は平らなセクション(平野/尾根)も必要とするので、問題は残っています。 – Amoxus

関連する問題