Draw several actors of the same class on the screen (LibGDX JAVA)

1

When creating different actors of the same class, each one with a different position when executing the program only creates the last created actor.

public class MyGdxAjedrez extends ApplicationAdapter {

private SpriteBatch lienzo;
private ShapeRenderer shaper1;
private ShapeRenderer shaper2;
private Stage stage;

private Torre torreBlanco;
private Caballo caballoBlanco;
private Alfil alfilBlanco;
private Rey reyBlanco;
private Reina reinaBlanco;
private AlfilDer alfilBlancoDer;
private CaballoDer caballoBlancoDer;
private TorreDer torreBlancaDer;


private ArrayList<Peon> peones;

private OrthographicCamera cam;
private int ancho;
private int alto;

@Override
public void create() {

    stage = new Stage(new ScreenViewport());
    Gdx.input.setInputProcessor(stage);

    Torre torreBlanco = new Torre(0, 0);
    Caballo caballoBlanco = new Caballo(50, 0);
    Alfil alfilBlanco = new Alfil(100, 0);
    Rey reyBlanco = new Rey(150, 0);
    Reina reinaBlanco = new Reina(200, 0);
    AlfilDer alfilBlancoDer = new AlfilDer(250, 0);
    CaballoDer caballoBlancoDer = new CaballoDer(300, 0);
    TorreDer torreBlancaDer = new TorreDer(350, 0);

    Peon peon1 = new Peon(0, 50);
    Peon peon2 = new Peon(100, 50);
    Peon peon3 = new Peon(150, 50);
    Peon peon4 = new Peon(200, 50);
    Peon peon5 = new Peon(250, 50);
    Peon peon6 = new Peon(300, 50);
    Peon peon7 = new Peon(350, 50);


    peones = new ArrayList();

    stage.addActor(torreBlanco);
    stage.addActor(caballoBlanco);
    stage.addActor(alfilBlanco);
    stage.addActor(reyBlanco);
    stage.addActor(reinaBlanco);
    stage.addActor(alfilBlancoDer);
    stage.addActor(caballoBlancoDer);
    stage.addActor(torreBlancaDer);
    stage.addActor(peon1);
    stage.addActor(peon2);
    stage.addActor(peon3);
    stage.addActor(peon4);
    stage.addActor(peon5);
    stage.addActor(peon6);
    stage.addActor(peon7);

I also add a catch of the peon class

and the code of the image:

package com.mygdx.game;

import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Touchable;

public class Peon extends Actor implements InputProcessor {

    private static Texture textura = new Texture(Gdx.files.internal("Peon.png"));
    private static Sprite sprite = new Sprite(textura);
    private float posX;
    private float posY;

    public Peon(float posX, float posY) {
        sprite.setPosition(posX, posY);
        setBounds(sprite.getX(), sprite.getY(), sprite.getWidth(), sprite.getHeight());
        setTouchable(Touchable.enabled);
    }

    public void draw(Batch lienzo, float parentAlpha) {
        sprite.draw(lienzo);
    }
    
asked by Alvaro Luque Jimenez 10.04.2018 в 16:38
source

0 answers