API 가이드
다음 문장을 포함함으로써 Bangtal API를 사용할 수 있다.
#include <bangtal.h>
게임 관련 함수
-
void startGame(SceneID scene)
scene으로부터 게임을 시작한다. scene으로 들어가면서 이벤트(EVENT_ENTER_SCENE)가 발생한다. -
void enterScene(SceneID scene)
scene으로 전환한다. 이전 scene에서 나오면서 이벤트(EVENT_LEAVE_SCENE)가 발생하고, scene으로 들어가면서 이벤트(EVENT_ENTER_SCENE)가 발생한다. -
void endGame()
게임을 종료한다.
장면(Scene) 관련 함수
- SceneID createScene(const char* name, const char* image = nullptr)
주어진 이름(name)과 배경 이미지(image)를 가진 장면을 생성하고 ID를 반환한다.SceneID scene1 = createScene("룸1", "Images/배경-1.png");
- void setSceneImage(SceneID scene, const char* image = nullptr)
장면(scene)의 배경 이미지(image)를 변경한다.setSceneImage(scene1, "Images/배경-2.png");
- void setSceneLight(SceneID scene, SceneLight light)
장면(scene)의 밝기(light)를 조정한다. light는 0~1 사이의 float 값이다.setSceneLight(scene1, 0.5f); // 50%
- void setSceneCallback(SceneCallback callback)
장면에서 발생하는 이벤트를 수신하는 callback 함수를 설정한다. 장면에 들어갈 때(EVENT_ENTER_SCENE), 나올 때(EVENT_LEAVE_SCENE) 이벤트가 발생한다.
물체(Object) 관련 함수
- ObjectID createObject(const char* image)
주어진 이미지(image)로 믈체를 생성하고 ID를 반환한다.ObjectID door1 = createObject("Images/문-오른쪽-닫힘.png");
- void setObjectImage(ObjectID object, const char* image)
물체(object)의 이미지(image)를 변경한다.setObjectImage(door1, "Images/문-오른쪽-열림.png");
- void setObjectText(ObjectID object, const char* text = “”)
물체(object)의 텍스트(text)를 변경한다.setObjectText(door1, "한글 ABC\n123456");
- void locateObject(ObjectID object, SceneID scene, int x, int y)
물체(object)를 장면(scene)에 위치(x, y)시킨다.locateObject(door1, scene1, 800, 270);
- void scaleObject(ObjectID object, ObjectScale scale)
물체(object)의 크기(scale)를 조정한다.scaleObject(door1, 2.f); // 200%
- void showObject(ObjectID object) / void hideObject(ObjectID object)
물체(object)를 보이거나(showObject) 숨긴다(hideObject)showObject(door1);
- void pickObject(ObjectID object) / void dropObject(ObjectID object)
물체(object)를 줍거나(pickObject) 떨어 뜨린다(dropObject)pickObject(key);
-
void defineCombination(ObjectID object1, ObjectID object2, ObjectID object3)
물체의 조합 방법을 정의한다. object1과 object2를 조합(Combine)하면 object3가 된다. 반대로 object3를 분해(Dismantle)하면 object1과 object2가 된다. -
ObjectID getHandObject()
현재 사용하고 있는 물체의 ID가 반환된다. 사용하고 있는 물체가 없으면 0이 반환된다. -
void setObjectCallback(ObjectCallback callback)
물체에서 발생하는 이벤트를 수신하는 callback 함수를 설정한다. 물체를 주울 때(EVENT_PICK_OBJECT), 떨어 뜨릴 때(EVENT_DROP_OBJECT) 이벤트가 발생한다. 물체를 조합할 때(EVENT_COMBINE_OBJECT), 분해할 때(EVENT_DISMANTLE_OBJECT) 이벤트가 발생한다. KEYPAD 암호가 입력된 경우에 EVENT_KEYPAD 이벤트가 발생한다. -
void setMouseCallback(MouseCallback callback)
물체에 마우스 입력을 수신하는 callback 함수를 설정한다. 마우스를 클릭(MOUSE_CLICK)하거나 드래그(MOUSE_DRAG_UP/DONW/LEFT/RIGHT)가 발생한다. - void setKeyboardCallback(KeyboardCallback callback)
키보드 입력을 수신하는 callback 함수를 설정한다. 키가 눌리는 경우에 코드와 상태(KEY_PRESSED / KEY_RELEASED)가 전달된다.
사운드(Sound) 관련 함수
- SoundID createSound(const char* sound)
사운드 파일(sound)로 사운드 객체를 생성하고 ID를 반환한다.SoundID sound1 = createSound("Audios/Start.mp3");
- void playSound(SoundID sound, bool loop = false) / void stopSound(SoundID sound)
사운드를 재생하고(playSound) 재생을 종료한다(stopSound).playSound(sound1);
- void setSoundCallback(SoundCallback callback)
사운드에서 발생하는 이벤트를 수신하는 callback 함수를 설정한다. 사운드 재생이 종료될 때 이벤트(EVENT_SOUND)가 발생한다.
타이머(Timer) 관련 함수
- TimerID createTimer(Second second = 0)
주어진 시간(second 초)으로 타이머 객체를 생성하고 ID를 반환한다.TimerID timer1 = createTimer(10.5f); // 10.5초
- void startTimer(TimerID timer) / void stopTimer(TimerID timer)
타이머를 시작하고(startTimer) 멈춘다(stopTimer)startTimer(timer1);
-
void setTimer(TimerID timer, Second second) / void increaseTimer(TimerID timer, Second second) / void decreaseTimer(TimerID timer, Second second)
타이머(timer)의 현재 시간을 주어진 시간(second)으로 설정하거나(setTimer), 주어진 시간 만큼 증가시키거나(increaseTimer) 감소시킨다(decreaseTimer). -
void showTimer(TimerID timer) / void hideTimer()
타이머(timer)를 보여주거나(showTImer) 숨긴다(hideTimer). - void setTimerCallback(TimerCallback callback)
타이머에서 발생하는 이벤트를 수신하는 callback 함수를 설정한다. 타이머가 종료될 때 이벤트(EVENT_TIMER)가 발생한다.
다이얼로그 관련 함수
-
void showMessage(const char* message)
주어진 메시지(message)를 메시지 창에 보인다. -
void showImageViewer(const char* image)
주어진 이미지(image)를 보인다. -
void showKeypad(const char* password, ObjectID object)
주어진 암호(password)를 입력할 수 있는 키패드를 보인다. 암호를 맞추면 이벤트(EVENT_KEYPAD)가 발생한다.showKeypad("PASS1234", door1);
댓글남기기