자바스크립트로 만드는 객체지향 게임 - 메시지 큐

 폭탄은 하나에 여러개가 연결 되어 있을 경우 폭발이 여러 갈래로 나뉘어 지게 됩니다. 이 때, 그냥 메시지 전달을 하면 하나의 폭탄에 연결된 폭탄들이 동시에 터지지 못하게 됩니다. 그래서, 메시지 큐를 만들었습니다.

 메시지 큐는 싱글턴 클래스로 큐에 메시지 전송을 넣으면 메시지 큐가 주기적으로 돌면서 실제 메시지를 전송하는 것입니다. 메시지가 비동기로 전송되므로, 실제 폭발도 비동기로 폭탄이 개별적으로 폭발하게 됩니다.

 쓰레드가 지원이 되면 쉽게 해결되겠지만, 자바스크립트는 아직 그러지 못하므로 이러한 방법을 사용했습니다.

 메시지큐를 구현한 클래스는 아래와 같습니다.

/* 비동기메시지전송을위한메시지큐*/

$class({

        CMessageQueue : {

               SINGLETON : true,

              

               args : [],

 

               /* 메시지전송을큐에넣는다. */

               put : function(object,message) {

                    this.args.push($A(arguments));

                    window.setTimeout(this.sendMessage.bind(this),100);

               },

               /* 메시지를실제전송한다. */

               sendMessage : function() {

                    arg=this.args.shift();

                    if (arg) $event.fire.apply(window,arg);

                    if (this.args.length>0) window.setTimeout(this.sendMessage.bind(this),300);

               }

        }

});

 


사용법은 아주 단순합니다. $event.fire에 넣는 파라메터를 똑같이 $factory.get(CMessageQueue).put(...)에 넣으면 메시지는 비동기로 전송됩니다.

이 클래스는 좀 더 다듬어서 Swaf에 기본 기능으로 넣어야 겠습니다.

by 레이쥬 | 2007/12/21 16:38 | SWAF - 응용 | 트랙백(1) | 덧글(0)

트랙백 주소 : http://reizes.egloos.com/tb/1686155
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from at 2014/03/11 00:43

제목 : garcinia cambogia extract
line5...more

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶