สอนสร้างเกม HTML5 ด้วย Phaser Framework
วันนี้ผมจะพาไปเขียนเกม HTML5 ด้วย PhaserJS กันนะครับ ตัวอย่างเกม เมื่อเขียนเสร็จ จะได้หน้าตาแบบนี้เลย ลองเข้าไปลองเล่นได้
PhaserJS เป็น HTML5 Game Framework ตัวหนึ่ง สร้างโดย Photo Storm ซึ่งสามารถสร้างเกมส์แบบ Cross-Browser ได้ สามารถทำงานร่วมกับ Browser บนมือถือได้ (ที่รองรับ Canvas) และ Browser บน Desktop ได้ จุดเด่นของ PhaserJS คือ มี Module และ Features ให้เลือกใช้มากมาย สามารถประหยัดเวลาในการสร้างเกมๆหนึ่ง
ตัว PhaserJS เขียนด้วย Javascript หากต้องการใช้งาน PhaserJS ควรจะมีความรู้พื้นฐานในส่วน Web Development มาบ้าง ส่วน Features ของมันมีอะไรบ้าง ก็ดูตามรูป หรือเข้าไปดูที่เว็บหลักได้เลยครับ

ก่อนที่จะเริ่มต้นสร้างโปรเจ็ค ก็ขอแนะนำลิงค์ต่างๆ ที่น่าจะมีประโยชน์ เอาไว้อ่านประกอบครับ
Table of Contents
- Step 1 : Prepare & Setup Project
- Step 2 : Download Phaser & Game Assets
- Step 3 : Create Game
- Step 4 : Load Assets
- Step 5 : Create Game World
- Step 6 : Add Player
- Step 7 : Control Player
- Step 8 : Add coins
- Step 9 : Check Overlap
- Step 10 : Add Score
- Bonus Track
Step 1 : Prepare & Setup Project
ขั้นตอนแรกเลย ต้องเตรียมตัวที่จะใช้งาน PhaserJS นั้นจะต้องเตรียมตัวอะไรบ้าง? เริ่มที่
-
Text Editor : หา Text Editor ซักตัว ไม่ว่าจะเป็น Sublime Text 2/3, Notepad++, WebStorm, Brackets, Atom หรืออื่นๆ
-
Browser : อันนี้คาดว่าน่าจะมีทุกคน Chrome หรือ Firefox (ไม่แนะนำ IE)
-
Web Server : จะเป็น Apache หรือ nginx ก็ได้ หรือจะลงผ่าน WAMP, XAMPP, LAMP ก็ตามสะดวก ใครไม่รู้วิธีติดตั้ง ก็ตามนี้ครับ
- ขั้นตอนการติดตั้ง Apache, MySQL, PHP บน Ubuntu ส่วนถ้าเป็น OS อื่นก็ไปหาวิธีทำเองนะครับ ส่วนนี้ไม่ได้อยู่ในบทความ
- หากใช้ PHP เวอร์ชัน 5.4 ขึ้นไป รู้สึกก็จะมี Built-in Web Server อยู่
cd /path/to/yourgame/php -S localhost:8000- หากใช้ Python ก็ใช้ Simple HTTP Server ไ้ด้เลย
สำหรับ Python 2
cd /path/to/yourgame/python -m SimpleHTTPServer portNumberสำหรับ Python 3
cd /path/to/yourgame/python3 -m http.server portNumberStep 2 : Download Phaser & Game Assets
หลักจากที่เตรียมพร้อมเรียบร้อยแล้ว ต่อมาก็ทำการสร้างไฟล์ index.html ขึ้นมา 1 ไฟล์ จากนั้นทำการดาวน์โหลดไฟล์ phaser.js เวอร์ชันล่าสุด (2.0.7) เซฟไว้ที่เดียวกันกับ index.html ต่อมาก็สร้างไฟล์ main.js ขึ้นมา ไฟล์นี้คือไฟล์ที่เราจะใช้เขียนเกม ตอนนี้ในโปรเจ็คเรา จะมี 3 ไฟล์แล้ว (ผมโหลดตัว phaser.js ไม่ใช้ตัว phaser.min.js เนื่องจากต้องการดูโค๊ด รวมถึง Docs มันด้วย)
├── index.html├── main.js└── phaser.jsถัดมา ที่ไฟล์ index.html เพิ่มโค๊ด HTML ลงไป โดย div id="game"> คือส่วนที่เราจะใช้ในการโชว์ตัวเกมเรานะครับ (ผมไม่พูดถึงรายละเอียด HTML นะครับ บทความนี้ assume ว่าทุกคนมีพื้นฐาน Web แล้ว)
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" /> <title>PhaserJS Game Tutorial by Devahoy</title>
<style> body { margin: 50px 0 0 0; background: #ececec; } a { color: #e25e5e; } .container { text-align: center; color: #fff; } #game canvas { margin: 15px auto; } </style>
<script type="text/javascript" src="phaser.js"></script> <script type="text/javascript" src="main.js"></script> </head> <body> <div class="container"> <h1> <a href="https://devahoy.com">HTML5 Game Tutorial with PhaserJS</a> </h1> <div id="game"></div> </div> </body></html>