phaser/tutorial_01 ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥½¡¼¥¹(No.2)


[[Programing]] > [[Phaser]] > Tutorial 01

#title(Making your first Phaser game¤ò¤ä¤Ã¤Æ¤ß¤¿)

¹â®¤Ç¥µ¥¯¥µ¥¯³«È¯¤Ç¤­¤ë¡¢HTML5/Javascript¸þ¤±2D¥²¡¼¥à¥¨¥ó¥¸¥ó¡ÖPhaser¡×¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¡ÖMaking your first Phaser game¡§¤Ï¤¸¤á¤Æ¤ÎPhaser¥²¡¼¥à¤òºî¤í¤¦¡×¤ò¤ä¤Ã¤Æ¤ß¤¿¥á¥â¡£

(¤È¤¤¤¦¤«¡¢¤Û¤È¤ó¤ÉÆüËܸìÌõ¤Ê¤ó¤À¤±¤É¡¢¤«¤Ê¤êĶÌõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë)

Phaser¤Î³«È¯¸µ¤Ç¤¢¤ëPhotom Storm¤Î¥Ö¥í¥°¤ËºÜ¤Ã¤Æ¤¤¤ë¥ä¥Ä¤Ç¡¢Phaser¤Ë¤â¼ýÏ¿¤µ¤ì¤Æ¤¤¤ë¡£

¤³¤ó¤Ê´¶¤¸¤Î¥²¡¼¥à¤òºî¤ë¡£> [[´°À®ÈÇ:http://www.catch.jp/program/phaser/making_your_first_Phaser_game.html]]

#ref(example_001.png)

 °Ê²¼¡¢½ñ¤­¤«¤±

#contents

* Phaser¤Ã¤Æ¥Ê¥Ë¡© [#z7ff7bd2]

Phaser¤Ï¡¢HTML5Âбþ¤Ç¥¯¥í¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÎWeb¥²¡¼¥à³«È¯¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡£¥Ç¥¹¥¯¥È¥Ã¥×¤È¥â¥Ð¥¤¥ë¤ËÂбþ¡¢¤À¤½¤¦¤Ê¡£

* ɬÍפʤâ¤Î [#j22cbfb9]

+ ¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥½¡¼¥¹¤ÈÁǺà¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë
-- ¤¹¤Ç¤ËPhaserËÜÂΤò¥À¥¦¥ó¥í¡¼¥ÉºÑ¤ß¤Ê¤é¡¢°Ê²¼¤Ë¤¢¤ë
-- phaser/resources/tutorials/02 Making your first game/ 
-- ¤Þ¤ÀPhaserËÜÂΤò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤Ê¤¤¤Ê¤é¡¢°Ê²¼¤Î¥ê¥ó¥¯¤«¤é
-- http://gametest.mobi/phaser/tutorials/02%20Making%20your%20first%20game/phaser_tutorial_02.zip
+ ¤È¤Ã¤Æ¤â¤È¤Ã¤Æ¤â´ðËÜŪ¤ÊJavascript¤ÎÃ챤¬É¬Í×
+ ¤¢¤È¡¢Phaser¤Ç³«È¯¤¹¤ë´Ä¶­¤òÀ°¤¨¤Æ¤ª¤¯¤³¤È
--[[Phaser¤Î¤Ï¤¸¤áÊý>Phaser]]¤ò»²¾È

* Part.1¡§¹üÁÈ¤ß [#j63337f1]

¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥µ¥ó¥×¥ë¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¡¢part1.html¤ò¥¨¥Ç¥£¥¿¤Ç³«¤¯¤È¡¢¤³¤ó¤Ê¤Õ¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤¬Phaser¤Î´ðËÜŪ¤Ê¹üÁȤߡ£

 <!doctype html> 
 <html lang="en"> 
 <head> 
 	<meta charset="UTF-8" />
 	<title>Phaser - Making your first game, part 1</title>
 	<script type="text/javascript" src="js/phaser.min.js"></script>
    <style type="text/css">
        body {
            margin: 0;
        }
    </style>
 </head>
 <body>
 
 <script type="text/javascript">
 
 var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
 
 function preload() {
 }
 
 function create() {
 }
 
 function update() {
 }
 
 </script>
 
 </body>
 </html>

¤¿¤À¤·¡¢¤¿¤À¤Î¹üÁȤߤʤΤǡ¢¤³¤Îpart1.html¤ò¥Ö¥é¥¦¥¶¤Ç³«¤¤¤Æ¤â»ÄÇ°¤Ê¤¬¤é¡¢¤Ê¤Ë¤âɽ¼¨¤µ¤ì¤Ê¤¤¡£

** var game = new Phaser.Game ¡¦¡¦¡¦ [#nf4e4f9b]

¤Ç¤Ï¡¢Javascript¤Î1¹ÔÌÜ(°Ê²¼¤Î¤È¤³¤í)¤ò¸«¤Æ¤¤¤³¤¦¡£

 var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });

¤³¤Î¹Ô¤Ç¤Ï¡¢Phaser¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Æ¡¢gameÊÑ¿ô¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢Phaser¤ËÀ¸Ì¿¤ò¤¢¤¿¤¨¤ë¡£¤Ù¤Ä¤Ë"game"¤È¤¤¤¦ÊÑ¿ô̾¤Ç¤Ê¤¯¤Æ¤â¤¤¤¤¤±¤É¡¢¤³¤ó¤Ê¤Õ¤¦¤Ë¤¹¤ë¤Î¤¬¶¦Ä̤·¤¿¤ä¤êÊý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤Û¤«¤Î¥µ¥ó¥×¥ë¤Ç¤â¡¢¤³¤ó¤Ê¤Õ¤¦¤Ë¤·¤Æ¤¢¤ë¡£

** Éý¤È¹â¤µ [#n1da4f09]

ºÇ½é¤Î2¤Ä¤ÎÀßÄêÃͤϡ¢Éý(width = 800)¤È¹â¤µ(height = 600)¤Ç¡¢Phaser¤¬À¸À®¤¹¤ëCanvas¥¿¥°¤Î¥µ¥¤¥º¤ò»ØÄꤷ¤Æ¤¤¤ë¡£¤³¤³¤Ç¤Ï¡¢800¡ß600¥Ô¥¯¥»¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢¼«Ê¬¤Î¹¥¤­¤Ê¥µ¥¤¥º¤ò»ØÄê¤Ç¤­¤ë¤±¤É¡¢¼Â¹Ô¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î²òÁüÅÙ¤ÎÃæ¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

** CANVAS¤«WebGL¤ÎÁªÂò [#df56fe6a]

3ÈÖÌܤÎÀßÄêÃͤϡ¢¡ÖPhaser.CANVAS¡×¤«¡ÖPhaser.WEBGL¡×¤«¡ÖPhaser.AUTO¡×¤Î¤É¤ì¤«¡£ÃΤäƤ¤¤ë¤È¤ª¤ê¡¢CANVAS¤âWebGL¤âJavascript/HTML5¤Ç¥°¥é¥Õ¥£¥Ã¥¯¤òÉÁ¤¯ÊýË¡¤Ç¡¢¼«Ê¬¤Î»È¤¤¤¿¤¤¤â¤Î¤ò»ØÄꤹ¤ì¤Ð¤¤¤¤¡£¥ª¥¹¥¹¥á¤Ï¡¢¡ÖPhaser.AUTO¡×¡£¤³¤ì¤Ï¡¢¤Þ¤ºWebGL¤ÇÉÁ¤¤¤Æ¤ß¤Æ¡¢¥Ö¥é¥¦¥¶¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤±¤ì¤ÐCANVAS¤ÇÉÁ¤¤¤Æ¤¯¤ì¤ë¡£

** DOM¤Ø¤ÎÁÞÆþ [#de623942]

4ÈÖÌܤÎÀßÄêÃͤϡ¢¶õ¤Ã¤Ý¤Îʸ»úÎó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤±¤É¡¢Phaser¤¬À¸À®¤·¤¿CANVAS¤ÎÁÞÆþÀè¤Ë¤Ê¤ëDOM¤Îid¤ò»ØÄꤹ¤ë¡£º£²ó¤Ï¡¢¶õ¤Ã¤Ý¤Î¤Þ¤Þ¤Ê¤Î¤Ç¡¢bodyÍ×ÁǤËCANVAS¤¬ÁÞÆþ¤µ¤ì¤ë¡£

** ´Ø¿ô¤Î³ä¤êÅö¤Æ [#k590e6bb]

ºÇ¸å¤ÎÀßÄêÃͤǡ¢Phaser¤Çɬ¿Ü¤È¤Ê¤ë´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È¤Ë³ä¤êÅö¤Æ¤Æ¤¤¤ë¡£»È¤¤Êý¤Ï¡¢[[¤³¤³¤ËÀâÌÀ¤·¤Æ¤¢¤ë:http://www.html5gamedevs.com/topic/1372-phaser-function-order-reserved-names-and-special-uses/]]¡£Note: ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤«¤Ê¤é¤º¤·¤âɬÍפ¸¤ã¤Ê¤¤¤±¤É¡¢¤³¤³¤Ç¤Ï¡¢¤¹¤Ð¤ä¤¯¥×¥í¥È¥¿¥¤¥×¤òºî¤ë¤¿¤á¤Ë¡¢¤³¤ÎÊýË¡¤òºÎÍѤ·¤Æ¤¤¤ë¡£

¤Ç¡¢¤³¤³¤Ç³ä¤êÅö¤Æ¤¿´Ø¿ô( preload()¡¢create()¡¢update())¤ÎÃæ¿È¤ò¡¢¤³¤Î¤¢¤Èµ­½Ò¤·¤Æ¤¤¤¯¡£

* Part.2¡§¥²¡¼¥àÁǺà¤Î¥í¡¼¥É [#sc2aa036]

¤Ç¤Ï¡¢¥²¡¼¥à¤Ç»È¤¦ÁǺà¤ò»ØÄꤷ¤Æ¥í¡¼¥É¤¹¤ë¡£

preload´Ø¿ô¤ÎÃæ¤Ç¡¢game.load¥á¥½¥Ã¥É¤ò¸Æ¤Ö¤È¡¢¥²¡¼¥àÆâ¤ËÁǺबÆɤ߹þ¤Þ¤ì¤ë¡£

¤³¤ó¤Ê´¶¤¸¤Ç¡¢º£¤Þ¤Ç¶õ¤Ã¤Ý¤À¤Ã¤¿preload´Ø¿ô¤ÎÃæ¤Ëµ­½Ò¤·¤Æ¤ä¤ë¡£

 function preload() {
    game.load.image('sky', 'assets/sky.png');
    game.load.image('ground', 'assets/platform.png');
    game.load.image('star', 'assets/star.png');
    game.load.spritesheet('dude', 'assets/dude.png', 32, 48);
 }

Phaser¤Ç¤³¤ó¤Ê¤Õ¤¦¤Ëµ­½Ò¤·¤Æ¤ª¤¯¤È¡¢¼Â¹Ô»þ¤Ë¼«Æ°Åª¤ËÁǺà¤òÆɤ߹þ¤ó¤Ç¤¯¤ì¤ë¡£

¼ÂºÝ¤Î¥³¡¼¥É¤Ï¡¢¥Á¥å¡¼¥È¥ê¥¢¥ë¤Îpart2.html¤ò»²¾È¡£¤Ç¤â¡¢¤Þ¤À²¿¤âɽ¼¨¤µ¤ì¤Ê¤¤¡£

** ¥¢¥»¥Ã¥È [#f521235c]

¤Á¤Ê¤ß¤Ë¡¢¤³¤Î¤è¤¦¤ÊÁǺà¤òAssets(¥¢¥»¥Ã¥È)¤È¸Æ¤ó¤Ç¤¤¤ë¡£

¤³¤³¤Ç¤Ï¡¢3¤Ä¤Î²èÁü¤È1¤Ä¤Î¥¹¥×¥é¥¤¥È¥·¡¼¥È¤òÆɤ߹þ¤ó¤Ç¤¤¤ë¡£

ÁǺà¤Ï¡¢¥Á¥å¡¼¥È¥ê¥¢¥ë¤Îassets¥Õ¥©¥ë¥À¤Ë¤¢¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥Ñ¥¹¤È¥Õ¥¡¥¤¥ë̾¤Çµ­½Ò¤·¤Æ¤ä¤ë¡£

** ¥¢¥»¥Ã¥È¥­¡¼ [#mcf74bd6]

¤â¤¦¤Ò¤È¤ÄÃíÌܤ·¤ÆÍߤ·¤¤¤Î¤¬¡¢game.load¥á¥½¥Ã¥É¤ÎºÇ½é¤Î°ú¿ô¡£'sky' 'ground' 'star' 'dude'¤È¤¤¤¦Ê¸»úÎ󤬻ØÄꤷ¤Æ¤¢¤ë¤±¤É¡¢¤³¤ì¤¬¥¢¥»¥Ã¥È¥­¡¼¡£¥²¡¼¥à¤ËÁǺà¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï¡¢¤³¤Î¥¢¥»¥Ã¥È¥­¡¼¤ò¥³¡¼¥É¤«¤é»ØÄꤹ¤ë¡£¥¢¥»¥Ã¥È¥­¡¼¤Ï¡¢Javascript¤Îʸ»úÎó¤Ê¤é²¿¤Ç¤â¼«Í³¤Ë»È¤¨¤ë¡£

* Part.3¡§¥¹¥×¥é¥¤¥È¤Îɽ¼¨ [#c7bdeef1]

¥¹¥×¥é¥¤¥È¤Î¤³¤È¤ÏÃΤäƤ¤¤ë¤«¤Ê?

¥¹¥×¥é¥¤¥È¤È¤Ï¡¢2D¥²¡¼¥à¤Ç¥­¥ã¥é¥¯¥¿¡¼¤äÇطʤΥ°¥é¥Õ¥£¥Ã¥¯¤òɽ¼¨¤¹¤ë¤¿¤á¤Îµ¡Ç½¡£¥²¡¼¥àÆâ¤Î¥­¥ã¥é¥¯¥¿¡¼¤Ï¡¢¾®¤µ¤Ê²èÁü(¥¹¥×¥é¥¤¥È)¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¡£¤³¤ì¤ò¤¹¤Ð¤ä¤¯ÀÚ¤êÂؤ¨¤ë¤³¤È¤Ç¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë¡£

¤Ç¤Ï¡¢¤½¤Î¥¹¥×¥é¥¤¥È¤òɽ¼¨¤µ¤»¤Æ¤ß¤è¤¦¡£¤Þ¤º¤Ï¡¢À±¤ò£±¸Äɽ¼¨¤µ¤»¤ë¡£

create´Ø¿ô¤Ë¡¢¼¡¤Î¥³¡¼¥É¤òµ­½Ò¤¹¤ë¡£

¤Ç¡¢¤½¤Îhtml¥Õ¥¡¥¤¥ë¤ò¤¤¤Ã¤¿¤óÊݸ¤·¤Æ¡¢¥Ö¥é¥¦¥¶¤Çɽ¼¨¤µ¤»¤ë¤È¡¢¼¡¤Î¤è¤¦¤ËÀ±¤¬É½¼¨¤µ¤ì¤ë¡£

¼ÂºÝ¤Î¥³¡¼¥É¤Ï¡¢¥Á¥å¡¼¥È¥ê¥¢¥ë¤Îpart3.html¤ò»²¾È¡£¤¦¡¼¤à¡¢¤ä¤Ã¤È½Ð¤¿!


* Licence [#i3506f04]

** Japanese Tutorial [#ub6ea4f0]

Copyright 2014 Yutaka Kachi released under MIT license.

** Original [#s448435d]

Copyright 2006 - 2014 Photon Storm Ltd. All rights reserved.

Copyright (c) 2014 Richard Davey, Photon Storm Ltd.

¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥ª¥ê¥¸¥Ê¥ëÈǤϡ¢¤³¤³¤Ë¤¢¤ë¡£

http://www.photonstorm.com/phaser/tutorial-making-your-first-phaser-game

¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò½ñ¤¤¤¿¤Î¤Ï¡¢ Alvin Ourrad ¤È Richard Davey¡£

Phaser¤ÎÇÛÉÛ¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤¿¤Ö¤óMIT¥é¥¤¥»¥ó¥¹¡£

¥È¥Ã¥×   °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS