Libgdx每帧变化的随机图像

时间:2018-08-11 23:31:20

标签: java libgdx

我对Libgdx还是很陌生,当我想显示扑克牌的随机图像时遇到了一个问题。我将所有的精灵放置在一个数组列表中,并使用array.random来获取特定的随机纸牌,但是,输出将是所有纸牌图像在每一帧都发生变化。

黑桃类

public class Spades extends CardTypes{
public Array<Sprite> spades = new Array<Sprite>(3);

public void cards(){

    spades.add(ace = new Sprite(new Texture("spades/AS.png")));
    spades.add(two = new Sprite(new Texture("spades/2S.png")));
    spades.add(three = new Sprite(new Texture("spades/3S.png"))); }

GameScreen类

public class GameScreen implements Screen {

Spades spading = new Spades();

private Main game;

//create method
public GameScreen(Main game) {
    this.game = game;
    spading.cards();
}


@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    Gdx.graphics.getDeltaTime();
    game.getBatch().begin();
    game.getBatch().draw(spading.spades.random(),0,0);
    game.getBatch().end();

} }

game.getBatch.draw()方法将在坐标(0,0)处绘制我所有的精灵,每帧改变一次。反正他们是解决这个问题的人。

1 个答案:

答案 0 :(得分:1)

就是这样。 this方法被称为每一帧。您可以添加一个计时器,如下所示:

(item) => {
  const self = this;
  
  return (h) => (
  
    <button onClick={ () => {console.log(self)} }>
      <span class="uk-margin-small-left" uk-icon="icon: file-edit"></span>
      edit
    </button>
  );
}

然后,每隔50帧将绘制一张新卡片。您可以根据自己的喜好随意修改该数字。如果您还有其他需要,请发表评论。