매트릭스 스택 푸시 (matrix_stack_push)
이 함수는 현재 매트릭스 스택의 맨 위에 새로운 매트릭스를 추가하는 데 사용됩니다. 주어진 매트릭스를 스택의 맨 위에 있는 매트릭스와 먼저 곱한 후, 그 결과 매트릭스를 스택에 추가합니다. 이 함수는 여러 매트릭스 변환을 시각적 요소에 적용할 때 유용하며, 다양한 매트릭스를 수동으로 곱할 필요가 없습니다.
활용 예제
예를 들어, 기본 매트릭스를 스택에 푸시하여 특정 직사각형 영역(예: 창)에 그래픽을 그릴 수 있습니다. 그 매트릭스를 사용하여 그래픽을 그린 후, 서브 영역(예: 창 안의 버튼)에 그래픽을 그리기 위해 또 다른 매트릭스를 스택에 푸시할 수 있습니다. 서브 영역에 무언가를 그린 후, matrix_stack_pop()
을 호출하여 그 매트릭스를 스택에서 제거하고 메인 창 영역에 계속해서 그래픽을 그릴 수 있습니다.
문법
matrix_stack_push(matrix);
인수
인수 | 유형 | 설명 |
---|---|---|
matrix | 매트릭스 배열 | 스택에 푸시할 매트릭스 |
반환값
N/A
예제 코드
var m1 = matrix_build(66, 145, 0, 0, 0, 0, 1, 1, 1);
var m2 = matrix_build(0, 0, 0, 0, 0, image_angle * 6, 1, 1, 1);
matrix_stack_push(m1);
matrix_stack_push(m2);
matrix_set(matrix_world, matrix_stack_top());
draw_sprite(spr_tyre, 0, 0, 0);
matrix_stack_pop();
matrix_stack_pop();
위의 코드는 두 개의 새로운 매트릭스를 생성하고 이를 매트릭스 스택에 푸시합니다. 그런 다음 월드 매트릭스를 스택의 맨 위로 설정하고, 스프라이트를 그린 후 변환을 스택에서 팝합니다.