Sì, anche se probabilmente è necessario regolare/ridimensionare le coordinate un po '(è possibile utilizzare spriteBatch.setTransformMatrix per farlo in una sola chiamata). Ecco un piccolo esempio:
public class SpriteBatch3DTest extends GdxTest {
PerspectiveCamera cam;
CameraInputController camController;
SpriteBatch spriteBatch;
Texture texture;
@Override
public void create() {
cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(0f, 8f, 8f);
cam.lookAt(0,0,0);
cam.near = 0.1f;
cam.far = 300f;
cam.update();
spriteBatch = new SpriteBatch();
camController = new CameraInputController(cam);
Gdx.input.setInputProcessor(camController);
texture = new Texture(Gdx.files.internal("data/badlogic.jpg"));
}
@Override
public void render() {
camController.update();
spriteBatch.setProjectionMatrix(cam.combined);
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
spriteBatch.begin();
spriteBatch.draw(texture, -5f, -5f, 10f, 10f);
spriteBatch.end();
}
@Override
public void dispose() {
spriteBatch.dispose();
texture.dispose();
}
public boolean needsGL20() {
return true;
}
public void resume() {
}
public void resize (int width, int height) {
}
public void pause() {
}
}
grazie funziona alla grande. Ma i miei sprite circolari sembravano sempre lisci, ora sembrano frastagliati alla circonferenza? Anche il mio touchpad che stavo usando da qui http://www.bigerstaff.com/libgdx-touchpad-example/ si presenta, ma non posso usarlo, voglio dire che la manopola non si muove e quindi non ottengo alcun input da esso –
perché questa fotocamera di prospect non cambia il touchpad che è un attore sul palco? Io uso lo stesso SpriteBatch per oggetti normali e touchapd, ma solo gli oggetti normali sembrano come voglio io. –
Per impostazione predefinita usa OthographicCamera, puoi cambiare la videocamera usando stage.setCamera (...) ;. Inoltre, stage usa camera.unproject per tradurre le coordinate dello schermo in fase, in cui assume z = 0. Questo potrebbe non funzionare per te, quindi probabilmente vorrai estendere Stage e sovrascrivere screenToStageCoordinates. Per ottenere un rendering migliore (uniforme), prova a cambiare il filtro minFilter/magFilter della tua texture. Credo che sia più vicino al valore predefinito, prova a impostarlo su Lineare. Tl; dr Stage non è progettato per l'uso con PerspectiveCamera, non lo consiglierei. – Xoppa