본문 바로가기

pygame_phyics

pygame 좌표, 카메라 만들기

기본적으로 pygame은 화면창 상단 왼쪽을 원점(0,0)으로 잡고,

오른쪽, 아래쪽으로 갈수록 숫자가 증가한다.

 

그냥 2차원 배열이랑 같다.

 

이 글은 카메라 개념을 만들고, 여러 좌표 기준을 만든다.

 

가장 기본적인 카메라는 

카메라의 위치에 각 오브젝트의 위치를  뺀 값을 오브젝트의 프로그램 좌표로

한다.

 

예제들은 pygame.Vector2 변수로 가정해서

 

(기본)

world_position = camera_position - obj_position

 

만약 원점을 정가운데에 하고싶으면 여기서 프로그램 창 사이즈에

2를 나눈 값을 더한다.

 

(원점변경)

 

world_position = camera_position - obj_position + (window_size / 2)

 

좌표가 아래로 갈수록 증가하는건 일반적이지 않기에 혼동이 올수있다.

y좌표를 반전시켜 오브젝트 좌표 작성시 일반적인 좌표로 표기할 수 있게한다.

 

(y 반전)

 

reversed_y = window_size.y - camera_position.y

world_position = Vector2(camera_position. x, reversed_y) - obj_position 

 

그리고 원점변경이랑 y반전을 같이 적용시키면

 

(원점변경, y 반전)

 

reversed_y = window_size.y - camera_position.y

world_position = Vector2(camera_position. x, reversed_y) - obj_position + (window_size / 2)