저는 C++을 배우고 2D 타일 매핑을 사용하고 있습니다.스프라이트 또는 움직이는 카메라의 가운데 맞추기? C++/OpenGL
나는이 tiling tutorial을 기반으로이 scrolling
포스트 here를 통해 읽고있다.
위의 튜토리얼과 Pearson, Computer Graphics with OpenGL
책의 도움을 받아 40x40
타일링 된 세계와 Sprite
(타일)을 그리는 작은 프로그램을 작성했습니다.
그리기/렌더링 순서와 관련하여지도 (또는 세계) 자체는 그 뒤쪽 레이어이며 스프라이트는 가장 앞쪽 (최상위) 레이어입니다. 2 타일이 타일 및 사용자 정의 스프라이트 나 사각형보다 상호 작용하기 쉽기 때문에 그렇게하는 것이 좋은 방법이라고 가정합니다. 그 맞습니까?
난 당신이 keyboards arrow keys
를 사용하여 viewport
내부의 map
를 이동할 수있는 Keyhandling()
기능을 구현했습니다. 키를 누를 때 증가 또는 감소하는 변수는 offsetx, offsety
입니다. 변수를 map
또는 sprite
에 할당할지 여부에 따라 화면에서 어느 방향 으로든 더 많은 변수를 지정할 수 있습니다.
어느 쪽도 잘 작동하지 않으므로 스프라이트에 대해 양수 값을 사용하고지도에 대해 음수 값을 사용하여 변수를 모두 (맵 및 스프라이트)에 할당했습니다. 따라서 키를 누르면지도가 반대 방향으로 움직이는 동안 내 스프라이트는 한 방향으로 움직입니다.
내 문제는 스프라이트가 곧 화면을 떠날만큼 충분히 움직여서지도에 더 많은 부분을 가져다 줄만큼 충분하지 않다는 것입니다. (이 창에는 한 번에 약 1/8th
개의 타일 만 표시됩니다.)
나는 하루 종일 생각하고 있었고,이 문제를 해결할 수있는 효율적/효과적인 방법은 sprite
을 화면 중앙에 고정시키고 키를 누를 때 map
주위를 돌아 다니며 ... 나는 비록 이것을 구현하는 방법을 모르겠습니다.
그게 좋은 방법일까요? 또는 뷰포트 또는 카메라를 움직일 것으로 예상됩니까?