ã²ãŒã éçºã®äŸã§ã¯ãã²ãŒã ãªããžã§ã¯ãã®ã¢ãã¡ãŒã·ã§ã³ãšå¶åŸ¡ãžã®ã¢ãããŒãã瀺ãããŠããŸãã
Canvasã§ã²ãŒã ãéçºããããšããåæ©ã¯ã次ã®2ã€ã®äŸã§ããã
- ããŒã«ããã°ãŒã°ã« ã
- éåžžã«èªç¶ãªã¡ãã·ã¥ ïŒ ããã°ã©ããŒã¯ãã¡ããªãã¯ã®åããã·ãã¥ã¬ãŒãããŸã ïŒã
äŸã¯å®äŸã§ãããæ°åããŒã«ãèœãšããåããŒã¹ã®ããããåŒãè£ããåŸãè奮ã¯æ¶ããŸããã é°è¬ãç®çãæå³ã¯ãããŸãããæçµçã«ã¯æ¥œããã§ãããé¢çœããããŸããã
ã¯ããã«
Canvasã®æäœã«ã€ããŠã¯ã Canvasã®HTMLããŒãžã®å ¬éã§èª¬æãããŠããŸã ã äžè¬ã«ãã¢ãŒããã¯ãã£ãšéçºããŒã«ãå«ããŸã£ããåãã¢ãããŒããããã§é©çšãããŸããã
FFïŒWindowsãLinux MintïŒãCRãããã³IEïŒWindowsïŒã§äºææ§ããã¹ããããŸããã å©çšå¯èœãªã¬ãžã§ããã®ãã§ãã¯ããããŸããããçµæã¯ããŸããããŸããã§ããïŒè©³çŽ°ã¯æåŸã«ãããŸãïŒã
GitHubã³ãŒãïŒ
ã¢ãŒã±ãŒã
ã¹ããã
æ°å
Tetr
GitHubã®ãã¢ïŒãªãã©ã€ã³ã¢ãŒãïŒïŒ
ã¢ãŒã±ãŒã
ã¹ããã
æ°å
Tetr
ã²ãŒã ã¯ã¢ãã«ç®¡çã§ã
ã²ãŒã ã¯ãã²ãŒã ã¢ãã«ãã¢ãã«ç®¡çæ©èœãã¢ãã«è¡šç€ºæ©èœã§æ§æãããŠããŸãã ã²ãŒã ã®ç©¶æ¥µã®æ¬è³ªã¯ãã¢ãã«ãå€æŽããããšã§ãã
ã¢ãã«ã¯ã²ãŒã ãªããžã§ã¯ãã§æ§æãããŸãã åºæ¬çãªããªããã£ãããã®ãªããžã§ã¯ãïŒé·æ¹åœ¢ãåãç·ã
ã¢ãã«ãšã¢ãã«ã®ãã€ããã¯ã¹ãæäŸããæ©èœã¯ãã¢ãã«ã®è¡šç€ºæ¹æ³ã«ã€ããŠäœãç¥ããŸããã Canvasæ©èœã¯ãã¬ã³ããªã³ã°æã®ã¢ãã«ã®éçç¶æ ã衚瀺ããæ¹æ³ã®ã¿ãç¥ã£ãŠããŸãã ã¬ã³ããªã³ã°ããã»ã¹äžãã¢ãã«ã®å€æŽã¯èš±å¯ãããŸããã 幞ããªããšã«ãããã«åŸãå¿ èŠã¯ãããŸããïŒã·ã³ã°ã«ã¹ã¬ããã®ã€ãã³ãã«ãŒãã«ãã£ãŠæäŸãããŸãïŒã
Canvas APIã¯ãã€ãã£ãã§ãããããé«éã§ãããå€æ°ã®åºæ¬çãªããªããã£ãããªã¢ã«ã¿ã€ã ã§è¡šç€ºã§ããŸãã ãããã£ãŠãåçŽãªãªããžã§ã¯ãã®æ°ïŒæ°åãŸãã¯æ°çŸïŒã¯Canvasã«ãšã£ãŠããã»ã©éèŠã§ã¯ãããŸããã ãã ããJavaScriptã§å®è£ ãããè€éãªèšç®ãªããžã§ã¯ãã¯é¿ããã¹ãã§ãã åãããšã¯ãã¢ãã«å€æŽã¢ã«ãŽãªãºã ã®å®è£ ã«åž°ããããšãã§ããŸãã ããç°¡åã§ãã€ãã£ãã§ããã°ããã»ã©ïŒãã®å Žåã¯ãããã€ãã£ãã§ããã®å Žåã¯Canvas APIãèæ ®ãããŸãïŒãããåªããŠããŸãã ã²ãŒã ã®ã¢ã€ãã¢ã«åŸã£ãŠãè€éãªããã³/ãŸãã¯æéã®ãããèšç®ã¢ã«ãŽãªãºã ãå®è£ ããå¿ èŠãããå Žåããã®ãããªç®çã®ããã«ãWebã¯ãŒã«ãŒã䜿çšã§ããŸãïŒããã§ã¯èæ ®ããŸããïŒã
ã¢ãã«ã®èšèšã¯ãæåããæ éã«è¡ãå¿ èŠããããŸãã éçºããã»ã¹äžã«ã¢ãã«ãå€§å¹ ã«å€æŽããå¿ èŠãããå Žåãã³ã³ãããŒã«ãšè¡šç€ºã³ãŒãã®åäœæ¥ãå¿ èŠã«ãªããŸãã
ã¢ãã«éçº
ãããªã¹ã¯ãã¢ãããŒãããã¹ãããããã®è¯ããã¢ãäœæããŸããïŒããã§ã¯ãç§ã¯æåãšã¯ã»ã©é ãã§ãïŒã
ã¢ãã«ã³ã³ã»ããïŒ
- è²ã®ä»ãã现èã§æ§æããããããã¯ã¯ãŠã§ã«ã«èœã¡ãå ±éã®ããŒã«ã«å ¥ããŸãã ãã£ã±ãã«ãªã£ãããŒã«ã®è¡ãåé€ãããŸãã äºæžããã£ã±ãã«ãªããæ°ãããããã¯çšã®ç©ºãã¹ããŒã¹ããªããªããšãã²ãŒã ã¯çµäºããŸãã
- ãããã¯ã¯å転ããã³æ°Žå¹³æ¹åã«ç§»åã§ããŸãã å転ãšç§»åã¯ãäºæžã®ç©ºãã¹ããŒã¹ã§ã®ã¿å¯èœã§ãã ãããã¯ãå転ãããŠã§ã«ããŒã«ããã£ã±ãã«ãªããšãã»ã«ã®è²ãä¿æãããŸãã
- åºæ¬ãªããžã§ã¯ãã¯ã»ã«ã§ãã ã»ã«ã®ãµã€ãºã¯ãã¯ã»ã«åäœã§ãã ãã®ãµã€ãºã¯ãCanvasã§ã®ãã¹ãŠã®ã¬ã³ããªã³ã°ã®åºæºãšãªãäž»ãªããŒã¹ã§ãã
- ãŠã§ã«ã¯ãã»ã«ã§æ§æãããä»®æ³ã°ãªããã§ãã ãããã¯ããã³ããŒã«ç®¡ç-ãŠã§ã«å ã®ã»ã«ã®åçªå·ãšè¡ã®å€æŽã
ãŠã§ã«ãšã»ã«ãµã€ãºã®èª¬æïŒ
APELSERG.CONFIG.SET.CellSize = 20; // APELSERG.CONFIG.SET.WellColumn = 5; // APELSERG.CONFIG.SET.WellRow = 20; //
åºæ¬ãªããžã§ã¯ãïŒã»ã«ïŒïŒ
APELSERG.MODEL.Cell = function (cellRow, cellCol, cellColor) { this.Row = cellRow; // this.Col = cellCol; // this.Color = cellColor; // }
ãªããžã§ã¯ãïŒãããã¯ïŒïŒ
APELSERG.MODEL.Block = function (blockType) { this.type = blockType; // this.idx = 0; // ( ) this.cells = [[], [], [], []]; // }
ãããã¯ã¢ãã«ã®åé·æ§ã¯èŠããŸãããããã«ããã2ã€ã®ã¿ã¹ã¯ã解決ãããŸãã1ããã¹ãŠã®ç¶æ ãæã€ãããã¯ãäžåºŠã«åœ¢æãããŸãïŒãããã¯ãããã«ç®¡çããã®ã¯ç°¡åã§ãïŒã 2.ãããã¯ãå転ããŠããã»ã«ã®è²ã¯ä¿æãããŸãã
ãããã¯ã¯ã²ãŒã ã¢ãŒãã§äœæãããŸãã
APELSERG.MODEL.GetNewBlock = function() { var newBlock = APELSERG.CONFIG.PROC.NextBlock; // APELSERG.CONFIG.PROC.NextBlock = APELSERG.MODEL.GetBlock(); // - if (!APELSERG.MODEL.CheckBlockCross(newBlock)) { // , APELSERG.CONFIG.PROC.GameStop = true; // window.clearTimeout(APELSERG.CONFIG.PROC.TimeoutID); // APELSERG.CONFIG.SetResult(); // } return newBlock; }
æ°ãããããã¯ïŒ
APELSERG.MODEL.GetBlock = function() { var blockType = APELSERG.MODEL.GetBlockType(); // var newBlock = new APELSERG.MODEL.Block(blockType); // var newColor = ""; // var baseRow = 1; var baseCol = Math.round(APELSERG.CONFIG.SET.WellColumn / 2); switch (blockType) { case 101: //-- [1] newColor = APELSERG.MODEL.GetCellColor(); newBlock.cells[0][0] = new APELSERG.MODEL.Cell(baseRow, baseCol, newColor); newBlock.cells[1][0] = new APELSERG.MODEL.Cell(baseRow, baseCol, newColor); newBlock.cells[2][0] = new APELSERG.MODEL.Cell(baseRow, baseCol, newColor); newBlock.cells[3][0] = new APELSERG.MODEL.Cell(baseRow, baseCol, newColor); break; //
ããã§ãä»»æã®æ§æã®ãããã¯ãè¿œå ã§ããŸãã äž»ãªããšã¯ãæ°ããåããããã¯ã«å²ãåœãŠããã®åãAPELSERG.MODEL.GetBlockTypeïŒïŒé¢æ°ã®é åã«è¿œå ããããšã§ãã
ã¢ãã«ç®¡ç
管çã¯äžè¬çãªæ¹æ³ã§ããŒããŒãããè¡ãããŸãã
window.addEventListener('keydown', function (event) { ... }
ãããã¯ã¯ïŒwindow.requestAnimationFrameã§ã¯ãªãïŒã¿ã€ããŒã«ãã£ãŠåé¡ãããŸãã APELSERG.CONFIG.SET.LevelTické åã«ã¯ãçŸåšã®ã¬ãã«ã®æéã®å€ãæ ŒçŽãããŸãã
APELSERG.MAIN.Animation = function (makeStep) { if (makeStep) { APELSERG.MODEL.BlockShift('DOWN'); // - } APELSERG.CANVA.WellRewrite(APELSERG.CONFIG.PROC.CellPool); if (!APELSERG.CONFIG.PROC.GameStop && !APELSERG.CONFIG.PROC.GamePause) { APELSERG.MAIN.RequestAnimationFrame(function () { APELSERG.MAIN.Animation(true); }); } } APELSERG.MAIN.RequestAnimationFrame = function (callback) { if (APELSERG.CONFIG.PROC.FastDownFlag) { // DOWN APELSERG.CONFIG.PROC.TimeoutID = window.setTimeout(callback, 10); } else { APELSERG.CONFIG.PROC.TimeoutID = window.setTimeout(callback, APELSERG.CONFIG.SET.LevelTick[APELSERG.CONFIG.SET.Level]); } }
ãããã¯ãç¹å®ã®æ¹åã«ç§»åãŸãã¯å転ã§ãããã©ããã確èªããããã«ãä»®æ³ãããã¯ãäœæãããæ¡ä»¶ããã§ãã¯ãããŸãã æ€èšŒæ¡ä»¶ãæºãããããšãå®éã®ãããã¯ã¯æ°ããå Žæã«ç§»åãããŸãã æ€èšŒæ©èœïŒ
APELSERG.MODEL.CheckBlockCross = function(block) { var canShift = true; //-- //-- for (var n = 0 in block.cells[block.idx]) { if (block.cells[block.idx][n].Col < 1 || block.cells[block.idx][n].Col > APELSERG.CONFIG.SET.WellColumn || block.cells[block.idx][n].Row < 1 || block.cells[block.idx][n].Row > APELSERG.CONFIG.SET.WellRow) { canShift = false; break; } } //-- //-- if (canShift) { for (var n = 0 in block.cells[block.idx]) { for (var q = 0 in APELSERG.CONFIG.PROC.CellPool) { var cell = APELSERG.CONFIG.PROC.CellPool[q]; if (block.cells[block.idx][n].Col == cell.Col && block.cells[block.idx][n].Row == cell.Row) { canShift = false; break; } } if (!canShift) { break; } } } return canShift; }
ãããã¯ãªãã»ããã¯ãã»ã«çªå·ã®åçŽãªèšç®ã«ãã£ãŠçºçããŸãã
APELSERG.MODEL.ShiftBlockColumn = function(block, num) { for (var x = 0 in block.cells) { for (var n = 0 in block.cells[x]) { block.cells[x][n].Col = block.cells[x][n].Col + num; } } }
åºã«éãããšãAPELSERG.MODEL.DropBlockToPoolïŒïŒé¢æ°ã䜿çšããŠããããã¯ã®ã»ã«ããŠã§ã«ããŒã«ã«ç§»åãããŸãã ãã®å Žåããã€ã³ããä»äžãããŸãã
å®è£ ãããæ©èœã§ãããç§ã®æèŠã§ã¯ãããŸãæåããŠããŸããã§ããïŒèšå®ã«ã¯ãããŸããïŒïŒ
- APELSERG.CONFIG.PROC.FastDownFlag = falseã trueã«èšå®ãããšãèœäžã¯ç¬æã§ã¯ãªããèŠèŠåãããŸãã
- APELSERG.CONFIG.SET.ShowFullRow = falseã trueã«èšå®ãããšãå¡ãã€ã¶ãããè¡ãåé€åã«è¡šç€ºãããŸãã
- APELSERG.CONFIG.SET.SlideToFloor = falseã trueã«èšå®ãããŠããå Žåããªã»ããåŸã®ãããã¯ã¯åºã暪åã£ãŠãã¹ã©ã€ããããã¿ã€ããŒã®ç®çãã ãã§ããŒã«ã«ç§»åããŸãã
ãã£ã³ãã¹ã®ã¬ã³ããªã³ã°
APELSERG.CANVA.WellRewriteïŒïŒé¢æ°ã¯ãCanvasã§ã¢ãã«ãã¬ã³ããªã³ã°ããŸãã ããã¯éåžžã«ã·ã³ãã«ã§ãããææžåãããŠããŸãã 圌女ãè¡ãããšã¯ããã£ã³ãã¹ãã¯ãªã¢ããã¢ãã«ããªããã£ããé 次ã¬ã³ããªã³ã°ããããšã ãã§ãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹
èšå®ãçµæããã«ã
ã¢ãã«ãå®çŸããåŸãå šäœçãªã²ãŒã ã§ã¯åŸ©æŽ»ããã¢ãã«ã§ã¯äžååã§ããããšãæããã«ãªããŸããã ããã§ãUIã¢ãžã¥ãŒã«ãç»å ŽããŸããã
- APELSERG.UIã èšå®ãçµæãããã³ãã«ããžã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã
- APELSERG.LANGã ããŒã«ã©ã€ãºã容æã«ããããã
ããã¯å žåçãªåçDOMã§ãããããããæãæåãããã®ã§ã¯ãããŸããïŒã³ãŒãã¯åçŽãªã®ã§ã説æããŸããïŒã
ããŒã«ã«ã¹ãã¬ãŒãž
ã²ãŒã ãžã®é¢å¿ãç¶æããã«ã¯ãèšå®ãçµæãä¿åããå¿ èŠããããå Žåã«ãã£ãŠã¯ãªãã©ã€ã³ã¢ãŒãã䟿å©ã§ãã ã¹ãã¬ãŒãžã«ã¯ãlocalStorageã䜿çšãããŸãã æè¡çã«ã¯ããã¹ãŠãæšæºçãªæ¹æ³ã§å®è£ ãããŠããŸãããã°ããŒãã«ãªããžã§ã¯ãAPELSERG.CONFIG.SETããã³APELSERG.CONFIG.RESULTãšã®æ¥ç¶ããã¬ãŒã¹ãããšäŸ¿å©ã§ãã
ããã€ãã®ã¡ã¢ïŒ
- åãã¡ã€ã³ã¯ç¬èªã®localStorageã䜿çšããŸãã
- localStorage.clearïŒïŒã¯æ éã«äœ¿çšããŠãã ãã-çŸåšã®ãã¡ã€ã³ã®ãã¹ãŠã®localStorageãã¯ãªã¢ããŸãã
èšå®ã¯2ã€ã®ãªããžã§ã¯ãã«ä¿åãããŸãã
- CONFIG.SET-ã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«é©çšãããéçèšå®ïŒlocalStorageã«ä¿åïŒã
- CONFIG.PROC-ã¢ããªã±ãŒã·ã§ã³ã®æäœäžã«é©çšãããåçèšå®ïŒlocalStorageã«ã¯ä¿åãããŸããïŒã
ã¹ãã¬ãŒãžã®ååã¯äžæã§ããå¿ èŠããããããã€ãã®éçå€æ°ã®çµã¿åãããã圢æãããŸãã
APELSERG.CONFIG.SET.Version = "0-1-0" APELSERG.CONFIG.SET.LocalStorageName = "APELSERG-ArcadPlain"; APELSERG.CONFIG.GetLocalStorageConfigName = function () { return APELSERG.CONFIG.SET.LocalStorageName + "-Config-" + APELSERG.CONFIG.SET.Version; }
èšå®ã¯å€æŽããããšä¿åãããŸãã ããã¯åçŽã«è¡ãããŸãïŒå¥ã®é¢æ°ããã«ãããªãå Žåã§ãïŒã APELSERG.UI.ApplySettingsïŒïŒé¢æ°ïŒUIã¢ãžã¥ãŒã«ïŒã«ã次ã®2è¡ãè¿œå ãããŸãã
var configName = APELSERG.CONFIG.GetLocalStorageConfigName(); localStorage[configName] = JSON.stringify(APELSERG.CONFIG.SET);
ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšãlocalStorageã«ä¿åãããŠããæ§æã®ååšã確èªãããæ§æãä¿åãããŠããå Žåã¯åŸ©å ãããŸãã
APELSERG.CONFIG.GetConfigOnLoad = function () { if (APELSERG.CONFIG.PROC.LoadFromWeb) { var configName = APELSERG.CONFIG.GetLocalStorageConfigName(); if (localStorage[configName] !== undefined) { APELSERG.CONFIG.SET = JSON.parse(localStorage[configName]); } } }
LocalStorageã空ã§ãããããŸã£ãã䜿çšãããŠããªãå¯èœæ§ããããŸãã LocalStorageã¯ç©ºã§ãïŒ1.æåã®èµ·åæã 2.ä¿åãããŠããªãå Žåã 3.ã¯ãªãŒãã³ã°ãããŠããå Žåã å€ãã®å Žåãäž»ã«éçºããã»ã¹äžã«æ§æãã¯ãªã¢ããå¿ èŠããããŸãã ããšãã°ãæ§æãå€æŽãããŸãã-å€æ°ãè¿œå ãŸãã¯åé€ãããã¢ããªã±ãŒã·ã§ã³ã¯ãå€ãæ§æãªããžã§ã¯ããã¹ãã¬ãŒãžãã埩å ããããããå€æŽã衚瀺ãããªããã®ããã«åäœãç¶ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ãã£ã¹ã¯ããèµ·åãããå ŽåãããŒã«ã«ã¹ãã¬ãŒãžã¯ç¡å¹ã«ãªããŸãã ããã¯ããã©ãŠã¶ãŒããã®ã¢ãŒããããŸããµããŒãããŠããªãããã§ãã ãã ããã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®æ©èœã¯ä¿æãããŸãã ããŒã«ã«ãã£ã¹ã¯ããã®èµ·åã¯ãèµ·åæã«å¶åŸ¡ãããŸãã
window.location.protocol == "file:" ? APELSERG.CONFIG.PROC.LoadFromWeb = false : APELSERG.CONFIG.PROC.LoadFromWeb = true;
çµæã¯APELSERG.CONFIG.RESULTã«ä¿åãããŸãã æ©èœçã«ã¯ãçµæã®ä¿åã¯èšå®ã®ä¿åãšåãã§ãã
ãªãã©ã€ã³äœæ¥
ãªãã©ã€ã³ã¢ãŒãïŒã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãŸãã¯AppCacheïŒã䜿çšãããšãã€ã³ã¿ãŒãããããªãã®å Žåã§ãWebã¢ããªã±ãŒã·ã§ã³ã§ã®äœæ¥ãç¶ç¶ã§ããŸãã äžè¬ã«ãããŸããŸãªãªãã©ã€ã³æ¡ä»¶ã®èšå®ã¯éåžžã«è€éã«ãªãå¯èœæ§ããããŸãã ããããç§ãã¡ã®å Žåãããã¯æãç°¡åãªæé ã®1ã€ã§ãã
ãªãã©ã€ã³ã¢ãŒãçšã®ãããã§ã¹ããã¡ã€ã«ïŒgame_arcad_plain.appcache.txtïŒãæºåããå¿ èŠããããŸãã
ãã£ãã·ã¥ãããã§ã¹ã ïŒVer 0.1.0 ïŒ001 game_tetr_plain.htm game_tetr_plain_canva.js game_tetr_plain_config.js game_tetr_plain_lang.js game_tetr_plain_main.js game_tetr_plain_model.js game_tetr_plain_model_blocks.js game_tetr_plain_ui.js
WebããŒãžã®HTMLèŠçŽ ã«ãã®ãã¡ã€ã«ãžã®ãªã³ã¯ãè¿œå ããå¿ èŠããããŸãã
<html manifest="game_arcad_plain.appcache.txt">
æ¡åŒµåããtxtãã®èãç¬éã MIMEã¿ã€ãtext / cache-manifestã®æ¡åŒµåappcacheãŸãã¯manifestãæšå¥šãããŸãã ããã¯ã
ãµãŒããŒã®äž»å°ã§ã¯ã©ã€ã¢ã³ãã«ãã¡ã€ã«ããªããŒãããã«ã¯ããïŒ001ããå¿ èŠã§ãã ãµãŒããŒäžã®ãã¡ã€ã«ãæŽæ°ãããå Žåããããã§ã¹ããã¡ã€ã«ãå€æŽããããŸã§ã¯ã©ã€ã¢ã³ãã«å°éããŸããã ãããŠããã®äžã§äœãå€æŽã§ããŸããïŒ -ãïŒ002ãã«é¢ããã³ã¡ã³ãã
ãã®ä»ã®ã²ãŒã
æåã®ã²ãŒã ãéçºãããåŸãæ®ãã®ã²ãŒã ã¯ã¢ãã«ã«å»å°ãããŸããã ã³ãŒãã®çŽ80ïŒ ã¯åããŸãŸã§ãå€æŽã¯äž»ã«ã¢ãã«ã®ã¿ã«é¢ä¿ããŠããŸããïŒã¢ãã«ãšå¶åŸ¡ã³ãŒããããåçŽã«ãªããŸããïŒã ãããã£ãŠãããã€ãã®ãã¥ã¢ã³ã¹ãé€ããŠããããã®ã²ãŒã ãåå¥ã«èª¬æããã®ã¯æå³ããããŸããã
- ãããã®ã²ãŒã ã«ã¯åžžã«ç§»åãããªããžã§ã¯ãïŒããŒã«ïŒããããããã¢ãã¡ãŒã·ã§ã³ã¯window.requestAnimationFrameã§è¡ãããŸãã
- æéééã®å€åã«ãããã®ã§ã¯ãªããXãšYã«æ²¿ã£ã座æšã®å¢åã®å€åã«ããããŒã«ã®åãã¯é ã/éããªããŸããæéééã¯æž¬å®ãããŸããïŒãã ããè¯ãæ¹æ³ã§ã¯å¿ èŠã§ãïŒã
- ãªããŠã³ãã¯ãçŽåŸãèæ ®ããŠãããŒã«ã®äžå¿ããèšç®ãããŸãã å é床ãšæ¹åã¯ã©ã³ãã ã«éžæãããŸãã éã®åãã§ã¯ãããŒã«ã¯ã©ã±ãããèŠããŸããã ãããã¯/ã©ã±ããã®åãã¯ãããŒã«ã®ãµã€ãºãããèãããããšã¯ã§ããŸããããããªããšãé«éã§ã¯è²«éãçºçããå¯èœæ§ããããŸãã
ç°¡åãªãã¹ãã®æŠèŠ
ã©ã¡ããè¯ãã§ããïŒ
- ãã£ã³ãã¹ã¢ãã¡ãŒã·ã§ã³ã¯ç°¡åã§ãã ãã®ã¢ãã«ã«ãããCanvasã®æäœãããã«ç°¡åã«ãªããŸãã
- ããŒã«ã«ã¹ãã¬ãŒãžãšããããªãŒå¯¿åœã¯äœ¿ããããã§ãã
ããŸãè¯ããªãïŒ
- Canvasã¯ã¿ããã¹ã¯ãªãŒã³ã®èŠªåã§ã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³ãã¿ããã¹ã¯ãªãŒã³ã«å¿çããŠãããã¹ãŠåãããã«ã20ã€ã³ããã£ã¹ãã¬ã€ã§ã®ããŠã¹ã¯ãªãã¯ã®åäœãšãã¹ããŒããã©ã³ã®ç»é¢ã§æãçªããšãã®åäœã¯ç°ãªããŸãã ãããã£ãŠããã¢ã²ãŒã ã¯äž»ã«ãã¹ã¯ãããã·ã¹ãã ã§ã®äœ¿çšãç®çãšããŠãããã³ã³ãããŒã«ã¯ããŒããŒãã«çŠç¹ãåãããŠããŸãã ããžãã£ããªããšã¯ãæ¯èŒçã·ã³ãã«ã§æ©èœãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãããã°ãããã«é©å¿ãé²ããããšãã§ãããšããããšã§ãã
- ãã£ã³ãã¹ã¯ãå®æçã«å°ãé ããŸãã æŠãããã®ã¡ã«ããºã ã¯ãããŸããã
䟿å©ãªãªã³ã¯
HTML5 Canvas
HTML5ããŒã«ã«ã¹ãã¬ãŒãž
HTML5ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥