[英]Libgdx Draw Texture constantly
當我的 if 語句為真時,我想繪制一個紋理。
但是Texture顯示一秒直接dispose。
我想問是否有辦法在滿足條件后停止處理並顯示紋理。
我的渲染方法:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(BackgroundImage, 0,0, BackgroundImage.getWidth(), BackgroundImage.getHeight());
batch.end();
// Kamera aktualisiert ihre Matrizen
camera.update();
// Dem SpriteBatch mitteilen , dass es das
// Koordinatedsystem , welches von der Kamera erstellt wurde, benutzen soll
batch.setProjectionMatrix(camera.combined);
batch.begin();
for (Rectangle raindrop : raindrops) {
batch.draw(TropfenTexture, raindrop.x, raindrop.y);
}
bmf.setColor(1f, 1f, 1f, 1f);
bmf.draw(batch, ScoreString, 10, 790);
batch.end();
GameSpeedup();
Iterator<Rectangle> iter = raindrops.iterator();
while (iter.hasNext()) {
Rectangle raindrop = iter.next();
raindrop.y -= 200 * Gdx.graphics.getDeltaTime();
if (raindrop.y < 0)
iter.remove();
if (raindrop.overlaps(BoundsBottom)) {
//dropSound.play();
//game.setScreen(new GameOverScreen(game));
//Gdx.input.vibrate(200);
batch.begin();
batch.draw(PfützeTexture, 0, 0);
batch.end();
}
if (Gdx.input.justTouched()) {
Vector3 tmp = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
camera.unproject(tmp);
if (raindrop.contains(tmp.x, tmp.y)) {
CurrentScore++;
ScoreString = "" + CurrentScore;
if (dropSound.isPlaying())
dropSound.stop();
dropSound.play();
iter.remove();
if (raindrop.contains(tmp.x, tmp.y) && raindrop.overlaps(BoundsBottom)) {
CurrentScore++;
ScoreString = "" + CurrentScore;
dropSound.pause();
dropSound.play();
iter.remove();
}
}
}
}
if (CurrentScore > Highscore){
Highscore = CurrentScore;
prefs.putInteger("highscore", Highscore);
prefs.flush();
}
}
編輯:澄清了我的問題並添加了更多代碼
如果我正確理解您的問題,您不應該通過檢查碰撞來渲染 object。 而是從游戲實體的 arrays 渲染。
更新 object 位置
if (raindrop.overlaps(BoundsBottom)) { waterRectangles.add(new WaterObject()); //maybe remove raindrop? } batch.start(); for(Rectangle waterObject: waterRectangles{ batch.draw(WaterTexture,waterObject.x,waterObject.y); } //same for raindrops batch.end(); //update positions
希望這可以幫助。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.