zim Game기능은 8개 정도로 많지 않지만(zim Cat04기준)
급하게 보드기능이 필요하다면, zim Game이 해결책이다.
|보드 생성
보드 생성은 아래와 같은 코드 3줄이면 끝이다.
[코드]
//생략...
let board = new Board({
backgroundColor : grey
}).sca(.5).center(stage);
//생략...
|캐릭터 생성
캐릭터 역시 zim Game의 기본기능으로 제공된다.
방해물, 캐릭터 역할의 Tree, Person객체를 Board()에 추가하는 것만으로 보드가 완성된다.
[코드]
//생략...
let tree1 = new Tree();
board.add(tree1, 3, 5);
let tree2 = new Tree();
board.add(tree2, 5, 2);
let player1 = new Person();
board.add(player1, 5, 5);
board.addKeys(player1, 'arrows', {notItems:[tree1, tree2]});
player1.on('movingdone', hitObj);
let player2 = new Person();
board.add(player2, 2, 5);
board.addKeys(player2, 'wasd', {notItems:[tree1, tree2]});
player2.on('movingdone', hitObj);
플레이어1, 2, 나무1, 2를 추가하자.
|효과
player1, player2의 좌표가 겹쳤을 때 Emitter효과가 나려면,
Emitter의 spurt이벤트가 필요하다.
[코드]
let emitter = new Emitter({startPaused:true});
emitter.on('spurted', function(){
board.position(player1, 5, 5);
board.position(player2, 2, 2);
});
function hitObj(){
if(player1.boardTile == player2.boardTile){
emitter.loc(player1).mov(0, -50).spurt(15);
}
}
플레이어 충돌함수를 생성한 뒤,
emitter의 'spurted'이벤트를 연결한다면
아래와 같은 결과를 볼 수 있다.
[구현]
'웹개발 자료실 > 웹게임제작 Code' 카테고리의 다른 글
「zim.js」2D 어드벤처 게임 제작 (0) | 2021.08.01 |
---|---|
「zim.js」중력게임 만들기 (0) | 2021.07.29 |
「zim.js」 물리엔진 적용(2) (0) | 2021.07.25 |
「zim.js」 물리엔진 적용하기(1) (0) | 2021.07.25 |
「zim.js」 낙하게임 제작 (0) | 2021.07.19 |
댓글