我对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)处绘制我所有的精灵,每帧改变一次。反正他们是解决这个问题的人。
答案 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帧将绘制一张新卡片。您可以根据自己的喜好随意修改该数字。如果您还有其他需要,请发表评论。