Callbacks
์๊ฐ
์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ ํค๋ฅผ ํ๋ ์ด์ด๊ฐ ๋๋ ์ ๋ ๋๋ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ ์ง์ ์ ๋์ฐฉํ์ ๋ ๋ฑ, ์กฐ๊ฑด์ ์ค์ ํ์ฌ ํ๋ ์ด์ด๊ฐ ์กฐ๊ฑด์ ๋ฌ์ฑํ์ ๊ฒฝ์ฐ ๋์ํ๋ ํจ์๋ค ์ ๋๋ค.
runLater
์ง์ ํ ์๊ฐ(์ด) ํ ๋์ํ๋ ํจ์ ์ ๋๋ค.
addOnTileTouched
์ง์ ํ x, y ์ขํ์ ํ๋ ์ด์ด๊ฐ ๋์ฐฉํ์ ๋ ์คํ๋๋ ํจ์์ ๋๋ค.
addOnLocationTouched
์ง์ ํ โ์ง์ ์์ญโ์ ํ๋ ์ด์ด๊ฐ ๋์ฐฉํ์ ๋ ์คํ๋๋ ํจ์์ ๋๋ค.
addOnKeyDown
ํ๋ ์ด์ด๊ฐ ์ง์ ๋ ํค๋ฅผ ๋๋ ์ ๋ ์คํ๋๋ ํจ์ ์ ๋๋ค.
setTimeout
์ง์ ํ ์๊ฐ(ms) ํ ํจ์๋ฅผ ์คํํฉ๋๋ค.
setInterval
์ง์ ํ ์๊ฐ(ms) ๊ฐ๊ฒฉ์ผ๋ก ํจ์๋ฅผ ์คํํฉ๋๋ค.
addMobileButton
๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ปค์คํ ๋ชจ๋ฐ์ผ ๋ฒํผ์ ์ถ๊ฐํ๊ณ , ๋ฒํผ์ ๋๋ ์ ๋ ๋์ํ๋ ํจ์๋ฅผ ์ง์ ํฉ๋๋ค.
putMobilePunch
๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ํ์น ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค.
putMobilePunchWithIcon
๋ก๋ํ ์ด๋ฏธ์ง๋ก ํ์น ๋ฒํผ์ ๋ง๋ค์ด ์ถ๊ฐํฉ๋๋ค.
๐ API ์ค๋ช
๋ฐ ์์
Callbacks ํจ์ ํ ๋์ ๋ณด๊ธฐ
// time(์ด) ํ์ callback ํจ์๋ฅผ ์คํ
App.runLater(callback, time: number)
// ํ๋ ์ด์ด๊ฐ ํด๋น ์์น์ ํ์ผ๊ณผ ๋ถ๋ชํ์ ๋ ์คํ
App.addOnTileTouched(x: number, y: number, callback)
// ํ๋ ์ด์ด๊ฐ ์ง์ ํ ์์น์ ๋ถ๋ชํ์ ๋ ์คํ
App.addOnLocationTouched(name: string, callback)
// ํ๋ ์ด์ด๊ฐ ์ง์ ๋ ํค๋ฅผ ๋๋ ์ ๋ ์คํ
App.addOnKeyDown(keycode : number, callback);
// time(ms) ํ์ callback ํจ์๋ฅผ ์คํ
setTimeout(callback, time: number)
// time(ms) ํ ํจ์๋ฅผ ์คํ
setInterval(callback, time: number)
// ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ปค์คํ
๋ชจ๋ฐ์ผ ๋ฒํผ์ ์ถ๊ฐํ๊ณ , ๋ฒํผ์ ๋๋ ์ ๋ ๋์ํ๋ ํจ์๋ฅผ ์ง์
App.addMobileButton(anchor: number, posX: number, posY: number, function(player){} )
// ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ํ์น ๋ฒํผ ์ถ๊ฐ/์ ๊ฑฐํฉ๋๋ค.
App.putMobilePunch(enable: boolean = true)
// ๋ก๋ํ ์ด๋ฏธ์ง๋ก ํ์น ๋ฒํผ์ ๋ง๋ค์ด ์ถ๊ฐํฉ๋๋ค.
App.putMobilePunchWithIcon(icon: ScriptDynamicResource)
runLater
time(์ด) ํ์ callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
time
Number
๋ช ์ด ํ์ ์คํ ๋ ์ง๋ฅผ ์ ํ๋ ์๊ฐ (์ด)
์์
์ฑ์ด ์์๋๊ณ 5์ด ํ ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ
App.onStart.Add(function () {
App.runLater(function() {
App.showCenterLabel("๋ฉ์์ง");
}, 5);
});
addOnTileTouched
์ง์ ํ x, y์ขํ์ ํ๋ ์ด์ด๊ฐ ๋์ฐฉํ ๊ฒฝ์ฐ callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
x, y
number
์ง์ ํ x, y ์ขํ
์์
ํ๋ ์ด์ด๊ฐ ์ง์ ์ขํ์ ๋์ฐฉ ํ์ ๋ ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ
// ํ๋ ์ด์ด๊ฐ 5, 5 ์ขํ์ ๋์ฐฉํ ๊ฒฝ์ฐ
App.addOnTileTouched(5, 5, function (player) {
App.showCenterLabel(`${player.name}๋์ด (5, 5) ์ขํ์ ๋์ฐฉ!`);
});
addOnLocationTouched
ํ๋ ์ด์ด๊ฐ ๋งต์๋ํฐ์์ ์ง์ ํ โ์ง์ ์์ญโ์ ๋์ฐฉํ์ ๋ callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
name
String
๋งต ์๋ํฐ์์ ์ง์ ํ โ์ง์ ์์ญโ์ ์ด๋ฆ
player
Player
์ง์ ์์ญ์ ๋์ฐฉํ ํ๋ ์ด์ด๋ฅผ ๊ฐ๋ฅดํด ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ์ ์์๋ก ์ง์ ๊ฐ๋ฅ
์์
ํ๋ ์ด์ด๊ฐ ์ง์ ์์ญ์ ๋์ฐฉํ์ ๋ ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ
// ํ๋ ์ด์ด๊ฐ ์ด๋ฆ์ด "myLocation"์ธ ์์ญ์ ๋์ฐฉํ์ ๋ ์คํ
App.addOnLocationTouched("myLocation", function(player){
App.showCenterLabel(`${player.name}๋์ด myLocation์ ๋์ฐฉํ์ต๋๋ค.`)
});
addOnKeyDown
ํ๋ ์ด์ด๊ฐ ์ง์ ๋ ํค๋ฅผ ๋๋ ์ ๋ callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
player
Player
ํด๋น ํค๋ฅผ ๋๋ฅธ ํ๋ ์ด์ด๋ฅผ ๊ฐ๋ฅดํด player ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ์์๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
์์
a๋ฅผ ๋๋ ์ ๋ ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ ( a์ ํค์ฝ๋: 65 )
// ํ๋ ์ด์ด๊ฐ a๋ฅผ ๋๋ ์ ๋ ์คํ
App.addOnKeyDown(65, function(player){
App.sayToAll(`${player.name}๋์ด aํค๋ฅผ ๋๋ ์ต๋๋ค.`)
});
setTimeout
time(ms) ํ์ callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
time
Number
callback ํจ์ ์คํ ์ ๋๊ธฐ ์๊ฐ (ms)
์์
์ฑ์ด ์์๋๊ณ 5์ด ํ ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ
App.onStart.Add(function () {
setTimeout(function () {
App.sayToAll("5์ดํ ๋ฉ์์ง ์ถ๋ ฅ");
}, 5000);
});
setInterval
time(ms) ๊ฐ๊ฒฉ์ผ๋ก callback ํจ์๋ฅผ ์คํํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
time
Number
callback ํจ์ ์คํ ์ฃผ๊ธฐ (ms)
์์
์ฑ์ด ์์๋๊ณ 1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฉ์์ง ์ถ๋ ฅํด๋ณด๊ธฐ
let time = 0;
App.onStart.Add(function () {
setInterval(function () {
App.sayToAll(`์ฑ ์คํ ${++time}์ด ๊ฒฝ๊ณผ`);
}, 1000);
});
addMobileButton
๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ปค์คํ ๋ชจ๋ฐ์ผ ๋ฒํผ์ ์ถ๊ฐํ๊ณ , ๋ฒํผ์ ๋๋ ์ ๋ ๋์ํ๋ ํจ์๋ฅผ ์ง์ ํฉ๋๋ค.
๋ชจ๋ฐ์ผ๋ฒํผ์์์ด๋ฏธ์ง๋ฅผ ์ํ๋ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝ ํ ์ ์์ต๋๋ค.
ํ๋ผ๋ฏธํฐ
anchor
Number
๋ชจ๋ฐ์ผ ๋ฒํผ์ ์์น๋ฅผ ์ซ์๋ก ์ ๋ ฅํฉ๋๋ค. TOP = 0, TOP_LEFT = 1, TOP_RIGHT = 2, MIDDLE = 3, MIDDLE_LEFT = 4, MIDDLE_RIGHT = 5, BOTTOM = 6, BOTTOM_LEFT = 7, BOTTOM_RIGHT = 8
posX
Number
๋ชจ๋ฐ์ผ ๋ฒํผ x ๋ฐฉํฅ ์คํ์ ์์น
posY
Number
๋ชจ๋ฐ์ผ ๋ฒํผ y ๋ฐฉํฅ ์คํ์ ์์น
player
Player
๋ชจ๋ฐ์ผ ๋ฒํผ์ ๋๋ฅธ ํ๋ ์ด์ด๋ฅผ ๊ฐ๋ฅดํด
์์
๋ชจ๋ฐ์ผ ๋ฒํผ ์ถ๊ฐํด๋ณด๊ธฐ

App.onStart.Add(function () {
// Bottom_Right
App.addMobileButton(8, 145, 75, function (player) {
App.sayToAll(`${player.name}, Bottom ๋ฒํผA`);
});
// Bottom_Right
App.addMobileButton(8, 145, -20, function (player) {
App.sayToAll(`${player.name}, Bottom ๋ฒํผB`);
});
// Top
App.addMobileButton(0, 0, 400, function (player) {
App.sayToAll(`${player.name}, TOP ๋ฒํผ`);
});
// Top_Left
App.addMobileButton(1, 50, 400, function (player) {
App.sayToAll(`${player.name}, TOP_LEFT ๋ฒํผ`);
});
// Top_right
App.addMobileButton(2, 50, 400, function (player) {
App.sayToAll(`${player.name}, TOP_RIGHT ๋ฒํผ`);
});
// Middle
App.addMobileButton(3, 0, 100, function (player) {
App.sayToAll(`${player.name}, MIDDLE ๋ฒํผ`);
});
// Middle_left
App.addMobileButton(4, 50, 100, function (player) {
App.sayToAll(`${player.name}, MIDDLE LEFT ๋ฒํผ`);
});
// Middle_right
App.addMobileButton(5, 50, 100, function (player) {
App.sayToAll(`${player.name}, MIDDLE RIGHT ๋ฒํผ`);
});
});
putMobilePunch
enable์ด true์ด๋ฉด ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ํ์น ๋ฒํผ์ด ์ถ๊ฐ๋ฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
enable
Boolean
๋ชจ๋ฐ์ผ ํ์น ๋ฒํผ ํ์ฑํ ์ฌ๋ถ ( ๊ธฐ๋ณธ ๊ฐ true )
์์
Q ๋ฒํผ์ ๋๋ฌ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ํ์น ๋ฒํผ์ ์ถ๊ฐ/์ ๊ฑฐ ํด๋ณด๊ธฐ

let punchButton = false;
// Q ๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ํ๋ ํจ์
App.addOnKeyDown(81, function (player) {
if (!punchButton) {
punchButton = true;
App.putMobilePunch();
} else {
punchButton = false;
App.putMobilePunch(false);
}
});
putMobilePunchWithIcon
๋ก๋ํ ์ด๋ฏธ์ง๋ก ํ์น ๋ฒํผ์ ๋ง๋ค์ด ์ถ๊ฐํฉ๋๋ค.
ํ๋ผ๋ฏธํฐ
icon
ScriptDynamicResource
App.loadSpriteSheet ํจ์๋ก ๋ก๋ํ ์ด๋ฏธ์ง ๋ฆฌ์์ค
์์
Q ๋ฒํผ์ ๋๋ฌ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๋ก๋ํ ์ด๋ฏธ์ง๋ก ํ์น ๋ฒํผ ์ถ๊ฐํ๊ธฐ


const punchIcon = App.loadSpritesheet("punchIcon.png")
// Q ๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ํ๋ ํจ์
App.addOnKeyDown(81, function (player) {
App.putMobilePunchWithIcon(punchIcon);
});
๋ถ๋ก
Last updated
Was this helpful?