2014-09-04 106 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

獲取地圖渲染的位置。如果camere超出範圍,地圖的位置+ - 地圖的大小。只需停止在這個方向移動相機。 – Veljko 2014-09-04 14:12:46

+0

請veljiKo你能給我的代碼停止移動相機? :D – user3922899 2014-09-04 14:22:26

+0

你的問題是我猜的檢測。停止移動意味着你不想更新相機位置。你能提供渲染你的地圖的代碼嗎?林不知道什麼讓你感到困惑。 – Veljko 2014-09-04 14:24:23

回答

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

希望你明白上面的那個爛攤子!