2014-09-04 4 views
0

Привет всем я пытался 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(); 

} 

}

это это код, который перемещает камеру на карте, но камера не останавливается, двигаясь в конце карты, пожалуйста, помогите мне, ребята, как я могу заставить камеру остановиться, когда она дойдет до конца карты ???? ??

+0

Получить позицию, в которой отображается ваша карта. Если камера вне диапазона, положение карты + - размер карты. Просто прекратите движение камеры в этом направлении. – Veljko

+0

пожалуйста veljiKo может у меня код, чтобы остановить перемещение камеры? : D – user3922899

+0

Ваша проблема заключается в обнаружении этого, я думаю. Остановка перемещения означает, что вы не обновляете положение камеры. Можете ли вы предоставить код, который отображает вашу карту. Я не уверен, что вас смущает. – Veljko

ответ

0
 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; 
     } 

Надеюсь, вы поймете вышеуказанный беспорядок!

Смежные вопросы