GAME MAKER 강좌
KAYAN
◈ 코드 실행 액션
스튜디오2에서는 GML 코드나 스크립트를 호출하여 실행할 수 있는 여러가지 액션이 있습니다.
이번 강좌에서는 GML코드를 실행할 수 있는 액션들에 대해 알아보도록 합시다.
(▲ Common 탭)
먼저 Execute Code 액션은 일반적인 GML 코딩을 할 수 있는 액션입니다.
(▲ Execute Code 액션. GML 코딩 전용 액션.)
액션은 제한적인 기능만 제공하기 때문에, 이벤트를 구현하기 힘든 경우가 있지요.
그래서 이벤트를 보다 구체적이고 세분화하여 이벤트를 구성하고자 할 때, 이 액션을 사용합니다.
코딩은 GML 언어를 사용합니다.
이 액션은 코딩만을 위한 액션이지만, 다른 액션들을 추가로 덧 붙일 수도 있습니다.
Execute Script 액션은 스크립트를 실행할 수 있는 액션입니다.
(▲ Execute Script 액션. 스크립트를 호출.)
스크립트에 사용하는 인자(Argument)가 더 필요한 경우 왼쪽 [+]을 누르면 추가할 수 있습니다.
Script : 스크립트 명
Argument : 스크립트에 사용할 수 있는 인자. 인자가 왼쪽 [+]을 눌러 입력란 추가
Target : 스크립트를 통해 반환된 값을 저장할 수 있는 변수
Function Call 액션은 게임메이커의 GML 함수를 호출할 수 있는 액션입니다.
(▲ Function Call 액션을 사용해 충돌 이벤트를 구성할 수 있음)
함수에 사용하는 인자(Argument)가 더 필요한 경우 왼쪽 [+]을 누르면 추가할 수 있습니다.
Function : 함수 명
Argument : 함수에 사용할 수 있는 인자. 인자가 왼쪽 [+]을 눌러 입력란 추가
Target : 함수를 통해 반환된 값을 저장할 수 있는 변수
Return 액션은 스크립트내에서 값을 반환하는 액션입니다.
예를 들어, 아래와 같은 이벤트가 있다면,
(▲ Return 액션. 스크립트 내에서 사용하며, 스크립트 외부에 값을 반환 시키는 역할을 함.)
이것은 현재 오브젝트가 obj_enemy와 충돌 했을 때, 상대 인스턴스 id를 스크립트 값으로 반환하게 됩니다.
Exit 액션은 이벤트를 즉시 끝내고 싶을 때 사용할 수 있는 액션입니다.
(▲ Exit 액션)
이 액션을 사용하면 액션이 사용된 이벤트 부분에서 즉시 끝내고, 이후 이벤트 내용은 실행 중지시킵니다.
예를 들어, 아래와 같이 한다면,
(▲ Exit 액션 사용)
score가 500과 같거나 클 때 이벤트를 끝내고, Exit 액션 아래의 이벤트는 실행하지 않게 되는 것입니다.
◈그 외 기능
Macro 액션은 반복되는 수식따위의 블록들이나 지정된 상수 값을 간단하게 명칭으로 대체하여 간소화할
수 있는 기능입니다.
예를 들어, 체력 게이지를 계산할 때 (hp/hp_max)*width 와 같은 수식이 있다면, 이 수식을 gauge로
매크로로 명칭하여 수식을 대신하여 사용할 수 있다는 것이지요(물론 hp, hp_max, width 변수가 있어야 함).
일단, 도움말에 의하면 Macro 액션의 사용법은 아래와 같은데,
(▲ Macro 액션)
이와 같이 하면 매크로로 등록 못하는 오류가 발생해서, 아래처럼 작성해야 정상 작동합니다.
macro : 매크로이름
value : 매크로이름+값 (예. mac01 1234 ▶ 매크로:[mac01] 값:[1234])
(▲ Macro 액션 수정)
이와 같다면, c_light_blue는 $aaaaff, c_mint 는 $b4ffaa, c_light_pink 는 $ffaaaa 를 대체하여 사용할 수
있는 것입니다.
이미 정의된 매크로의 값은 직접적으로 변경할 수 없습니다만, 수식에 변수가 사용되었을 때는 변수 값을
변경하여 매크로에 적용할 수 있습니다.
예를 들어 수식 b+c+d 를 매크로 aaa 로 정의할 때, aaa 를 직접적으로 변경할 수는 없지만, 수식에 사용된
b, c, d 의 값은 수시로 변경하여 매크로에 반영 가능합니다(단, b, c, d가 변수로써 먼저 정의되어 있어야 함).
그리고 매크로 aaa 를 호출하면 변경된 값이 적용되는 것이지요.
예를 들어, 아래와 같이 한다면,
(▲ 변수 test 값은 b+c+d = 35 )
aaa 가 b+c+d 이므로 test 값은 35가 적용이 됩니다.
만약, 이후에 b 나 c, 또는 d 값을 변경하면, aaa 에 변경된 값이 반영되어 적용되는 방식입니다.
코드로는 [#macro+변수명+수식 또는 값]으로 매크로를 정의할 수 있습니다.
//값을 합산하거나, 다른 수식을 간단하게 처리할 수도 있음
#macro aaa b+c+d
|
//체력과 같은 게이지를 표시할 경우, 수식을 gauge로 명칭하여 사용
#macro gauge (hp/hp_max)*width
|
//랜덤 색 적용
#macro col make_colour_hsv(irandom(255), 255, 255)
|
Apply to 액션은 오브젝트나 인스턴스에서 특정 액션이나 이벤트를 실행할 때 사용하는 기능입니다.
참고로 이 액션은 코드의 with문과 같습니다.
with(object){ 실행내용 }
(▲ Apply to 액션)
아래와 같이 [▼] 버튼을 누르면 적용 대상을 지정할 수 있습니다.
참고로 자신 이외에 오브젝트를 지정하면, 룸 내에 있는 그 오브젝트의 모든 인스턴스에 동일하게 적용됩니다.
(▲ 적용 대상 지정)
그리고 Apply To 액션 뒤에 해당 오브젝트에서 실행할 이벤트를 추가하면 됩니다.
(▲ Apply to 액션)
예를 들어, Score 가 500 이상일 때, 플레이어 오브젝트의 스프라이트 이미지를 변경한다면,
(▲ Apply to 사용)
이와 같이 할 수 있습니다.
'GameMaker강좌[GMS2] > DnD(드래그앤드롭)기초' 카테고리의 다른 글
[게임메이커 강좌-DnD][GMS2] DnD : 게임 저장 (0) | 2021.03.30 |
---|---|
[게임메이커 강좌-DnD][GMS2] DnD : 룸 이동 및 게임 종료 (0) | 2021.03.29 |
[게임메이커 강좌-DnD][GMS2] DnD : 랜덤값 (2) | 2021.03.27 |
[게임메이커 강좌-기초][GMS2] 변수 정의 액션 (0) | 2018.05.02 |
[게임메이커 강좌-기초][GMS2] 충돌 체크 액션 (0) | 2018.04.26 |
댓글