2017-01-09 10 views
0

私はLibGdxランニングゲームに取り組んでいます。ゲームにグッズ/コインがあります。 私はコイン配列を作成し、ゲーム全体を通してそれを生成しました。グッズのパターン作成 - LibGdx

遊びを改善するために、私はコインのパターンを作りたいと思います.2つのコインまたは3つのコインを一緒に、垂直または斜めの配置でコインなど 私はこれを実装しようとしましたが、

オブジェクトの配列を持つ三角形のようなパターンを実装するためのコードを教えてください。このよう :等間隔で3枚のコインで三角形: enter image description here

マイコインアレイ及び方法がここに含まれている:私は最後の硬貨に基づいて、新しいコインを追加してい 、画面上の特定の距離を通過します。

Array<Coin> coins = new Array<Coin>(); 

private void createCoin() { 

    coinObj = objectFactory.createCoin(CoinEnum.random()); 
    coinObj.isCollided = false; 
    coins.add(coinObj); 

} 

private void spawnCoin() { 

    if (coins.size == 0) { 
     createCoin(); 
    } else { 
     Coin c = coins.peek(); 

     if (c.getY() > (Constants.WORLD_HEIGHT/8)) 
      createCoin(); 
    } 
    // remove out of screen coins 
    if (coins.size > 0) { 
     Coin cc = coins.first(); 
     if (cc.getY() > Constants.WORLD_HEIGHT) { 
      coins.removeValue(cc, true); 
     } 
    } 
} 

また、私のアプローチが間違っていると誰かが教えてくれることを願っています! ありがとうございます!

+2

"誰かが私のアプローチのミスを教えてくれます"とは何が効いていないのですか? – Moira

+1

あなたが問題について考える場合は、ここに1分間だけプレゼントしてください。作成したいパターンは何ですか?パターンの抽象的なアイデアではなく、それらを書き留めてください。パターンを書き留めます。それを描く。パターンのルールは何ですか?コインは互いに一定の距離にありますか?あなたが望むパターンがわからない場合は、他の誰かがあなたにそれを作る方法を教えてくれると期待することはできません。作成したいパターンのイラストとパターンのルールの説明であなたの投稿を編集してください。 – IronMonkey

+0

'createCoin()'メソッドも共有する価値があります。 – Enigo

答えて

2

まず、CoinPatternをモデル化してみてください。
- CoinPatternとは何ですか?
単なるパターンであり、複数のコインの配置を表しています。
- 何を記述する必要がありますか?
単なるパターンなので、まだ​​は必要ありません。
私の意見では、Point(またはVector2)のリストで十分です。
これらのそれぞれはPatternの中のObject(あなたの場合は​​)の相対Positionを記述することができます。

Patternの定数を作成できました。

public static final PATTERN_TRIANGLE = new Vector2[] { 
    new Vector2(0,0), 
    new Vector2(1,0), 
    new Vector2(0,1), 
}; 

次にあなたがメソッドspawnPattern(Vector2[] pattern, int x, int y)を作成することができます。三角形はこのような何かを見ることができます。この方法ではpatternVector2ごとに​​を作成する必要があります。このMethodeのを使用して、​​Sの位置がPattern位置の下、左コーナーに対して相対的であること、

int posX = x + pattern[i].x; 
int posY = y + pattern[i].y; 

注:
各​​の位置は次のように計算することができます。