기본적으로 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)
'pygame_phyics' 카테고리의 다른 글
pygame 이미지 회전, 반전, 크기 조절 + 기준설정 (0) | 2025.05.02 |
---|---|
[pygame_phyics] 1.2.0 업데이트! (0) | 2024.07.28 |
[pygame Phyics] Camera/Effect (0) | 2024.03.12 |
[pygame_phyics] 애니메이션 (0) | 2024.03.12 |
[pygame] 버튼, text 줄넘김 구현 (0) | 2023.11.05 |