코드로 조금 더 (선택)
여기는 "JavaScript 한두 줄 정도 써봤거나 해보고 싶은 분들"을 위한 선택 기능이에요. 못 읽어도 게임 만드는 데는 전혀 문제없어요.
Script 액션을 추가하면, 내장된 pm 명령으로 게임을 직접 조작할 수 있어요.
pm 명령 모음
장면 이동
pm.scene.goto("scene_id") // 특정 장면으로 이동
pm.scene.current // 지금 어느 장면에 있나
화면 요소 다루기
pm.object.show("obj_id") // 보이기
pm.object.hide("obj_id") // 숨기기
pm.object.setText("obj_id", "안녕!") // 글자 바꾸기
pm.object.setImage("obj_id", "url") // 그림 바꾸기
pm.object.moveTo("obj_id", 100, 200, 1) // 1초 동안 (100,200)으로 이동
pm.object.setOpacity("obj_id", 0.5, 1) // 1초 동안 반투명으로
변수
pm.var.get("Gold") // 값 읽기
pm.var.set("Gold", 100) // 값 정하기
pm.var.add("Gold", 50) // 값 더하기
인벤토리
pm.inventory.add("key") // 아이템 주기
pm.inventory.remove("key") // 아이템 뺏기
pm.inventory.has("key") // 갖고 있나? (true/false)
pm.inventory.list() // 전체 아이템 목록
소리
pm.sound.play("click_sfx") // 효과음
pm.sound.bgm("theme_music") // 배경음악
pm.sound.stop() // 배경음악 끄기
대화
pm.dialog.play("dialog_id") // 대화 실행
pm.dialog.showSelection([ // 선택지 띄우기
{ text: "A를 선택", actions: [...] },
{ text: "B를 선택", actions: [...] }
])
기타
pm.wait(1000) // 1초 대기
pm.signal.emit("mySignal") // 다른 규칙에 신호 보내기
pm.timer.after(3000, "alarm") // 3초 뒤 신호 발동
pm.log("디버깅 메시지") // 로그 출력
pm.dt // 매 프레임 경과 시간 (움직이는 연출용)
언제 쓰면 좋아요?
보통은 기본 액션만으로 충분해요. 이걸 쓰게 되는 경우는:
- 수식이 필요한 복잡한 계산 (예: "HP = (Level × 10) + 기본값")
- 여러 액션을 한 덩어리로 묶어 반복하고 싶을 때
- 특수한 움직임을 프레임마다 조정하고 싶을 때
부담 갖지 말고 기본 액션부터 천천히 올라가도 돼요.