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
|