게임메이커/액션

덤프버전 :

파일:나무위키+상위문서.png   상위 문서: 게임메이커


1. 들어가기 전에
2. Move 탭
2.1. Move
2.2. Jump
2.3. Paths
2.4. Steps
3. Main1 탭
3.1. Objects
3.2. Sprite
3.3. Sounds
3.4. Rooms
4. Main2 탭
4.1. Timing
4.2. Info
4.3. Game
4.4. Resources
5. Control 탭
5.1. Questions
5.2. Other
5.3. Code
5.4. Variables
6. Score 탭
7. Extra 탭
7.1. Particles
7.2. CD (GM8)
7.3. Other
8. Draw 탭
8.1. Drawing
8.2. Settings
8.3. Other



1. 들어가기 전에[편집]


  • 게임메이커: 스튜디오(GMS)를 우선하여 작성하였다.
  • 액션의 이름은 액션을 갖다 놓았을 때 열리는 창 이름으로 한다. 별도의 창이 없을 경우 아이콘에 마우스를 올려놓았을 때의 툴팁 이름을 사용한다.
  • 이 문서의 모든 액션 아이콘은 게임메이커 8.x(GM8) 아이콘이다.
  • 액션별로 아이콘의 모양과 색상이 다르다.
파일:/20150614_62/nov701_1434234697411EsDnM_PNG/normal.png
일반 액션. (이벤트의 조건이 충족됐을 경우) 아무 이벤트에서나 작동한다.
파일:/20150614_65/nov701_1434234697645Wwa7e_PNG/question.png
if문 액션. 이 액션을 쓰고 바로 아래에 실행시킬 액션을 스타트/엔드 블록으로 감싸면 조건이 참일 때 작동한다. Else 액션으로 '바로 위의 조건이 거짓일 경우'도 넣을 수 있다.
파일:/20150614_222/nov701_1434234697184DkYb0_PNG/drawing.png
드로우 액션. 대부분 드로우 이벤트에서만 작동한다. 게임메이커: 스튜디오에서는 초록색 테두리로 드로우 액션을 구분할 수 있다.
  • 현재 기준(Relative)이라는 것은 그 변수에 추가로 더한다는 의미이다. 예를 들어 변수
    a
    에 1이라고 쓰고 현재 기준을 체크하면,
    a
    라는 변수에 1을 더한다. 빼려고 한다면 -1을 넣어주면 된다.
    • 맥락에 따라 '현재 기준'의 의미는 조금씩 다른데, x/y가 있는 대부분의 액션에서는 자신의 위치를 기준으로 한다는 의미이고, 기타 변수가 있는 액션에서는 대입하지 않고 가/감산한다는 의미이다.
  • if문 액션아닐 경우(NOT)이라는 것은 조건이 참이 아니라 거짓일 때 실행된다는 의미이다.
  • 거의 모든 코드에는 '적용 대상'(Applies to) 설정이 있는데, 이는 해당 액션의 효과를 누구를 대상으로 적용시킬지 설정하는 메뉴이다. 기본값은 '자신'(Self)이고, 충돌 이벤트 등에서 '기타'(Other)로 설정하면 충돌한 인스턴스에 적용된다. '대상:'(Object:)에서 특정 오브젝트를 선택하면 해당하는 모든 인스턴스에 적용된다.
  • 기울임체로 표기된 액션은 별도의 창이 뜨지 않고 액션 영역에 바로 추가된다.
  • 대응하는 코드는 '현재 기준'과 '아닐 경우'를 모두 체크하지 않았을 때, GMS 1.x 문법(GM8 액션일 경우 GM8 문법)을 기준으로 한다.
    • 4문장 이상의 긴 코드는 접기 문법을 사용하여 숨겨 두었다. 읽으려면 [ 코드 보기 ] 부분을 클릭하면 된다.
    • 코드에 따옴표("...")가 있을 경우 따옴표를 반드시 포함해야 한다. 큰따옴표를 쓰든 작은따옴표를 쓰든 양쪽이 맞으면 상관 없다.
    • GM8에서는 색상 관련 함수 이름에 color만 사용했지만, GMS부터 colour가 표준이 되었다. color로 바꾸어 써도 잘 동작한다.
  • 코드 목록은 게임메이커: 스튜디오 1.x 도움말(영문)


2. Move 탭[편집]



2.1. Move[편집]


아래 액션은 인스턴스의 속도 자체에 관여하므로 특별한 일이 없다면 한 번만 실행시켜도 계속 이동한다. 즉, 따로 멈추는 설정을 해주어야 한다는 얘기이다.

이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_move1.gif
Move Fixed
Directions (9방향 제한)
Speed
현재 기준
'Move Free' 참조
9종류(정지 상태 포함)의 방향과 속도를 설정해 특정한 방향으로 이동시킨다.
파일:external/gamemaker.info/action_move2.gif
Move Free
direction
speed
현재 기준
direction = (direction); speed = (speed);
혹은
motion_set(direction, speed)

자유롭게 방향과 속도를 설정해 이동시킨다. 위의 Move Fixed와 달리 방향을 숫자로 지정하는데, 각도기의 방향을 생각하면 된다. 0은 오른쪽, 90은 위쪽, 180은 왼쪽, 270은 아래쪽으로, 이는 게임메이커의 다른 각도에도 똑같이 적용된다.
파일:external/gamemaker.info/action_move2.gif
Move Towards
x
y
speed
현재 기준
move_towards_point(x, y, speed)

특정 좌표를 향해 이동시킨다.
파일:external/gamemaker.info/action_hspeed.gif
Speed Horizontal
hor. speed
현재 기준
hspeed = (hor. speed);

가로 속도를 지정한다.
파일:external/gamemaker.info/action_vspeed.gif
Speed Vertical
vert. speed
현재 기준
vspeed = (vert. speed);

세로 속도를 지정한다.
파일:external/gamemaker.info/action_gravity.gif
Set Gravity
direction
gravity
현재 기준
gravity = (gravity); gravity_direction = (direction);

중력을 설정한다. 방향은 270, 중력은 0.2~0.3 정도가 무난하다.
파일:external/gamemaker.info/action_hreverse.gif
Reverse Horizontal
-
hspeed = -hspeed;

가로 속도를 반전시킨다. 세로로 된 벽에 튕겨나가는 것을 생각하면 쉽다.
파일:external/gamemaker.info/action_vreverse.gif
Reverse Vertical
-
vspeed = -vspeed;

세로 속도를 반전시킨다. 가로로 된 벽에 튕겨나가는 것을 생각하면 쉽다.
파일:external/gamemaker.info/action_friction.gif
Set Friction
friction
현재 기준
friction = (friction);

마찰력을 설정한다. 속도가 서서히 떨어지게 할 수 있다. 보통 1 미만으로 설정한다.


2.2. Jump[편집]


여기서 Jump는 말 그대로 점프를 의미하는 것이 아니라 '특정 좌표로 순간이동'을 의미한다. 인스턴스의 위치에만 관여하므로 계속 이동시키려면 계속 실행시켜야 한다. 이는 아래의 Steps에도 동일하게 적용된다.

이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_jumpposition.gif
Jump to Position
x
y
현재 기준
x = (x); y = (y);

특정 좌표로 이동한다.
파일:external/gamemaker.info/action_jumpstart.gif
Jump to Start
-
x = xstart; y = ystart;

인스턴스가 처음 생성되었을 때의 좌표로 돌아간다.
파일:external/gamemaker.info/action_jumprandom.gif
Jump to Random
snap hor
snap vert
move_random(snap hor, snap vert)

룸 안에 특정한 간격대로 무작위 좌표를 찍어 이동한다.
파일:external/gamemaker.info/action_grid.gif
Align to Grid
snap hor
snap vert
move_snap(snap hor, snap vert)

인스턴스의 위치를 특정한 간격에 맞춘다.
파일:external/gamemaker.info/action_wrap.gif
Wrap Screen
direction (가로, 세로, 4방향 모두)
move_wrap(hor, vert, margin)
[1]
인스턴스가 화면 밖으로 나갔을 경우 반대쪽에서 등장시킨다. 화면 밖으로 나가는 판정은 속도를 기반으로 하므로 좌표 이동만 할 경우 적용되지 않는다.
파일:external/gamemaker.info/action_contact.gif
Move to Contact
direction
maximum
against (솔리드 오브젝트/아무 오브젝트)
move_contact_solid(direction, maximum)
혹은
move_contact_all(direction, maximum)

특정한 방향으로 솔리드 혹은 아무 객체와 충돌하기 직전의 위치까지 자동 이동시킨다. 이미 충돌했을 경우 움직이지 않는다. 최대치를 설정하면 그 이상 움직이지 않으며, -1 혹은 0(무제한. 내부적으로는 1000px로 설정됨)으로 두는 것을 권장한다.
파일:external/gamemaker.info/action_bounce.gif
Bounce
precise (정밀하지 않게/정밀하게)
against (솔리드 오브젝트/아무 오브젝트)
move_bounce_solid(adv)
혹은
move_bounce_all(adv)
[2]
솔리드 혹은 아무 객체와 충돌 시 튕기게 한다.


2.3. Paths[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_path.gif
Set Path
path
speed
at end
relative(상대적 위치/절대적 위치)
path_start(path, speed, endaction, absolute)
[3]
패스를 설정한다. 종료 후의 행동(at end)을 선택할 수 있는데 종류는 정지, 처음부터 다시, 여기서 다시, 역재생의 4가지가 있다. relative는 다른 액션의 현재 기준과 조금 다른데, 패스 에디터에서 정의한 좌표에서 시작할지 현재 인스턴스의 좌표에서 시작할지를 결정한다.
파일:external/gamemaker.info/action_pathend.gif
End Path
-
path_end()

진행 중인 패스를 강제로 끝낸다.
파일:external/gamemaker.info/action_pathposition.gif
Path Position
position (0부터 1까지)
현재 기준
path_position = (position);

패스의 진행도를 변경한다. 예를 들어 0.5로 설정하면 패스의 정확히 중간부터 진행한다.
파일:external/gamemaker.info/action_pathspeed.gif
Path Speed
speed
현재 기준
path_speed = (speed);

패스의 속도를 재설정한다. 0을 입력하면 일시정지시킬 수 있으며, 음수를 입력하면 역재생할 수 있다.


2.4. Steps[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_steplinear.gif
Step Towards
x
y
speed
stop at (솔리드 오브젝트/아무 오브젝트)
현재 기준
mp_linear_step(x, y, speed, checkall)
[4]
특정한 좌표를 향해 특정한 속도대로 가다가 오브젝트와 충돌하면 멈춘다.
파일:external/gamemaker.info/action_steppotential.gif
Step Avoiding
x
y
speed
avoid (솔리드 오브젝트/아무 오브젝트)
현재 기준
mp_potential_step(x, y, speed, checkall)

솔리드 혹은 아무 객체를 피해 특정한 좌표로 이동한다. 스타크래프트처럼 길 찾을 때 쓰는 거라고 생각하면 편하다.


3. Main1 탭[편집]



3.1. Objects[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_create.gif
Create Instance
object
x
y
현재 기준
instance_create(x, y, object)

특정 좌표에 인스턴스를 생성한다. 현재 기준에 체크하면 이 액션을 실행하는 인스턴스의 위치에서 생성된다.
파일:external/gamemaker.info/action_createspeed.gif
Create Moving
object
x
y
speed
direction
현재 기준
with(instance_create(x, y, object)) {speed = (speed); direction = (direction);}

특정한 좌표에 특정한 방향과 속도로 움직이는 인스턴스를 생성한다.
파일:external/gamemaker.info/action_createrandom.gif
Create Random
object 1~4
x
y
현재 기준
instance_create(x, y, choose(object 1, object 2, ...))

특정한 좌표에 오브젝트 1~4 중 하나를 무작위로 생성한다.
파일:external/gamemaker.info/action_change.gif
Change Instance
change into
perform events (아니요/예)
instance_change(change into, perform events)

인스턴스를 다른 오브젝트의 인스턴스로 바꾼다. perform events를 '예'로 설정하면 기존 오브젝트의 Destroy 이벤트와 새 오브젝트의 Create 이벤트가 실행된다. 물리엔진이 켜져 있을 경우 기존 인스턴스의 물리적 성질은 새 인스턴스로 전달되지 않는다(GMS).
파일:external/gamemaker.info/action_destroy.gif
Instance Destroy
-
instance_destroy()
[5]
자기 자신을 제거한다. 다른 인스턴스를 지우려면 위의 Applies to에서 Self(기본값, 자기 자신), Other(충돌 이벤트에서, 자신과 충돌한 인스턴스), Object(특정한 오브젝트) 중 하나를 선택해야 한다.
파일:external/gamemaker.info/action_killposition.gif
Destroy at Position
x
y
현재 기준
position_destroy(x, y)

특정한 좌표 위에 있는 인스턴스를 모두 제거한다. 좌표 판정은 마스크를 기준으로 이루어지므로 판정박스가 없는 인스턴스는 지워지지 않는다.


3.2. Sprite[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_sprite.gif
Change Sprite
sprite
subimage
speed
sprite_index = (sprite); image_index = (subimage); image_speed = (speed);
[6]
인스턴스의 스프라이트를 다른 스프라이트로 바꾼다. 서브이미지를 -1로 설정하면 애니메이션을 나타내며, 그렇지 않으면 특정한 서브이미지만 표시된다. 속도는 애니메이션의 속도를 의미하며, 기본값은 1이다.
파일:external/gamemaker.info/action_spritetransform.gif
Transform Sprite
xscale
yscale
angle
mirror (뒤집기 없음, 가로, 세로, 가로세로)
image_xscale = (xscale); image_yscale = (yscale); image_angle = (angle);
[7]
스프라이트를 늘리거나 돌린다. 각도는 0이 기본값이고, 시계 반대 방향으로 회전한다. x/y 비율에 음수를 넣으면 스프라이트를 뒤집을 수 있지만, x/y 계산이 꼬일 수 있다.
파일:external/gamemaker.info/action_spritecolor.gif
Color Sprite
color
alpha
image_blend = (color); image_alpha = (alpha);
[색상값]
스프라이트에 색상을 입힌다. 내부적으로는 곱연산으로 처리되며, 원래 색으로 돌리려면 흰색으로 설정하면 된다.


3.3. Sounds[편집]


GM8까지 사용하던 레거시 오디오 엔진과 GMS에 추가된 신규 오디오 엔진이 있다. GMS에서도 Global Game Settings에서 레거시 엔진으로 바꿀 수 있다.

이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_sound.gif
Play Sound
sound
loop
audio_play_sound(sound, priority, loop)
[8][레거시1]
사운드를 재생한다.
파일:external/gamemaker.info/action_soundend.gif
Stop Sound
sound
audio_stop_sound(sound)
[레거시2]
해당 사운드를 정지한다.
파일:external/gamemaker.info/action_ifsound.gif
Check Sound
sound
아닐 경우
audio_is_playing(sound)
[레거시3]
해당 사운드가 실행 중인지 확인한다. 사운드가 실제 스피커로 재생 중인지가 판정 기준이기 때문에 게임 내에서 사운드를 껐더라도 잠시 동안 켜진 것처럼 실행될 수 있다.


3.4. Rooms[편집]


게임메이커: 스튜디오에서는 룸 전환 효과를 사용할 수 없다. 전환 효과는 하나씩 쓰면서 마음에 드는 것으로 정하면 된다.

이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_roomprevious.gif
Previous Room
transition (GM8)
room_goto_previous()

이전 룸으로 이동한다.
파일:external/gamemaker.info/action_roomnext.gif
Next Room
transition (GM8)
room_goto_next()

다음 룸으로 이동한다.
파일:external/gamemaker.info/action_roomcurrent.gif
Restart Room
transition (GM8)
room_restart()

해당 룸을 재시작한다.
파일:external/gamemaker.info/action_roomother.gif
Different Room
new room
transition (GM8)
room_goto(new room)

특정한 룸으로 이동한다.
파일:external/gamemaker.info/action_ifroomprevious.gif
Check Previous
-
room_exists(room_previous(room))
혹은
room != room_first

이전 룸이 있는지 확인한다. 이전 룸이 없을 때 Previous Room 액션을 쓰면 오류가 나기 때문에 꼭 필요하다.
파일:external/gamemaker.info/action_ifroomnext.gif
Check Next
-
room_exists(room_next(room))
혹은
room != room_last

다음 룸이 있는지 확인한다.


4. Main2 탭[편집]



4.1. Timing[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_alarm.gif
Set Alarm
number of steps
in alarm no
현재 기준
alarm[in alarm no] = (number of steps);

특정한 알람을 특정한 시간 뒤에 실행한다. 1초의 단위가 룸의 스텝 설정에 따라 다르며, 기본값인 30스텝으로 설정했을 경우 30이 1초가 된다.
파일:external/gamemaker.info/action_sleep.gif
Sleep (GM8)
milliseconds
redraw
sleep(milliseconds)
[* GMS에서 같은 동작을 실행하려면 다음과 같은 코드를 써야 한다.
current_time
대신 마이크로초(100만 마이크로초가 1초) 단위를 쓰는
get_timer()
함수를 쓸 수도 있다.
{{{var t = current_time;
while(current_time < t + (milliseconds)) {} }}}]
특정한 시간 동안 게임을 강제로 멈춘다. 프레임 갱신(redraw)에 체크했을 경우 멈추기 직전에 프레임을 한 번 갱신하고 멈춘다.
파일:external/gamemaker.info/action_timeline.gif
Set Time Line
time line
position
start (바로 시작/설정만 하기)
loop (반복/1회)
[ 코드 보기 ]
timeline_index = (time line); timeline_position = (position); timeline_loop = (loop); timeline_running = (start);


타임라인을 설정한다. 위치는 해당 타임라인의 몇 스텝 위치부터 시작할지를 결정한다.
파일:external/gamemaker.info/action_timelineset.gif
Time Line Position
position
현재 기준
timeline_position = (position);

타임라인의 진행도를 변경한다.
파일:external/gamemaker.info/action_timelinespeed.gif
Time Line Speed
speed
현재 기준
timeline_speed = (speed);

타임라인의 실행 속도를 변경한다. 기본값은 1(배속)이다.
파일:external/gamemaker.info/action_timelinestart.gif
Start Time Line
-
timeline_running = true;

설정된 타임라인을 시작한다.
파일:external/gamemaker.info/action_timelinepause.gif
Pause Time Line
-
timeline_running = false;

타임라인을 일시정지한다.
파일:external/gamemaker.info/action_timelinestop.gif
Stop Time Line
-
timeline_running = false; timeline_position = 0;

타임라인을 종료한다.


4.2. Info[편집]


게임메이커 8.x에는 게임 창 등에 파일이나 웹사이트를 띄우는 '스플래시' 계열 액션(Splash로 시작하는 모든 액션과 Show Info)이 있다. 스플래시 창에 파일이 필요한 액션의 경우 해당 파일을 게임과 같이 배포하거나 파일 포함 기능으로 끼워넣어야 한다.

이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_info.gif
Display Message
message
show_message("(message)")
[비동기]
새 창으로 메시지를 띄운다.
Open URL (GMS)
URL
url_open("(URL)")

브라우저로 웹페이지를 띄운다.
Show Info (GM8)
-
show_info()

게임 창에 게임 설명을 띄운다. 게임 설명은 좌측 메뉴의 'Game Information'에서 작성할 수 있다.
Splash Text (GM8)
file name
splash_show_text("(file name)", delay)
[9]
게임 창에 텍스트 파일(.txt/.rtf)의 내용을 띄운다. 스크롤이 되지 않으므로 내용이 게임 창 안에 들어가야 한다.
Splash Image (GM8)
file name
splash_show_image("(file name)", delay)

게임 창에 이미지(.bmp, .jpg, .tif, .wmf 등, 움직이는 .gif는 미지원)를 띄운다.
Splash Webpage (GM8)
webpage
open in (게임 창/브라우저)
splash_show_web("(webpage)", delay)
[10]
게임 창이나 브라우저로 웹페이지를 띄운다. 2019년 현재 게임 창의 경우 대부분의 사이트에서 레이아웃이 깨지고 스크립트 오류를 남발하며, 브라우저의 경우 아예 작동하지 않는다(...).
Splash Video (GM8)
file name
loop (반복/1회)
splash_show_video("(file name)", loop)

게임 창에 동영상(.avi, .mpg, .wmv 등, 일부 코덱 미지원)을 띄운다.
Splash Settings (GM8)
caption
open in (게임 창/새 창/전체화면)
close button (보이기/숨기기)
on escape
on mouse
[ 코드 보기 ]
splash_set_caption(caption); splash_set_main(main); splash_set_fullscreen(full); splash_set_close_button(close button); splash_set_stop_key(on escape); splash_set_stop_mouse(on mouse);
}}}[*
splash_set_main
함수의 인자는 게임 창으로 띄울 때 true, 새 창이나 전체화면으로 띄울 때 false로 설정한다. {{{splash_set_fullscreen
함수의 인자는 전체화면으로 띄울 때 true, 그렇지 않을 때 false로 설정한다.]
스플래시 화면을 어떻게 출력할지 설정한다. close button이 켜져 있으면 게임 창에 원래의 닫기 버튼 외에도 스플래시 창을 닫는 버튼이 생기며, on escape와 on mouse는 각각 Esc 키를 누르거나 마우스 클릭을 했을 때 창을 닫을지의 여부이다.


4.3. Game[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_gamerestart.gif
Restart Game
-
game_restart()

게임을 재시작한다.
파일:external/gamemaker.info/action_gameend.gif
End Game
-
game_end()

게임을 종료한다. 안드로이드, iOS, HTML5에서는 작동하지 않는다(GMS). 1.4.1788 업데이트 기록에서는 안드로이드와 iOS의 경우 메모리 손상을 일으키는 버그 때문이라고 한다.
파일:external/gamemaker.info/action_gamesave.gif
Save Game
file name
game_save("(file name)")
[파일시스템]
게임을 저장한다. 버전 간(게임메이커 자체든, 그걸로 만든 게임이든) 호환성이 매우 떨어지고, 일부 코드로 추가할 수 있는 데이터가 저장되지 않는 등 여러 문제 때문에 웬만하면 코드를 배워서 직접 세이브 파일을 만드는 것을 추천한다.
파일:external/gamemaker.info/action_gameload.gif
Load Game
file name
game_load("(file name)")
[파일시스템]
Save Game으로 저장한 게임을 불러온다.


4.4. Resources[편집]


이름
인자
대응 코드
설명
파일:external/gamemaker.info/action_resourcesprite.gif
Replace Sprite
sprite
filename
images

특정 스프라이트를 다른 이미지 파일(.png, .jpg, .tif 등, 움직이는 .gif도 지원)로 갈아치운다. 텍스처 팩 등을 구현할 때 유용하다.
파일:external/gamemaker.info/action_resourcesound.gif
Replace Sound (GM8)
sound
filename
sound_replace(sound, "(filename)", kind, preload)
[11]
특정 사운드를 다른 사운드 파일(.wav, .mid, .mp3)로 갈아치운다. GMS에서는 함수 자체는 남아있지만 레거시 엔진 전용이며, 비권장(deprecated)이 되었다.
파일:external/gamemaker.info/action_resourcebackground.gif
Replace Background
background
filename

특정 백그라운드를 다른 이미지 파일(.png, .jpg, .tif, .gif 등)로 갈아치운다.


5. Control 탭[편집]



5.1. Questions[편집]


이름
인자
대응 코드
설명
Check Empty
x
y
objects (솔리드 오브젝트/아무 오브젝트)
현재 기준
아닐 경우
place_free(x, y)
혹은
place_empty(x, y)
[12]
이 인스턴스가 특정한 좌표에 있다고 가정하고, 다른 인스턴스와 충돌하지 않는지 확인할 수 있다. 충돌하는지 확인하려면 '아닐 경우'에 체크하면 된다. 그냥 Check Collision 쓰면 된다.
Check Collision
x
y
objects (솔리드 오브젝트/아무 오브젝트)
현재 기준
아닐 경우
!place_free(x, y)
혹은
!place_empty(x, y)

이 인스턴스가 특정한 좌표에 있다고 가정하고, 다른 인스턴스와 충돌하는지 확인한다. 역시 '아닐 경우'에 체크하면 충돌하지 않는지 확인할 수 있다.
Check Object
object
x
y
현재 기준
아닐 경우
place_meeting(x, y, object)

특정 위치에 특정한 인스턴스가 있는지 확인한다. 엄밀히 말하자면, 이 인스턴스가 특정한 좌표에 있다고 가정하고, 특정한 인스턴스와 충돌하는지 확인한다.
Test Instance Count
object
number
operation (같을 때/미만/초과)
아닐 경우
instance_number(object) == (number)
[연산자]
특정한 오브젝트가 룸 안에 몇 개 있는지 확인한다.[이상이하]
Test Chance
sides
아닐 경우
random(1) < 1 / (sides)

n번 중 1번의 확률로 그 다음 액션을 실행한다. 예를 들어 6을 입력하면 1/6의 확률이 된다.
Check Question
question
아닐 경우
show_question("(question)")
[비동기]
새 창에 메세지를 띄우고 Yes/No 버튼을 만들어, 플레이어가 Yes를 눌렀는지 확인한다.
Test Expression
expression
아닐 경우
if(expression) (실행할 코드);
[13]
특정한 수식이 참인지 확인한다. 즉 if문. GML의 문법을 사용한다. C언어에서 0이 아닌 것을 모두 참으로 간주하는 것과 달리, 게임메이커에서는 엔진의 특성상 0과 음수를 모두 거짓으로 간주한다.
Check Mouse
button (누르지 않음/왼쪽/오른쪽/마우스 휠)
아닐 경우
mouse_check_button(button)
[14]
특정한 마우스 버튼이 눌려 있는지 확인한다. 눌린 순간뿐만이 아니라 눌려있는 동안에는 계속 참으로 판정한다.
Check Grid
snap hor
snap vert
아닐 경우
place_snapped(snap hor, snap vert)

가로세로 격자가 맞는지 확인한다. Move 탭의 Jump to Random/Align to Grid를 생각하면 쉽다.


5.2. Other[편집]


이름
인자
대응 코드
설명
Start Block
-
{

if문 액션이 참일 때 혹은 일부 일반 액션 아래에 실행할 액션을 묶는다. 한마디로 코드에서의
{
. 액션 1개만 실행할 때는 생략할 수 있다. 스타트 블록과 엔드 블록 사이 액션은 한 칸씩 들여쓰기가 된다.
Else
-
else

if문 액션에서 참을 반환하지 않을 경우를 작성할 때 쓴다. 엔드 블록 아래에 넣으면 된다.
Exit Event
-
exit;

해당 이벤트를 강제 종료한다. 이 액션이 실행되었을 경우 이 아래의 액션은 실행되지 않는다.
End Block
-
}

스타트 블록과 짝을 이룬다. 코드에서의
}
와 같은 역할을 한다. 스타트 블록을 생략했다면 이 역시 생략해야 한다.
Repeat
times
repeat(times) (실행할 코드);

특정한 횟수만큼 반복한다. 이 액션은 if문 액션이 아니지만 예외적으로 스타트 블록과 엔드 블록으로 묶을 수 있다.
Call Parant Event
-
event_inherited()

부모 오브젝트의 동일한 이벤트를 상속받는다.[15]


5.3. Code[편집]


이름
인자
대응 코드
설명
Execute Code
-
-
GML 코드 에디터를 연다. 코드를 배우면 이것밖에 안 쓰게 된다.
Execute Script
script
argument0~4[16]
script_execute(script, argument0, argument1, ...)
[17]
스크립트를
script(argument0, argument1, ...)
과 같이 호출한다. GMS에서는 Edit 버튼이 생겨서 스크립트를 바로 편집할 수 있게 되었다. 코드로 불러오자 그게 더 쉽다.

액션에서는 불가능하지만, 코드로 들어가면
script_execute(choose(scr_Up, scr_Down, scr_Left, scr_Right), irandom(5));
(GMS 도움말 예제)와 같이 스크립트 이름만 따서 쓸 수 있다는 데서 진가가 드러난다. 그 대신 내장 함수를 넣을 수는 없다.
Comment
comment
//comment
혹은
/*comment*/
[18]
주석을 작성한다. 대다수 프로그래밍 언어의
//주석
, 나무위키에서의
##주석
과 같다.


5.4. Variables[편집]


이름
인자
대응 코드
설명
Set Variable
variable
value
현재 기준
(variable) = (value);

변수를 선언하거나 값을 대입한다. 게임메이커에서는 일반적인 변수의 선언과 대입을 따로 구분하지 않으므로 새 변수를 만들려고 특별한 설정을 할 필요는 없고 똑같이 이 액션을 쓰면 된다.
Test Variable
variable
value
operation (같을 때/미만/초과)
아닐 경우
(variable) == (value)
[연산자]
변수의 값과 주어진 값을 비교한다.[이상이하]
Draw Variable
variable
x
y
현재 기준
draw_text(x, y, variable)

특정한 변수 혹은 수식의 계산 결과를 특정한 좌표에 출력한다.


6. Score 탭[편집]



6.1. Score[편집]


게임 내 점수는 전역 변수
score
에 저장된다.

이름
인자
대응 코드
설명
Set Score
new score
현재 기준
score = (new score);

게임 내 점수를 설정한다. 점수를 추가로 얻으려면 현재 기준에 체크하면 된다.
Test Score
value
operation (같을 때/미만/초과)
아닐 경우
score == (value)
[연산자]
현재 점수와 주어진 값을 비교한다.[이상이하]
Draw Score
x
y
caption
현재 기준
draw_text(x, y, "(caption)" + string(score))
[형변환]
현재 점수를 특정한 좌표에 출력한다.
Show Highscore (GM8)
background
border (보이기/생략하기)
new color
other color
font
[ 코드 보기 ]
highscore_set_background(background); highscore_set_border(border); highscore_set_colors(c_white, new color, other color); highscore_set_font(글꼴 이름, 크기, style); highscore_show(score);
}}}[*
score
대신 다른 값을 넣으면 하이스코어에 다른 점수가 등록된다. 글꼴 파트의 {{{style
의 경우 0은 보통, 1은 굵게, 2는 기울임체, 3은 굵은 기울임체이다.]
하이스코어를 10위까지 표시한다. 플레이어가 순위권에 들었을 경우 이름을 적을 수 있다. 실행할 때마다 자동으로 현재 점수가 등록되므로 이를 원치 않을 경우 점수를 0으로 돌려놓아야 한다. 여기서 사용하는 글꼴은 게임메이커 리소스가 아닌 컴퓨터에 설치된 글꼴이다.

GMS에서는 하이스코어를 표시하는 함수가 사라졌지만, 하이스코어 시스템 자체는 여전히 존재한다. 다만 이 과정에서 하이스코어 등록에 관여하는 액션이 사라졌으므로 이 시스템을 이용하려면 코드를 직접 짜야 한다.
Clear Highscore
-
highscore_clear()

하이스코어 목록을 초기화한다.


6.2. Lives[편집]


남은 생명은 전역 변수
lives
에 저장된다.

이름
인자
대응 코드
설명
Set Lives
new lives
현재 기준
lives = (new lives);

남은 생명을 설정한다. 1UP은 1 + 현재 기준, 캐릭터 사망은 -1 + 현재 기준의 조합을 사용하자.
Test Lives
value
operation (같을 때/미만/초과)
아닐 경우
lives == (value)
[연산자]
현재 남은 생명과 주어진 값을 비교한다.[이상이하]
Draw Lives
x
y
caption
현재 기준
draw_text(x, y, "(caption)" + string(lives))
[형변환]
현재 남은 생명을 숫자의 형태로 특정한 좌표에 출력한다.
Draw Life Images
x
y
image
현재 기준

현재 남은 생명을 스프라이트의 형태로 출력한다. 예를 들어 남은 생명이 3일 경우 ♥♥♥와 같이 출력된다.


6.3. Health[편집]


남은 체력은 전역 변수
health
에 저장된다. 최대 체력은 무조건 100으로 고정된다.

이름
인자
대응 코드
설명
Set Health
value
현재 기준
health = (value);

남은 체력을 설정한다. 피격 판정은 -(피해량) + 현재 기준에 체크하면 된다.
Test Health
value
operation (같을 때/미만/초과)
아닐 경우
health == (value)
[연산자]
현재 남은 체력과 주어진 값을 비교한다.[이상이하]
Draw Health
x1
y1
x2
y2
back color
bar color
현재 기준

남은 체력을 체력 바의 형태로 출력한다.
back color(배경색)는 투명을 포함한 17종류의 단색 중에서, bar color(채우기 색)는 초록색-빨간색, 흰색-검은색과 16종류의 단색 중에서 골라야 한다. 사용자 지정 색 기능은 없다.
Score Caption (GM8)
show score (보이기/숨기기)
score caption
show lives (보이기/숨기기)
lives caption
show health (보이기/숨기기)
health caption
[ 코드 보기 ]
show_score = (show score); caption_score = "(score caption)"; show_lives = (show lives); caption_lives = "(lives caption)"; show_health = (show health); caption_health = "(health caption)";


현재 점수, 생명, 체력을 창 제목에 표시할지를 결정하고, 표시할 경우 그 앞에 달릴 제목을 결정한다.


7. Extra 탭[편집]



7.1. Particles[편집]


게임메이커의 파티클 체계는 크게 시스템, 타입, 이미터의 세 종류가 있다. 세 종류 모두 코드를 사용하면 개수 제한 없이 여러 개를 만들 수 있으며, 각각 고유번호를 부여받는다.
  • 파티클 시스템(Particle System): 아래의 파티클 타입과 이미터를 담는 틀로 생각하면 된다. 액션으로는 1개만 만들 수 있다.
  • 파티클 타입(Particle Type): 파티클이 눈에 보이는 모양, 즉 그래픽을 정의한 것. 모양, 방향, 속도, 중력, 색상, 투명도, 수명 등 여러 속성을 부여할 수 있지만 파티클 하나하나를 통제할 수는 없다. 액션으로는 16개만 만들 수 있다.
엔진에 기본으로 정의된 파티클 모양은 14종류[19]가 있으며, 이외에도 직접 만든 스프라이트를 적용할 수 있다.
  • 파티클 이미터(Particle Emitter): 파티클을 화면에 생성하는 생성기와 같은 것. 코드를 사용할 경우 이미터가 없어도 파티클을 소환할 수 있다. 액션으로는 8개만 만들 수 있다.
  • 파티클: 실제로 파티클 이미터에서 생성되는 시각적 효과. 게임메이커 도움말에서는 파티클과 파티클 이미터를 섞어 쓰는 경향이 있지만, 해당 문서에서는 두 단어를 엄격히 구분한다.

GM8에는 이외에도 파티클 어트랙터, 체인저, 디플렉터, 디스트로이어가 있었으나 성능 문제로 인하여 삭제되었다.

파티클에 대한 더 자세한 설명은 도움말의 해당 항목을 확인하면 된다.

아래 코드에서는
sys
에 파티클 시스템,
type
에 파티클 타입,
emit
에 파티클 이미터의 고유번호를 저장하는 것으로 가정한다.

이름
인자
대응 코드
설명
Create Part System
depth
sys = part_system_create(); part_system_depth(sys, depth);

파티클 시스템을 만든다. depth 값은 오브젝트에 부여하는 깊이 값처럼 쓰면 된다.
Destroy Part System
-
part_system_destroy(sys)

생성된 파티클 시스템을 없앤다.
Clear Part System
-
part_particles_clear(sys)

파티클 시스템 안의 모든 파티클을 없앤다. 파티클 시스템 자체와 그 안에 정의된 파티클 타입, 이미터는 사라지지 않는다.
Create Particle[20]
type id (0~15)
shape
sprite
min size
max size
size increment
[ 코드 보기 ]
type = part_type_create(); part_type_shape(type, shape); /*또는 part_type_sprite(type, sprite, animate, stretch, random);*/ part_type_size(type, min size, max size, size increment, size_wiggle);
}}}[1][*wiggle {{{*_wiggle
인자에 0이 아닌 숫자를 지정하면 매 스텝마다 그 값이 무작위로 그만큼 커지거나 작아진다.]
생성 + 모양/크기 속성. 지정된 타입으로 특정한 모양과 크기의 파티클 타입을 생성한다. shape와 sprite는 둘 중 하나만 설정해도 된다.
해당 타입의 파티클이 처음 생성될 때는 min size와 max size 사이의 크기로 생성되며, 매 스텝마다 size increment만큼 커진다.
Particle Color
type id
Color Mix (혼합/변화)[21]
color1
color2
start alpha
end alpha
part_type_colour_mix(type, color1, color2); /*혹은 part_type_colour2(type, color1, color2);*/ part_type_alpha2(type, start alpha, end alpha);
[색상값][22]
색상 속성. 특정한 타입의 파티클에 어떤 색을 입힐 것인지를 결정한다. Color Mix를 mixed(혼합)으로 설정하면 두 색상을 무작위 비율로 섞어서 단색으로 사용하고, changing(변화)로 설정하면 색 1에서 시작해서 색 2로 바뀌어 간다.
Particle Life
type id
min life
max life
part_type_life(type, min life, max life)

수명 속성. 특정한 타입의 파티클이 얼마 후 사라질 것인지를 결정한다.
Particle Speed
type Id
min speed
max speed
min dir
max dir
friction
part_type_speed(type, min speed, max speed, speed_incr, speed_wiggle); part_type_direction(type, min dir, max dir, dir_incr, dir_wiggle);
[incr][wiggle][23]
속도/마찰력 속성. 특정한 타입의 파티클이 어느 정도의 속도와 방향으로 운동할지, 마찰력이 얼마나 작용할지를 결정한다.
Particle Gravity
type id
amount
direction
part_type_gravity(type, amount, direction)

중력 속성. 특정한 타입의 파티클에 중력이 어느 방향으로 얼마나 작용할지를 결정한다.
Particle Secondary
type id
step type
step count
death type
death count
part_type_step(type, step count, step type); part_type_death(type, death count, death type);

파티클이 떨어지는 동안, 또는 없어지는 순간에 어떤 파티클을 얼마나 떨굴지를 결정한다. 자신과 같은 타입의 파티클을 떨구도록 설정하면 일종의 무한 루프에 걸려 게임이 튕길 수 있으므로 절대 이렇게 설정하면 안 된다.
* 지속 생성(step): 파티클이 없어질 때까지 지속적으로 파티클을 떨군다. step count에 양수를 쓰면 1스텝에 n개, 음수를 쓰면 매 스텝마다 n분의 1의 확률로 1개씩 떨어진다.
* 순간 생성(death): 파티클이 없어지는 순간에 순간적으로 파티클을 떨군다.
Create Emitter
emitter id (0~7)
shape (사각형/타원/다이아몬드/직선)
xmin
xmax
ymin
ymax
emit = part_emitter_create(sys); part_emitter_region(sys, emit, xmin, xmax, ymin, ymax, shape, distribution);
[24]
특정한 영역에 파티클을 소환하는 파티클 이미터를 생성한다.
Destroy Emitter
emitter id
part_emitter_destroy(sys, emit)

만들어진 파티클 이미터를 제거한다.
Burst from Emitter
emitter id
particle type
number
part_emitter_burst(sys, emit, particle type, number)

파티클 이미터에서 특정한 타입과 개수의 파티클을 순간적으로 생성한다.
Stream from Emitter
emitter id
particle type
number
part_emitter_stream(sys, emit, particle type, number)

파티클 이미터에서 특정한 타입과 개수의 파티클을 지속적으로 생성한다. 위의 Particle Secondary처럼 음수를 쓸 수 있다. 특별한 일이 없는 한 한 번만 써주면 된다.


7.2. CD (GM8)[편집]


컴퓨터에 넣은 CD를 인식하고 재생하는 액션이다. GMS에서는 지원이 중단되었다.

코드로 사용할 때는 반드시
cd_init()
을 먼저 사용해야 한다. CD를 바꿔 끼웠을 때도 한 번씩 사용해야 한다.

이름
인자
대응 코드
설명
Play CD (GM8)
start track
final track
cd_play(start track, final track)

CD를 재생한다.
Stop CD (GM8)
-
cd_stop()

재생 중이던 CD를 정지한다.
Pause CD (GM8)
-
cd_pause()

재생 중이던 CD를 일시정지한다.
Resume CD (GM8)
-
cd_resume()

일시정지한 CD를 다시 재생한다.
Check CD (GM8)
-
cd_present()

CD를 넣었는지 확인한다.
Check CD Playing (GM8)
-
cd_playing()

CD가 재생 중인지 확인한다.


7.3. Other[편집]


이름
인자
대응 코드
설명
Set Cursor
sprite
cursor (숨기기/보이기)
cursor_sprite = (sprite); window_set_cursor = (cursor);
[25]
게임 내에서 마우스 커서를 특정한 스프라이트로 변경한다. 기존의 마우스 커서를 숨기거나 겹쳐 보이게 할 수 있다.


8. Draw 탭[편집]



8.1. Drawing[편집]


이름
인자
대응 코드
설명
Draw Self (GMS)
-
draw_self()

자기 자신을 출력한다. Draw 이벤트를 추가하면 자기 자신이 표시되지 않기 때문에 이 액션을 넣어 주어야 한다.
Draw Sprite
sprite
x
y
subimage
현재 기준
draw_sprite(sprite, subimage, x, y)

특정한 스프라이트를 출력한다. 서브이미지에 -1을 넣으면 애니메이션을 나타낸다.[26]
Draw Background
background
x
y
tiled (끄기/켜기)
현재 기준
draw_background(background, x, y)
혹은
draw_background_tiled(background, x, y)

특정한 백그라운드를 출력한다. tiled(바둑판식 배열)에 체크하면 백그라운드가 가로, 세로로 반복되어 화면을 가득 채운다.
Draw Text
text
x
y
현재 기준
draw_text(x, y, text)

특정한 문자열을 출력한다.
Draw Scaled Text
text
x
y
xscale
yscale
angle
현재 기준
draw_text_transformed(x, y, text, xscale, yscale, angle)

특정한 문자열을 가로, 세로로 늘리거나 돌려서 출력한다.
Draw Rectangle
x1
y1
x2
y2
filled (채우기/테두리)
현재 기준
draw_rectangle(x1, y1, x2, y2, outline)
[outline]
사각형을 출력한다.
Horizontal Gradient
x1
y1
x2
y2
color1
color2
현재 기준
draw_rectangle_colour(x1, y1, x2, y2, color1, color2, color1, color2, false)
[색상값]
가로로 그라디언트가 적용된 사각형을 출력한다.
Vertical Gradient
x1
y1
x2
y2
color1
color2
현재 기준
draw_rectangle_colour(x1, y1, x2, y2, color1, color1, color2, color2, false)
[색상값]
세로로 그라디언트가 적용된 사각형을 출력한다.
Draw Ellipse
x1
y1
x2
y2
filled (채우기/테두리)
현재 기준
draw_ellipse(x1, y1, x2, y2, outline
[outline]
타원형을 출력한다. 너비와 높이가 같으면 원형이 된다.
Gradient Ellipse
x1
y1
x2
y2
color1
color2
현재 기준
draw_ellipse_colour(x1, y1, x2, y2, color1, color2, false)
[색상값]
그라디언트가 적용된 타원형을 출력한다. 안쪽 색이 color1, 바깥쪽 색이 color2이다.
Draw Line
x1
y1
x2
y2
현재 기준
draw_line(x1, y1, x2, y2)

(x1, y1)과 (x2, y2)를 잇는 선분을 출력한다.
Draw Arrow
x1
y1
x2
y2
tip size
현재 기준
draw_arrow(x1, y1, x2, y2, tip size)

(x1, y1)에서 (x2, y2)로 뻗어나가는 화살표를 출력한다.


8.2. Settings[편집]


대부분의 드로우 액션은 이 탭에서 설정한 색상과 글꼴의 영향을 받는다. Draw 이벤트가 아닌 다른 곳에서도 사용할 수 있다.

이름
인자
대응 코드
설명
Set Color
color
draw_set_colour(color)
[색상값]
그리기에 사용할 색상을 설정한다.
Set Font
font
align (왼쪽/가운데/오른쪽)
draw_set_font(font); draw_set_halign(align);
[27]
텍스트 출력에 사용할 글꼴과 가로 정렬을 설정한다. 게임메이커 리소스를 사용한다.
Set Full Screen
action (전환/창 모드/전체화면)
window_set_fullscreen(full)
[28]
게임을 전체화면 모드나 창 모드로 바꾼다.


8.3. Other[편집]


이름
인자
대응 코드
설명
Take Snapshot
filename
screen_save("(filename)")
[파일시스템]
게임의 스크린샷을 찍어서 특정한 파일명으로 저장한다.
Create Effect
type
x
y
size (소/중/대)
color
where (오브젝트 아래/위)
현재 기준
effect_create_below(type, x, y, size, color)
혹은
effect_create_above(type, x, y, size, color)
[29]
게임 상에 특수효과를 생성한다. where의 '오브젝트 아래'와 '오브젝트 위'는 실제 작동할 때 각각 깊이 값 100000, -100000을 의미한다.
Rain/Snow 효과가 특이한데, 좌표값에 관계 없이 화면 전체를 채우며 size는 파티클 각각의 크기가 아니라 내리는 비/눈의 양을 결정한다. 비/눈이 계속 내리게 하려면 매 스텝마다 실행해야 한다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-11 13:48:58에 나무위키 게임메이커/액션 문서에서 가져왔습니다.

[1] 각각 가로/세로로 적용시키려면
hor
,
vert
를 true로, 아니면 false로 맞춘다.
margin
은 인스턴스의 중심이 방의 경계에서 얼마나 떨어져 있어야 반대쪽으로 이동시킬지를 결정하며, 기본값은 0이다.
[2] 튕김 처리를 정밀하게 하려면
adv
를 true로, 대충 하려면 false로 맞춘다.
[3]
endaction
이 가질 수 있는 값은 액션에서의 순서대로
path_action_stop
,
path_action_restart
,
path_action_continue
,
path_action_reverse
이다.
absolute
절대적 위치에서 시작할 때 true로 설정하는 것에 주의.
[4]
checkall
은 모든 객체를 판정하려면 true, 솔리드 객체만 판정하려면 false로 맞춘다.
[5] 다른 인스턴스를 지우려면
with(지울 오브젝트) {instance_destroy();}
혹은
instance_destroy(지울 오브젝트)
로 쓰면 된다.
instance_destroy(지울 오브젝트, false)
로 쓰면 Destroy 이벤트가 발생하지 않는다.
[6] 애니메이션이 필요 없을 경우
image_single = (subimage);
로 특정한 서브이미지에서 멈추게 할 수 있으며, -1로 설정하면 애니메이션이 다시 재생된다. GM6에서 공식적으로 삭제되었다고는 하지만, GMS에서도 잘 작동한다.
[7] 스프라이트를 가로로 뒤집으려면
image_xscale
을, 세로로 뒤집으려면
image_yscale
을 음수로 설정한다.
[색상값] A B C D E F 색상값으로
c_*
계열 상수를 넣을 수 있다. 이외에도 원하는 색상 값을 넣으려면
make_colour_rgb(r, g, b)
make_colour_hsv(hue, saturation, value)
함수를 이용하거나 헥스 코드 #RRGGBB를
$BBGGRR
포맷으로 입력하면 된다. 다만 GMS 1.4.9999의 경우
$BBGGRR
포맷의 색상값을 특정 조건에서
$RRGGBB
로 인식하는 버그가 있으니 주의.
[8]
priority
는 재생할 사운드의 우선순위이며, 클수록 동시에 많은 사운드가 재생되어도 끊기지 않는다.
[레거시1]
sound_play(sound)
혹은
sound_loop(sound)
[레거시2]
sound_stop(sound)
[레거시3]
sound_isplaying(sound)
[비동기] A B 창이 떠 있는 동안 게임이 멈춘다. GMS의 경우 이러한 함수는 디버그 전용이 되었고, 공식 도움말에서는 게임이 멈추지 않는
*_async
꼴의 비동기 함수를 권장한다.
[9]
delay
밀리초 이후에 표시된다. 이하 모든 'Splash'로 시작하는 액션에 해당된다.
[10] 게임 창으로 띄운다.[파일시스템] A B C GMS에서는 GM8과 달리 샌드박싱이 적용되어 따로 지정된 디렉토리 바깥의 파일을 읽고 쓸 수 없다. 외부 영역의 파일을 읽으려면
get_open_filename
, 외부 영역에 저장하려면
get_save_filename
함수를 통해 파일 열기/저장하기 창을 띄워야 한다.
[11]
kind
의 값에 따라 다르게 취급되는데, 대표적으로 0은 일반 사운드, 1은 배경음악이다.
preload
를 설정하지 않으면 그 사운드가 실제로 재생될 때까지 기다렸다가 불러온다.
[12] 전자는 솔리드, 후자는 모든 오브젝트를 확인한다.[연산자] A B C D E
==
대신 다양한 비교 연산자를 사용할 수 있다.
!=
은 같지 않을 때,
<
/
>
은 미만/초과,
<=
/
>=
은 이하/이상.
[이상이하] A B C D E 액션 자체의 설정만으로는 미만/초과가 아닌 이상/이하를 확인할 수 없으므로, 이상/이하가 필요하다면 각각 미만/초과 + 아닐 경우의 조합을 사용해야 한다.[13] if문뿐만 아니라 for문 등 조건을 요구하는 문법에 넣으면 된다. 진리값의 경우 true는 1, false는 0의 값을 가지므로 수식에 (괄호를 치고) 그대로 집어넣어도 된다.[14]
button
이 가질 수 있는 값은 액션에서의 순서대로
mb_none
,
mb_left
,
mb_right
,
mb_middle
이다. 마우스 아무 버튼을 뜻하는
mb_any
도 사용할 수 있다.
[15] 상속 관계에서 부모와 자식 오브젝트는 여러 가지 이벤트를 가질 수 있는데, 부모에게 있는데 자식에게는 없는 이벤트가 있을 경우 자식은 그 이벤트를 '물려받아서' 그대로 실행한다. 한편 부모와 자식 모두 같은 이벤트가 있을 경우 자식은 부모의 이벤트를 물려받지 않고 자신의 것을 실행하는데, 이때 Call Parent Event로 부모의 이벤트를 강제로 물려받게 한다. 한편 부모의 이벤트를 자식이 물려받게 하고 싶지 않다면 이를 역이용해서 자식의 이벤트에 주석 액션 하나를 넣거나 빈 코드를 넣으면 된다. 아무 것도 없는 이벤트는 강제로 삭제되므로 하나라도 넣어야 한다.[16] 스크립트 자체는 인자를 0번부터 15번까지 16개 받을 수 있다.[17] 이 함수는
script
를 제외하고 인자를 0부터 14까지 15개 받을 수 있다.
[18] 전자는 한 줄만 쓸 수 있지만, 후자는 여러 줄에 걸쳐 쓸 수 있다.[형변환] A B 문자열과 숫자를 그냥 합치려고 하면 형변환 오류가 발생하므로, 반드시
string
함수로 숫자를 문자열로 변환하여 합쳐야 한다.
[19] Pixel, Disc(꽉 찬 원), Square, Line, Star, Circle(테두리만 있는 원), Ring(안쪽이 점점 옅어지는 원), Sphere(안쪽이 점점 짙어지는 원), Flare, Spark, Explosion, Cloud, Smoke, Snow. 코드로 사용할 경우 각각
pt_shape_*
꼴의 상수로 사용하며, 모두 소문자로 써야 한다.
[20] 액션 이름은 '파티클 생성'이지만, 실제로는 파티클 타입을 생성한다.[21] GM8에서는 알 수 없는 이유로 shape로 표기되어 있었다.[22] 색상의 경우
colour1
로 고정된 단색을 부여하거나
colour3
으로 세 색 사이에서 바뀌게 할 수 있으며,
colour_hsv
colour_rgb
make_colour_*
처럼 색상을 지정할 수 있다. 투명도의 경우
alpha1
로 고정된 투명도를 부여하거나
alpha3
으로 세 투명도 값 사이에서 바뀌게 할 수 있다. 무작위 투명도 기능은 없다.
[incr]
*_incr
인자에 0이 아닌 숫자를 지정하면 매 스텝마다 그 값이 그만큼 커진다.
[wiggle] [23] 파티클의 마찰력에 직접적으로 관여하는 함수는 없으므로 마찰력을 구현하려면
speed_incr
인자에
-friction
을 넣어 매 스텝마다 속도가 줄게 해야 한다.
[24]
shape
가 가질 수 있는 값은 액션에서의 순서대로
ps_shape_rectangle
,
ps_shape_ellipse
,
ps_shape_diamond
,
ps_shape_line
이다.
distribution
은 이미터 영역 안에서 파티클이 등장하는 분포를 설정하는데,
ps_distr_linear
(고르게 분포),
ps_distr_gaussian
(정규분포. 가운데에 집중됨),
ps_distr_invgaussian
(모서리에 집중됨)의 세 값을 가질 수 있다.
[25]
cursor
가 가질 수 있는 값은 액션에서의 순서대로
cr_none
,
cr_default
이다. 이외에도
cr_arrow
(보통 상황에서의 마우스 커서),
cr_handpoint
(링크 위에 마우스를 올렸을 때의 커서),
cr_beam
(텍스트를 편집할 때의 커서) 등 여러 상수를 넣을 수 있다.
[26] 엄밀하게는 현재
image_index
값이 적용된다.
[outline] A B
outline
은 액션에서와 달리 테두리가 true, 채우기가 false인 점에 유의.
[27]
align
이 가질 수 있는 값은 액션에서의 순서대로
fa_left
,
fa_center
,
fa_right
이다. 이외에도
draw_set_valign
으로 세로 정렬을 할 수 있는데, 이 함수에 인자로 줄 수 있는 값은
fa_top
,
fa_middle
,
fa_bottom
이다.
[28]
full
인자는 창 모드일 경우 false, 전체화면 모드일 경우 true로 설정한다. 창 모드와 전체화면 모드를 전환하려면
window_set_fullscreen(!window_get_fullscreen())
을 입력한다.
[29]
type
이 가질 수 있는 값은
ef_cloud
,
ef_ellipse
,
ef_explosion
,
ef_firework
,
ef_flare
,
ef_rain
,
ef_smoke
,
ef_smokeup
,
ef_snow
,
ef_spark
,
ef_star
의 12종류이다.
size
는 크기 순서대로 0, 1, 2를 쓸 수 있다.