draw_getpixel_ext 함수 설명
draw_getpixel_ext
함수는 현재 렌더 타겟에 그려지고 있는 픽셀의 32비트 AGBR 값을 가져오는 기능을 제공합니다. 이 함수의 결과는 호출되는 이벤트와 사용되는 타겟 표면에 따라 달라집니다.
중요 사항
이 함수는 성능에 큰 영향을 미치므로, 꼭 필요한 경우에만 사용해야 합니다.
문법
draw_getpixel_ext(x, y);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
x | 정수 | 확인할 픽셀의 x 좌표 |
y | 정수 | 확인할 픽셀의 y 좌표 |
반환값
- 실수형: 픽셀의 32비트 색상 값
예제
col = draw_getpixel_ext(mouse_x, mouse_y);
alpha = (col >> 24) & 255;
blue = (col >> 16) & 255;
green = (col >> 8) & 255;
red = col & 255;
위 코드는 마우스 위치에서 32비트 색상 값을 가져오고, 이를 구성 요소 값으로 분리하여 변수에 저장합니다.
활용 예제
- 픽셀 색상 검사
- 특정 위치의 픽셀 색상을 검사하여 게임 오브젝트의 상태를 변경할 수 있습니다.
gml if (draw_getpixel_ext(100, 150) == some_color) { // 상태 변경 코드 }
- 마우스 클릭 위치 색상 확인
- 사용자가 클릭한 위치의 색상을 확인하여 특정 행동을 트리거할 수 있습니다.
gml if (mouse_check_button_pressed(mb_left)) { var clicked_color = draw_getpixel_ext(mouse_x, mouse_y); // 클릭한 색상에 따라 행동 결정 }
- 픽셀 기반 충돌 감지
- 픽셀 색상을 기반으로 충돌을 감지하여 게임의 물리적 상호작용을 구현할 수 있습니다.
gml var pixel_color = draw_getpixel_ext(player.x, player.y); if (pixel_color == collision_color) { // 충돌 처리 코드 }
- 이미지 필터 적용
- 특정 색상 값을 기반으로 이미지 필터를 적용하여 그래픽 효과를 줄 수 있습니다.
gml for (var x = 0; x < image_width; x++) { for (var y = 0; y < image_height; y++) { var color = draw_getpixel_ext(x, y); // 색상 변환 코드 } }
이와 같은 활용 예제를 통해 draw_getpixel_ext
함수를 다양한 방식으로 응용할 수 있습니다.