停止移动相机(LIBGDX)
问题描述:
大家好,我一直在试图STO在我的地图年底移动我的相机,但它继续移动,这是我的代码:停止移动相机(LIBGDX)
@Override
public void render(float delta) {
//moving tiled map
camera.position.x=camera.position.x+Gdx.graphics.getDeltaTime()*200;
camera.update();
//...........................................
Gdx.gl.glClearColor(1, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// renderer camera and map
renderer.setView(camera);
renderer.render();
//...................................................
}
@Override
public void show() {
batch = new SpriteBatch();
map = new TmxMapLoader().load("maps/map1.tmx");
renderer = new OrthogonalTiledMapRenderer(map);
camera = new OrthographicCamera();
}
@Override
public void hide() {
}
@Override
public void create() {
}
@Override
public void resize(int width, int height) {
camera.viewportWidth = width;
camera.viewportHeight = height;
camera.position.set(width/2f, height/3f, 0); //by default camera position on (0,0,0)
camera.update();
}
@Override
public void render() {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
map.dispose();
renderer.dispose();
}
}
这是在地图上移动相机的代码,但相机不会停止移动到地图的末端,请帮助我们如何在相机到达地图的末端时让相机停止移动? ??
答
if (camera.position.x + camera.viewportWidth/2 >= Float
.parseFloat(currentMap.getProperties().get("width").toString())
* TILE_SIZE) {
camera.position.x = Float.parseFloat(currentMap.getProperties()
.get("width").toString())
* TILE_SIZE - camera.viewportWidth/2;
}
希望你明白上面的那个烂摊子!
获取地图渲染的位置。如果camere超出范围,地图的位置+ - 地图的大小。只需停止在这个方向移动相机。 – Veljko 2014-09-04 14:12:46
请veljiKo你能给我的代码停止移动相机? :D – user3922899 2014-09-04 14:22:26
你的问题是我猜的检测。停止移动意味着你不想更新相机位置。你能提供渲染你的地图的代码吗?林不知道什么让你感到困惑。 – Veljko 2014-09-04 14:24:23