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);
}