저는 libgdx를 사용하고 있으며 스프라이트를 그리려는 타일 맵이 있습니다. 그러나 스프라이트가 실제 윈도우에 그려 지므로 카메라를 움직일 때 스프라이트는 같은 위치에있게됩니다. 지도상에서 움직이기 원한다. 내가 현재 내 개체화면에 스프라이트를 그려야합니다.
@Override
public void render(float delta) {
translateCamera();
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
renderer.setView(camera);
renderer.render(bgLayers);
batch.begin();
batch.draw(splayerSprite, Gdx.graphics.getWidth()/2,
Gdx.graphics.getHeight()/2);
batch.end();
renderer.render(fgLayers);
}
렌더링 그것은 항상 화면의 중앙에 끝나게 방법
이 그러나 나는 각각 따로 예를 들어처럼 이동 할 수 있도록하려면,이다와 카메라 (W, A, S, D) 방향키로 내 플레이어를 움직이십시오. 그런 다음 카메라를 플레이어에 고정시키고 다른 플레이어를 자유롭게하려면
나는 당신은 당신의 화면 마다의 중심에 그리는 코드를 말하고있다
이것이 문제가되는 것은 맞지만 카메라를 움직이고 스프라이트가 정지 되어도 문제가 해결되지는 않습니다. –
@WilliamMorrison "입력에 따라 변경"이라고 말했을 때 스프라이트가 카메라의 위치에 관계없이 전역 화면의 중앙으로 그려지는 것을 고려하면 스프라이트에 대해 엄격하게 말하며 'translateCamera() '라고 불렀다. 물론 카메라 위치도 입력의 영향을받습니다. 새로운 libGDX 게임의 새로운 복사본으로 데모를했습니다. – Pandacoder
스프라이트 **는 카메라의 매트릭스가 변경 될 때마다 매번 같은 위치에 렌더링 되더라도 ** 이동합니다. 이것이 사실이 아니라면 정적으로 배치 된 객체는 카메라가 변환 될 때 화면을 가로 질러 움직이지 않는 것처럼 보입니다. OP의 문제는 카메라의 행렬과 일치하도록 스프라이트 배치의 행렬을 업데이트하지 않습니다. +1 데모. 쇼의 노력과 헌신! –