ホープ誰もがこのリンクでの基本的なLibgdxゲームを知っている:簡単なゲームでLibGdx -simpleゲーム
https://github.com/libgdx/libgdx/wiki/A-simple-game
を、雨の滴はそれが一つであり、上からランダムに落ちていますタイプ。 私の場合、ドロップと同じものを実装したいと思います。違いは、4種類のドロップがあります。別のオブジェクトと衝突すると、4つの異なる特性が示されるはずです。要するに、オブジェクトと配列を持つDropクラスを作成し、ドロップオブジェクトも生成できます。
Drop drop=new Drop();
private Array<Drop> drops=new Array<Drop>();
しかし、この場合、ドロップの個別属性を定義する場合はどうすればよいですか? ドロップオブジェクトを4つのタイプに分類します。例えば、黄色、赤、緑、青の色が異なる。また、4種類の滴が上からランダムに落ちるはずです。
どのようにして、どのようにこのような概念を実装する必要がありますか?
私はこれについていくつかのアイデアを得ると非常に役に立ちます。
編集:
私は抽象クラスのドロップを持っていると.Iはconstructor.Becauseグラフィックスで質感や四角形を渡していない午前中にそれを割り当てることを計画しています右now.Iプロジェクトでは使用できません今のところ、私はshaperendererでそれをやっています。
私はすべてのオブジェクトを作成するために使用される私のObjectFactoryクラスの三つの異なる色の滴のための()メソッドを作成してい:
public YellowDrop createYellow(){
YellowDrop yellow = new YellowDrop();
yellow.setSize(100f,100f);
yellow.setPosition(MathUtils.random(0, 800),1280);
return yellow;
}
public RedDrop createRed(){
RedDrop red = new RedDrop();
red.setSize(100f,100f);
red.setPosition(MathUtils.random(0, 800),1280);
return red;
}
public GreenDrop createGreen(){
GreenDrop green = new GreenDrop();
green.setSize(100f,100f);
green.setPosition(MathUtils.random(0, 800),1280);
return green;
}
をそして私にとっては、このような私が書かれてcreateRandomDrop()コード(、あなたのコードされますthough.Howを混乱私はそこの方法でコロン記号が、私はそれを使ったことがないことを使用することができます)
プライベートブロックcreateRandomDrop(){ スイッチ(MathUtils.random(0、3)){ 場合0:?。 システム.out.println( "000000"); return objectFactory.createYellow(); ケース1: return objectFactory.createGreen();
case 2 : return objectFactory.createRed();
default:
return objectFactory.createGreen();
}} は、ここで私は、個々のドロップオブジェクトを返す方法については混乱しています。 私はこのような呼び出しが書かれているにもかかわらず:私はすべての配列要素のためのshaperenderer描いています最後に
if(TimeUtils.nanoTime() - lastDropTime > 1000000000) {
drops.add(createRandomDrop());
}
private void updateBlocks(float delta) {
Iterator<Drop> iter = drops.iterator();
while(iter.hasNext()) {
Drop b = iter.next();
b.update(delta);//moving drop from top to bottom in update()
if(b.getY()<0) iter.remove();
}
// System.out.println(drops.size);
}
:
for (Drop b : drops) {
b.drawDebug(shapeRenderer);}
このdrawdebugを()ドロップクラスでありますそれを上書きしています。
public void drawDebug(ShapeRenderer shapeRenderer) {
shapeRenderer.setColor(Color.YELLOW);
shapeRenderer.rect(collisionRectangle.x, collisionRectangle.y,
collisionRectangle.width,
collisionRectangle.height);
}
問題はあまりにも多いドロップです作成され、重複している。スイッチのケースが問題を引き起こすかもしれない。
行く。 – Niranjana