State Pattern5


State Pattern1 : C++ State patternÀ» ÀÚ¹Ù½ºÅ©¸³Æ®·Î º¯È¯
State Pattern2: »óÅ º¯È¯ Å×À̺í
State Pattern3: ÀÚ¹Ù½ºÅ©¸³Æ® ´Ù¿òÀÇ »óÅÂÆÐÅÏ
State Pattern4: »óÅ º¯È¯ Å×À̺í°ú ÀÚ¹Ù½ºÅ©¸³Æ® ´Ù¿òÀÇ »óÅÂÆÐÅÏ ±â´É ÅëÇÕ

À̹øÀå¿¡¼­´Â ±â´ÉÀ» HTML¿¡ Àû¿ëÇØ º¸ÀÚ.
À̷аú Çö½ÇÀº ´Ù¸¦¼ö°¡ Àֱ⠶§¹®¿¡ »óÅ º¯È¯ Å×À̺í°ú ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ´Ù¿òÀÇ »óÅÂÆÐÅÏÀ» ÀÌ¿ëÇØ HTML5¿¡ Àû¿ë Çغ¸ÀÚ.



±¸Çö ¼ø¼­

1. UI ºñÁÖ¾ó »óŸ¦ 3~5´Ü°è·Î »ý°¢ÇÑ´Ù.

2. ¿©±â¼­´Â LeftView, RightView, TooltipView·Î ³ª´«´Ù.

3. actTable¿¡¼­ »óÅ º¯È¯ °ü°è¸¦ ¿ÀºêÁ§Æ® ¼Ó¼ºÀ¸·Î ¸¸µç´Ù.

    const actTable = {
        .....
    };

4. »óŸ¦ ±¸ÇöÇÑ´Ù.
¿©±â¼­´Â LeftView, RightView, TooltipViewÀÌ´Ù.

3, 4¹øÀ» ¹Ýº¹Çϸ鼭 ±â´ÉÀ» ±¸ÇöÇÑ´Ù.


Å°º¸µå + °ÔÀÓÆеå ÀÔ·Â ¿¹Á¦ - (_self.input¿¡¼­ ÀÔ·ÂÀ» Àü´Þ)

appMain Áï½Ã ½ÇÇà ÇÔ¼öÀÇ updateGamepad¿¡¼­ ó¸®ÇÑ´Ù.
_self.input¿¡¼­ ÀÔ·ÂÀ» º¯È¯ÈÄ °¢°¢ÀÇ »óÅÂ( LeftView, RightView, TooltipView)·Î ÀÔ·ÂÀ» Àü´ÞÇÑ´Ù.
°¢°¢ÀÇ »óÅ¿¡¼­´Â Àü´Þ¹ÞÀº _self.inputÀ» execute ÇÔ¼ö¿¡¼­ ó¸®ÇÑ´Ù.

var appMain = function(){  
    ......
    function updateGamepad() {
        if(Gamepad.click(GamepadKey.A))
            _self.input.enter = 1;
        _self.input.updown = Gamepad.moveLeftClick().y;
        _self.input.updownView = Gamepad.moveRightClick().y;
    }
    ......
})();

°ÔÀÓÆеå Àü¿ë ÀÔ·Â ¿¹Á¦ - (»óÅ¿¡¼­ °ÔÀÓÆеå ÀÔ·ÂÀ» Á÷Á¢ Á¦¾î)

°¢°¢ÀÇ »óÅÂ( LeftView, RightView, TooltipView)¿¡¼­ °ÔÀÓÆеå ÀÔ·ÂÀ» Á÷Á¢ Á¦¾î ÇÑ´Ù.
execute ÇÔ¼ö¿¡¼­ °ÔÀÓÆеå ÀÔ·ÂÀ» Á÷Á¢ ó¸® Çϱ⠶§¹®¿¡ Äڵ尡 Á÷°üÀûÀ¸·Î º¸ÀδÙ.
appMain¿¡¼­ _self.input¿¡¼­ ÀÔ·ÂÀ» ¸¸µé ÇÊ¿ä°¡ ¾ø´Ù.

var LeftView = function(){
    ......
    proto.execute = function(){
        let arg = arguments[0];
        if(Gamepad.click(GamepadKey.A)) {
            arg.stateManager.changeState( getFsm('left2right', arg.actTable)());
        }
        arg.scrollList1.updateInput(Gamepad.moveLeftClick().y);
    };
    .....
};

´Ù¿î·Îµå:
Å°º¸µå + °ÔÀÓÆеå ÀÔ·Â ¿¹Á¦
statePattern5.html
sample.js

°ÔÀÓÆеå Àü¿ë ÀÔ·Â ¿¹Á¦ (°¢°¢ÀÇ »óÅ execute ÇÔ¼ö¿¡¼­ °ÔÀÓÆеå ÀÔ·ÂÀ» ó¸® ÇÑ´Ù.)
statePattern5_exec.html
sample_exec.js

°øÅë »ç¿ë ÆÄÀÏ
simple_main.js
scroll_list.js
gamepad.js
util.js

Àüü ´Ù¿î·Îµå: tutorial14.zip