Comment on page
📇
오브젝트 npcProperty
npcProperty는
Map.putObjectWithKey(x, y, dynamicResource, option)
함수의option 파라미터에서 지정할 수 있으며, 다음 7가지 속성을 지정할 수 있습니다.
이름 | 타입 | 설명 |
---|---|---|
name | string | 오브젝트 위에 표시될 이름 |
hp | number | 오브젝트의 현재 체력 |
hpMax | number | 오브젝트의 최대 체력 |
gaugeWidth | number | 체력 게이지바의 너비 생략시 이미지의 너비 크기로 설정됩니다. |
hpColor | number | 체력 게이지바의 색상
ex) 0x03ff03 (초록색) |
예제 1 - npcProperty를 사용해 오브젝트 생성하기

npcProperty.zip
29KB
Binary
예제 파일
let blueman = App.loadSpritesheet('blueman.png', 48, 64, {
left: [5, 6, 7, 8, 9],
up: [15, 16, 17, 18, 19],
down: [0, 1, 2, 3, 4],
right: [10, 11, 12, 13, 14],
dance: [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],
down_jump: [38],
left_jump: [39],
right_jump: [40],
up_jump: [41],
}, 8);
App.addOnKeyDown(81, function (player) {
const objectKey = "TestBlueMan";
const bluemanObject = Map.putObjectWithKey(18, 6, blueman, {
npcProperty: { name: "BlueMan", hpColor: 0x03ff03, hp: 100, hpMax: 100 },
overlap: true,
movespeed: 100,
key: objectKey,
useDirAnim: true,
offsetX: -8,
offsetY: -32,
});
Map.playObjectAnimationWithKey(objectKey, "down", -1);
});
예제 2 - npcProperty로 체력이 깎이는 효과 구현하기

npcProperty2.zip
29KB
Binary
예제 파일
let blueman = App.loadSpritesheet('blueman.png', 48, 64, {
left: [5, 6, 7, 8, 9], // 좌방향 이동 이미지
up: [15, 16, 17, 18, 19],
down: [0, 1, 2, 3, 4],
right: [10, 11, 12, 13, 14],
dance: [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],
down_jump: [38],
left_jump: [39],
right_jump: [40],
up_jump: [41],
}, 8);
App.addOnKeyDown(81, function (player) {
const objectKey = "TestBlueMan";
const bluemanObject = Map.putObjectWithKey(18, 6, blueman, {
npcProperty: { name: "BlueMan", hpColor: 0x03ff03, hp: 100, hpMax: 100 },
overlap: true,
collide: true, // ★ collid: true
movespeed: 100,
key: objectKey,
useDirAnim: true,
offsetX: -8,
offsetY: -32,
});
Map.playObjectAnimationWithKey(objectKey, "down", -1);
});
App.onAppObjectAttacked.Add(function (p, x, y, layer, key) {
const targetObject = Map.getObjectWithKey(key);
targetObject.npcProperty.hp -= 10;
if(targetObject.npcProperty.hp > 0) {
const hpPercentage = targetObject.npcProperty.hp / targetObject.npcProperty.hpMax;
if (hpPercentage < 0.3) {
targetObject.npcProperty.hpColor = 0xff0000;
} else if (hpPercentage < 0.7) {
targetObject.npcProperty.hpColor = 0xffa500;
}
targetObject.sendUpdated();
} else {
Map.putObjectWithKey(targetObject.tileX, targetObject.tileY, null, { key: key })
}
});
Last modified 3mo ago