phaser/tutorial_01 ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×º¹Ê¬(No.3)



  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
[[Programing]] > [[Phaser]] > Tutorial 01

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

¹â®¤Ç¥µ¥¯¥µ¥¯³«È¯¤Ç¤­¤ë¡¢HTML5/Javascript¸þ¤±2D¥²¡¼¥à¥¨¥ó¥¸¥ó¡ÖPhaser¡×¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¡ÖMaking your first Phaser game¡§¤Ï¤¸¤á¤Æ¤ÎPhaser¥²¡¼¥à¤òºî¤í¤¦¡×¤ò¤ä¤Ã¤Æ¤ß¤¿¥á¥â¡£
¹â®¤Ç¥µ¥¯¥µ¥¯³«È¯¤Ç¤­¤ë¡¢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]]
¤Á¤Ê¤ß¤Ë¡¢¤³¤ó¤Ê´¶¤¸¤Î¥²¡¼¥à¤òºî¤ë¡£> [[´°À®ÈÇ:http://www.catch.jp/program/phaser/making_your_first_Phaser_game.html]] Ìð°õ¥­¡¼¤ÇÁàºî

#ref(example_001.png)

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

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

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

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

#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¥Õ¥¡¥¤¥ë¤ò¤¤¤Ã¤¿¤óÊݸ¤·¤Æ¡¢¥Ö¥é¥¦¥¶¤Çɽ¼¨¤µ¤»¤ë¤È¡¢¼¡¤Î¤è¤¦¤ËÀ±¤¬É½¼¨¤µ¤ì¤ë¡£
 function create() {
      game.add.sprite(0, 0, 'star');
 }

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

#ref(example_002.png)

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

** ɽ¼¨½ç¤Ë¤Ä¤¤¤Æ [#i3e0644b]

º£¤Î¤È¤³¤í¡¢ÇطʤϹõ¿§¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

¥¹¥×¥é¥¤¥È¤¬É½¼¨¤µ¤ì¤ë½çÈ֤ϡ¢¥³¡¼¥É¤òµ­½Ò¤·¤¿½çÈ֤ˤʤ롣

¤À¤«¤é¡¢À±¤ÎÇطʤòɽ¼¨¤·¤¿¤¤¾ì¹ç¤Ï¡¢À±¤ÎÁ°¤ËÇطʤΥ¹¥×¥é¥¤¥È¤Î¥³¡¼¥É¤òµ­½Ò¤¹¤ë¡£

** game.add.sprite ¥á¥½¥Ã¥É [#z603198e]

¥²¡¼¥à¤Î΢¦¤Ç¡¢game.add.sprite¥á¥½¥Ã¥É¤Ï¡¢¿·¤·¤¤[[Phaser.Sprite¥ª¥Ö¥¸¥§¥¯¥È:http://docs.phaser.io/Phaser.Sprite.html]]¤òÀ¸À®¤·¤Æ¡¢¥¹¥×¥é¥¤¥È¤ò¡Ègame world¡É¤ËÄɲ乤롣¤³¤Î¡Ègame world¡É¤Ë¡¢¥²¡¼¥à¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£

** ¥²¡¼¥à¤ÎºÂɸ [#bda6626e]

¤³¤Î¡Ègame world¡É¤Ï¡¢¤¸¤Ä¤Ï¥µ¥¤¥º¤¬¸ÇÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤·¡¢Ìµ¸Â¤Ë¹­¤¬¤Ã¤Æ¤¤¤ë¡£ºÂɸ¤Î¸¶ÅÀ¤Ï¡Ö0,0¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢°ì¸«¤¹¤ë¤Èº¸¾å¤Î¥³¡¼¥Ê¡¼¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¡£¤À¤±¤É¡¢ÁȤ߹þ¤ß¤ÎCamera¥³¥Þ¥ó¥É¤Ç¼«Í³¤ËÄ´À°¤Ç¤­¤ë¡£

* Part.4¡§¡Ègame world¡É¤ò¹½ÃÛ¤¹¤ë [#uda5c758]

¤Ç¤Ï¡¢¡Ègame world¡É¤ò¹½ÃÛ¤·¤Æ¤ß¤è¤¦¡£

Àè¤ÎCreate´Ø¿ô¤Î¥³¡¼¥É¤ÎÊѤï¤ê¤Ë¡¢¼¡¤Î¤è¤¦¤Ëµ­½Ò¤¹¤ë¡£

 var platforms;
 
 function create() {
 
    //  ʪÍý±é»»¥¨¥ó¥¸¥ó¤È¤·¤Æ¡¢Arcade Physics¥·¥¹¥Æ¥à¤ò¥ª¥ó¤Ë¤¹¤ë
    game.physics.startSystem(Phaser.Physics.ARCADE);
 
    //  ¥·¥ó¥×¥ë¤ÊÇØ·Ê
    game.add.sprite(0, 0, 'sky');
 
    //  ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¥°¥ë¡¼¥×¤ÎÀ¸À®¡£¤³¤Î¥°¥ë¡¼¥×¤Ï¡¢ÃÏÌÌ(ground)¤È2¤Ä¤ÎÄ¥¤ê½Ð¤·(ledge)¤«¤é¤Ç¤­¤Æ¤¤¤ë
    platforms = game.add.group();
 
    //  ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¥°¥ë¡¼¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¤¹¤Ù¤ÆʪÍý±é»»¤ò¥ª¥ó¤Ë¤¹¤ë
    platforms.enableBody = true;
 
    // ¤³¤³¤Ç¡¢platforms¥°¥ë¡¼¥×¤ËÃÏÌÌ(ground)¤òÄɲ乤ë
    var ground = platforms.create(0, game.world.height - 64, 'ground');
 
    //  ÃÏÌ̤Υµ¥¤¥º¤ò¥²¡¼¥à¤ÎÉý¤Ë¥Õ¥£¥Ã¥È¤µ¤»¤ë (¥¹¥×¥é¥¤¥È¤Î¥ª¥ê¥¸¥Ê¥ë¥µ¥¤¥º¤Ï¡¢400x32)
    ground.scale.setTo(2, 2);
 
    //  ÃÏÌ̤ò¸ÇÄꤹ¤ë
    ground.body.immovable = true;
 
    //  ƱÍͤˡ¢platforms¥°¥ë¡¼¥×¤ËÄ¥¤ê½Ð¤·(ledge)¤òÄɲ乤ë
    var ledge = platforms.create(400, 400, 'ground');
 
    ledge.body.immovable = true;
 
    ledge = platforms.create(-150, 250, 'ground');
 
    ledge.body.immovable = true;
    
 }

¼ÂºÝ¤Î¥³¡¼¥É¤Ï¡¢¥Á¥å¡¼¥È¥ê¥¢¥ë¤Îpart4.html¤ò»²¾È¡£Æ°¤«¤Ê¤¤¤±¤É¡¢ÊªÍý±é»»¥¨¥ó¥¸¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¡£

ºÇ½é¤Î¥Ñ¡¼¥Ä¤Ï¡¢À±¤Î¥¹¥×¥é¥¤¥È¤ÈƱ¤¸¤À¤±¤É¡¢¥¢¥»¥Ã¥È¥­¡¼¤¬"sky"¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¤³¤ì¤ÇÇطʤò»ØÄꤹ¤ë¡£

¤³¤ÎÇطʤˤϡ¢800¡ß600¥µ¥¤¥º¤ÎPNG¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ó¤Ç¤¤¤ë¡£

#ref(example_003.png)

** ¥°¥ë¡¼¥×µ¡Ç½¤Ë¤Ä¤¤¤Æ [#r127ae81]

Phaser¤Î¥°¥ë¡¼¥×µ¡Ç½¤Ï¡¢¤Û¤ó¤È¤¦¤Ë¶¯ÎϤÀ¡£¥°¥ë¡¼¥×µ¡Ç½¤Ï¡¢¤½¤Î̾Á°¤¬¼¨¤¹¤È¤ª¤ê¡¢¤è¤¯»÷¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ò¤È¤Ä¤Ë¤Þ¤È¤á¤Æ¡¢Ã±°ì¤ÎÉôÉʤΤ褦¤Ë¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¡£¤µ¤é¤Ë¡¢¥°¥ë¡¼¥×´Ö¤Ç¾×ÆÍȽÄê¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤Î¥µ¥ó¥×¥ë¥²¡¼¥à¤Ç¤Ï¡¢Àè¤Û¤É¤Î¥³¡¼¥É¤Çºî¤Ã¤¿platform¥°¥ë¡¼¥×¤È¡¢¤â¤¦¤Ò¤È¤Ä¤Î¥°¥ë¡¼¥×¤È¤Î´Ö¤Ç¾×ÆͤòȽÄꤹ¤ë¡£

¼¡¤Î¥³¡¼¥É¤Ï¡¢Àè¤Û¤Éplatform¥°¥ë¡¼¥×¤òÄêµÁ¤·¤¿¤È¤­¤Î¥³¡¼¥É¤À¡£

 platforms = game.add.group();

¤³¤³¤Ç¤Ï¡¢platform¤È¤¤¤¦¥í¡¼¥«¥ëÊÑ¿ô¤Ë¡¢¥°¥ë¡¼¥×¥ª¥Ö¥¸¥§¥¯¥È¤òÂåÆþ¤·¤Æ¤¤¤ë¡£¤³¤Î¥°¥ë¡¼¥×¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢¥²¡¼¥à²èÌ̤ËÇÛÃÖ¤¹¤ëÍ×ÁǤòÄɲ䷤Ƥ¤¤¯¡£ºÇ½é¤Ë¡¢ÃÏÌÌ(ground)¤òÄɲä·¤¿¡£¤³¤ÎÃÏÌÌ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥²¡¼¥à²èÌ̤κDz¼Éô¤Ë¤¢¤Ã¤Æ¡¢"ground"¥¤¥á¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£ÃÏÌÌ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÉý¤Ï¡¢¥²¡¼¥à²èÌ̤˹礦¤è¤¦³ÈÂç½Ì¾®¤µ¤ì¤ë¡£¤½¤ì¤«¤é¡¢"immovable"¥×¥í¥Ñ¥Æ¥£¤ò"true"¤Ë¤¹¤ë¡£¤³¤¦¤·¤Æ¤ª¤¯¤È¡¢¥×¥ì¡¼¥ä¡¼¤Î¥­¥ã¥é¥¯¥¿¤¬ÃÏÌ̤˾×Æͤ·¤Æ¤â¡¢ÃÏÌÌ¥ª¥Ö¥¸¥§¥¯¥È¤Ï°ÜÆ°¤·¤Ê¤¤(¤µ¤é¤Ë¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢Part.6¤Ç)¡£

* Part.5¡§Player1¤òÍÑ°Õ¤¹¤ë [#udc77a75]

¿·¤·¤¤¥í¡¼¥«¥ëÊÑ¿ô"player"¤òÍÑ°Õ¤·¤Æ¡¢°Ê²¼¤Î¥³¡¼¥É¤òcreate´Ø¿ô¤ËÄɲ乤롣

¼ÂºÝ¤Î¥³¡¼¥É¤Ï¡¢part5.html¤ò»²¾È¡£

    // playerÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢ 'dude'¥¹¥×¥é¥¤¥È¤òÀßÄꤹ¤ë
    player = game.add.sprite(32, game.world.height - 150, 'dude');
 
    //  ʪÍý±é»»¤ò¥ª¥ó¤Ë¤¹¤ë
    game.physics.arcade.enable(player);
 
    //  Player¤ÎʪÍý¥×¥í¥Ñ¥Æ¥£. ¤³¤Î¤Á¤Ã¤Á¤ã¤¤¥ä¥Ä¤Ï¡¢¤¹¤³¤·¤Ð¤«¤ê¥Ð¥¦¥ó¥É¤¹¤ë
    player.body.bounce.y = 0.2;
    player.body.gravity.y = 300;
    player.body.collideWorldBounds = true;
 
    //  º¸±¦¤ËÊ⤯¤¿¤á¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó
    player.animations.add('left', [0, 1, 2, 3], 10, true);
    player.animations.add('right', [5, 6, 7, 8], 10, true);

** ¥¹¥×¥é¥¤¥È¥·¡¼¥È [#r7232d0b]

¤³¤³¤Ç¤Ï¡¢player¥¹¥×¥é¥¤¥È¤òÍÑ°Õ¤·¤Æ¡¢²£32¥Ô¥¯¥»¥ë¡¢¹â¤µ¤Ï¥²¡¼¥à²èÌ̤κDz¼Éô¤«¤é150¥Ô¥¯¥»¥ë¤ËÇÛÃÖ¤·¤Æ¤¤¤ë¡£¤³¤Î"dude"([[¥Ç¥å¡¼¥Ç¥å:http://ejje.weblio.jp/content/dude]])¥¢¥»¥Ã¥È¤Ï¡¢ºÇ½é¤Î¤È¤³¤í¤Ç¥í¡¼¥É¤·¤¿¥ä¥Ä¤À¡£preload´Ø¿ô¤Î¤È¤³¤í¤ò¥Á¥é¥Ã¤È¤Î¤¾¤¤¤Æ¤ß¤ë¤È¡¢¤³¤ì¤¬¥¤¥á¡¼¥¸¤Ç¤Ï¤Ê¤¯¡¢¥¹¥×¥é¥¤¥È¥·¡¼¥È(sprite sheet)¤È¤·¤ÆÆɤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤¬Ê¬¤«¤ë¤À¤í¤¦¡£¤³¤ì¤Ï¡¢Ã±°ì¤Î¥¤¥á¡¼¥¸¤Ç¤Ï¤Ê¤¯¡¢Æ°¤­¤òɽ¸½¤¹¤ë¥¢¥Ë¥á¡¼¥·¥ç¥ó¥Õ¥ì¡¼¥à¤È¤·¤Æ¹½À®¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤À¡£¼ÂºÝ¤Î¥¹¥×¥é¥¤¥È¥·¡¼¥È¤Ï¡¢¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë(¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎÊ£¿ô¤Î¥³¥Þ¤¬¡¢¤Ò¤È¤Ä¤Î²èÁü¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤¤¤ë)¡£

#ref(example_dude.png)

** ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎÄêµÁ [#f6140c56]

¤½¤ì¤«¤é¡¢"left"¤È"right"¤È¤¤¤¦2¤Ä¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òÄêµÁ¤·¤Æ¤¤¤ë(player.animations.add¡¦¡¦¡¦)¡£"left"¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ï¡¢¥¹¥×¥é¥¤¥È¥·¡¼¥È¤Îº¸¤«¤é0, 1, 2, 3ÈÖÌܤޤǤΥ³¥Þ¤ò»È¤¤¡¢1ÉÃÅö¤¿¤ê10¥³¥Þ¤òɽ¼¨¤¹¤ë¡£"true"¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò¤¯¤êÊÖ¤¹¤è¤¦»Ø¼¨¤·¤Æ¤¤¤ë¡£¤³¤ì¤¬¡¢´ðËܤȤʤë¥é¥ó¡¦¥µ¥¤¥¯¥ë¤Ç¡¢¤³¤ì¤òÈ¿ÂЦ¤Ç¤âƱ¤¸¤è¤¦¤ËÄêµÁ¤·¤Æ¤¤¤ë¡£

¤¢¤È¡¢ÊªÍýŪ¤Ê¥Ñ¥é¥á¡¼¥¿¤â¡¢¤¹¤³¤·ÀßÄꤷ¤Æ¤¢¤ë¡£

Note: Phaser¤Ï¡¢¥¹¥×¥é¥¤¥È¤Îȿžµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¥³¥Þ¤òÀáÌó¤Ç¤­¤ë¤±¤ì¤É¡¢¤³¤³¤Ç¤Ï´ðËܤËÃé¼Â¤Ë¤ä¤Ã¤Æ¤¤¤ë¡£

* Part.6¡§ [#ma5a32e6]

* 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