2016-08-13 2 views
0

내 인생에서 내가 카메라 위치 (설정 방법과 업데이트 방법 모두)를 설정하는 것이 효과가없는 이유를 알 수 없습니다.Libgdx 카메라 - 효과가없는 위치 설정

이미 확인한 기본 클래스에서 업데이트를 호출하고 있습니다. 여기에 코드입니다 :

package com.moneylife.zombietown; 

import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.OrthographicCamera; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public class GameManager { 
    SpriteBatch spriteBatch; 
    float deltaTime; 
    Texture mapTexture; 
    OrthographicCamera camera; 
    int WORLDWIDTH = 2880, WORLDHEIGHT = 1920; 

    public GameManager(){ 
     spriteBatch = new SpriteBatch(); 
     mapTexture = new Texture("map2880x1920.jpg"); 


     float w = Gdx.graphics.getWidth(); 
     float h = Gdx.graphics.getHeight(); 
     camera = new OrthographicCamera(940, 940 * (h/w)); /// POSSIBLY NEED TO CHECK THIS ******* 
     camera.position.set(camera.viewportWidth/2 + 500, camera.viewportHeight/2, 0); 
     camera.update(); 
    } 

    public void update(){ 
     deltaTime = Gdx.graphics.getDeltaTime(); 
     camera.position.x += 10; 
     camera.position.y += 10; 
     camera.update(); 
    } 

    public void draw(){ 
     spriteBatch.begin(); 
     spriteBatch.draw(mapTexture,0,0); 
     spriteBatch.end(); 
    } 
} 

여기 만이 관련된 경우 기본 클래스입니다 :

package com.moneylife.zombietown; 

import com.badlogic.gdx.ApplicationAdapter; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.GL20; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public class ZombieTown extends ApplicationAdapter { 
    GameManager gameManager; 



    @Override 
    public void create() { 
     gameManager = new GameManager(); 

    } 

    @Override 
    public void render() { 
     Gdx.gl.glClearColor(1, 0, 0, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     gameManager.update(); 
     gameManager.draw(); 

    } 

    @Override 
    public void dispose() { 
     gameManager.spriteBatch.dispose(); 

    } 
} 

난 그냥 자동으로지도를 만들 지금은 시작에 대각선 스크롤하려고했다 ...

+0

그리기 할 스프라이트 배치에 카메라의 투영 행렬을 광고해야합니다. '.begin' 전에'batch.setProjectionMatrix (cam.combined)'를 호출합니다. 전화로 지금 너무 많은 atm을 도울 수 없다. – Madmenyo

+0

절대 영웅! 모든 도움이 크게 감사되었습니다. 다시 한 번 감사드립니다. 이 질문에 답할 수 있도록 전체 답으로 써 주시기 바랍니다. – Ronny

+0

나는 축구 경기의 절반 시간에보고있다.) – Madmenyo

답변

0

이 질문에 대한 답은 Menno Gouw입니다. 위의 그의 의견은 스프라이트 배치에 카메라의 투영 행렬을 추가하지 않았다고 말합니다.

spriteBatch.setProjectionMatrix(camera.combined); 

begin() 줄 앞에있는 줄은이 문제를 해결하는 데 필요한 모든 항목입니다.