GAME MAKER 강좌
KAYAN
간단하게 반복문을 이용한 글자를 표시하는 방법에 대해 알아보도록 합시다.
◈반복문 응용(for 문)
아래와 같이 (100,100)지점에 붉은색 글자를 32정도 간격으로 나열하여 표시하려면 어떻게 해야할까요?
(표는 간격을 나타내기 때문에 무시해도 됨)
(▲표시 예1)
보통 짧은 글자는 아래와 같이 하나하나 표시하는 방법이 있습니다.
draw_set_halign(fa_center);//문자 가로 정렬(가운데) |
[참고]
draw_set_halign(halign):문자의 가로 정렬을 하고자 할때 쓰입니다.
halign에는 fa_left(왼쪽으로 정렬), fa_center(가운데), fa_right(오른쪽으로 정렬)를 사용할 수 있습니다.
draw_set_valign(valign):문자의 가로 정렬을 하고자 할때 쓰입니다.
valign에는 fa_top(위로 정렬), fa_middle(중간), fa_bottom(아래로 정렬)를 사용할 수 있습니다.
하지만 몇개만 표시하는 것이라면 모를까, 일정한 간격으로 여러개 표시하는 것은 코드 작성 시간도 많이 들고,
코드의 양만 늘어날뿐 비효율적인 작업이라 볼 수 있습니다.
그래서 이러한 경우 반복문을 사용하는 것이 작업도 쉽게 할 수 있고, 시간도 절약할 수 있습니다.
강좌에서는 for 문을 사용해보도록 하겠습니다.
numb=0; |
코드 양은 위의 예문과 비슷하긴 하지만, 표시하는 숫자가 많을 수록 for문과 같이 반복문을 사용하는 것이
코드의 양도 줄일 수 있고, 상당히 쉽고 편하다는 것을 알 수 있을 겁니다.
이것은 먼저 표시할 글자를 임시 변수로 선언하고, 반복문을 통해 5회동안 증가되는 글자를 표시하게 됩니다.
위의 반복문 이벤트는 i가 0일때부터 시작해, i가 5가 되기전에, i가 1씩 증가할때마다 이벤트를 실행시키지요.
그리고 증가 이벤트 마다 글자를 하나씩 표시하는 겁니다.
아래와 같이 (150,64)에 세로로 글자를 32 간격으로 나열하는 경우는 어떻게 할까요?
(▲표시 예2)
이것과 같이 할 수 있을 겁니다.
numb=0; |
무엇이 달라졌는지 살펴봅시다.
가로 표시방법과 비슷합니다만, draw_text 함수의 글자 위치에 y축으로 변경이 되도록 설정이 되었군요.
글자의 y좌표에 변수 i값을 적용해, 세로로 표시 되도록 한 것입니다.
다음은 좀 더 많이 표시해볼까요.
아래와 같이 (100,64)를 기점으로 글자를 나열하려면 어떻게 해야할까요?
(▲표시 예3)
오~! 점점 복잡해지는군요.
복잡해보일지 모르지만, 이것 역시 반복문을 이용하면, 의외로 쉽게 표시할 수 있습니다.
가로축과 세로축이 있는 것은 반복문을 2개 사용하는 것이 좋습니다.
numb=0; |
표시 방법은 간단하죠. 이전 방법과 비슷하지만, 여기선 2개의 반복문이 각각 세로와 가로를 표시하는데
쓰입니다.
'i'의 for 문은 세로축을 담당하고, 'k'의 for 문은 가로축을 담당하는 것이지요.
먼저 처음 'i'가 0일때, 'k'반복문 통해 가로축으로 글자를 차례로 표시하고, 다음 'i'를 1씩 증가시키고,
다시 'k'반복문을 실행시킵니다. 그리고 좌표에 i와 k를 적용시키는 것이지요.
이번에는 가로축과 세로축을 변경해 표시해볼까요?
(▲표시 예4)
이번에는 세로축을 먼저 표시하는군요.
이것은 아래와 같이 할 수 있습니다.
numb=0; |
바뀐부분을 찾으실 수 있겠습니까?
이번에는 i와 k의 기능이 바뀌었습니다.
먼저 'i'가 0일때 'k'의 세로 축 순서대로 글자를 표시하고, 다음 'i'를 증가시키고 세로축을 다시 표시합니다.
반복문을 어떻게 사용하는가에 따라 표시 방법 역시 달라지죠.
강좌에서는 간단하게 몇개만 응용해보았지만, 응용하기에 따라서는 인벤토리와 같이 다양한 이벤트에
적용할 수 있을 거에요.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초]조건문 (4) | 2013.12.09 |
---|---|
[게임메이커강좌-기초]게임의 최적화 팁 (0) | 2013.11.09 |
[게임메이커강좌-기초]반복문(for,repeat,while) (6) | 2013.11.04 |
[게임메이커강좌-기초]룸의 속도 (0) | 2013.10.28 |
[게임메이커강좌-기초]게임 저장 및 불러오기 (0) | 2013.10.15 |
댓글