Hallo Ich versuche, ein einfaches Spiel mit Libgdx zu machen, aber ich bin mit einigen Schwierigkeiten laufen die Sprite-Klasse, dies ist mein Code:sprite.SetScale Funktion funktioniert nicht (Libgdx)
package com.carebearer;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class demo extends ApplicationAdapter{
SpriteBatch batch;
Texture img;
Sprite sprite;
@Override
public void create() {
batch = new SpriteBatch();
img = new Texture("hello.png");
sprite = new Sprite(img);
sprite.setScale(.5f);
sprite.setPosition(Gdx.graphics.getWidth()/2 - sprite.getWidth()/2,
Gdx.graphics.getHeight()/2 - sprite.getHeight()/2);
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 1); //RGBAlpha, 1 = 100%
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(sprite, sprite.getX(), sprite.getY());
batch.end();
}
}
Die Problem ist die setScale-Funktion.
Ob ich setScale benutze oder nicht, das Sprite bleibt gleich (Es tut im Grunde nichts). Was ich will es ist in der Größe zu halbieren der Sprite
Ich bin mir ziemlich sicher, dass ich etwas offensichtlich fehlen, aber ich habe mit diesem Problem mehr Zeit stecken, als ich es zugeben möchte.
Ok nach Stunden des Versuchens gelang es mir, meinen Fehler nach ein paar Minuten der Veröffentlichung dieses zu finden. Damit die Skalierung funktioniert, müssen Sie sie an batch.draw senden, da es so aussieht, als würde die Funktion die Bild-Originalskalierung als Standard verwenden, wenn Sie sie nicht angeben. Hier sind die Änderungen, die am Code vorgenommen wurden. > batch.draw (sprite, sprite.getX(), sprite.getY(), sprite.getWidth()/2, sprite.getHeight()/2, sprite.getWidth(), sprite.getHeight(), sprite.getScaleX(), sprite.getScaleY(), sprite.getRotation()); – Gabriel
Oder verwenden Sie das Sprite, um sich mit Hilfe der Charge zu zeichnen. 'sprite.draw (batch)' ist die beabsichtigte Art Sprites zu zeichnen. – Madmenyo