我有一个libgdx的问题。我想做一个关于放大,缩小的简单示例,但是orthographicCamera没有做任何事情。
我的代码:
public class HitTheGreenBlock extends ApplicationAdapter {
public static int WIDTH, HEIGHT;
SpriteBatch batch;
OrthographicCamera orthographicCamera;
private StateManager stateManager;
@Override
public void create () {
WIDTH = Gdx.graphics.getWidth();
HEIGHT = Gdx.graphics.getHeight();
batch = new SpriteBatch();
orthographicCamera = new OrthographicCamera();
orthographicCamera.translate(WIDTH /20 , HEIGHT / 20);
orthographicCamera.update();
stateManager = new StateManager();
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0.78f, 0.25f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stateManager.update(Gdx.graphics.getDeltaTime());
stateManager.draw(batch);
}
}
将图像绘制到屏幕上的类:
public class PlayState extends MainState{
public PlayState(StateManager stateManager){
super(stateManager);
}
private int width,height;
public void init() {
width = 2 * HitTheGreenBlock.WIDTH / 3;
height = width;
ImageLoader.load();
}
public void update(float dt) {
}
public void draw(SpriteBatch spriteBatch) {
spriteBatch.begin();
spriteBatch.draw(ImageLoader.greenRegion, (Gdx.graphics.getWidth() - width) / 2, Gdx.graphics.getHeight() / 5, width, height);
spriteBatch.end();
}
public void handleInput() {
}
public void dispose() {
}
}
我将来自HitTheGreenBlock.class的spriteBatch发送到PlayState.class。
我更改了这一行:
orthographicCamera.translate(WIDTH , HEIGHT);
到这一行:
orthographicCamera.translate(WIDTH /20 , HEIGHT / 20);
但是orthographicCamera做任何事情和图像大小都没有改变。
我的代码中有什么问题?
*我还有3个课程,如果需要,我也可以添加它们。
答案 0 :(得分:1)
您是否尝试在spriteBatch上将投影矩阵设置为camera.combined?在spriteBatch.begin之前,添加<ul class="nav nav-tabs">
<li onclick="this.className='active'"><a href="#">Home</a></li>
<li onclick="this.className='active'"><a href="#">Menu 1</a></li>
<li onclick="this.className='active'"><a href="#">Menu 2</a></li>
<li onclick="this.className='active'"><a href="#">Menu 3</a></li>
</ul>
这样做会告诉spriteBatch相对于你的相机渲染。