1

したがって、Tiledを使用すると、タイルをマップに配置する前に、次のようにタイル プロパティをタイルに直接設定できます。

タイル プロパティの設定

これは、衝突プロパティを「true」に設定し、スプライトを移動するときにタイル プロパティをチェックすることで、衝突チェックを行った方法です。

ただし、「テレポート」タイルを追加したいと思います。プレーヤーが特定のタイルを歩くと、別の場所に移動します。

私が直面している問題は、タイルにプロパティを設定すると、タイル インスタンスではなく一度しか設定できないことです。つまり、すべてのタイルに同じテレポート場所があります。

私は何かを見落としていますか?一般的にCocos2dでこれを行うためのより良い方法はありますか?

4

2 に答える 2

2

これにはオブジェクトレイヤーを使用できます。テレポータータイルに「オブジェクト」(タイルの長方形またはポイント)を追加し、オブジェクトのプロパティを使用して2つの場所を接続します。

マップをロードすると、すべてのオブジェクトをウォークオーバーして、接続しているオブジェクトを見つけることができます。次に、テレポート配列に格納できるテレポーターエンドポイントの2つのタイル位置がわかります。プレイヤーが新しいタイルに移動するたびに、テレポーテーションアレイをチェックして、プレイヤーがテレポーテーションフィールドの1つにいるかどうかを確認し、いる場合は、他のテレポーテーションタイルに移動します。

もちろん、オブジェクトとの交差(長方形)を確認することもできますが、複数のタイルにまたがるオブジェクト(長方形)を誤って作成する可能性があるため、ゲームを開始する前にこれらのオブジェクトを確認する方が信頼性が高いようです。

于 2012-08-26T20:11:37.347 に答える
1

これがおそらく最善の方法ですが、これが私がやったことです。メタ レイヤーを作成し、テレポート パッドごとに個別のタイルを作成できます。そのため、プレーヤーがテレポートパッド 1 にあるかどうかを確認するときは、プレーヤーの位置を receiverPad1 に設定します (これは、別のタイル、タイル内のオブジェクト、または衝突をチェックするときに設定したポイントである可能性があります)。そして、より多くのパッドのためにテレポートパッド2、テレポートパッド3などの別のものを作成するだけです。

于 2012-08-27T15:29:42.070 に答える