ภาษา C# เริ่มต้นเขียนเกมส์โดย xna framework

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

หลังจากที่ใช้เวลากับการนั่งมั่วเขียนเกมส์โดยใช้ xna framework ซึ่งเขียนกับ visual c# ผมก็เขียนได้ออกมาเกมส์น่าเกลียดออกมาเกมส์หนึ่งเลยคิดว่าลองเขียนบทความเกี่ยวกับการเขียนเกมส์โดย xna framework โดยเริ่มแรกให้สร้าง project ใหม่โดยเลือกเป็น visual c# แล้วเลือก XNA Game Studio 3.1 โดยขั้นแรกสุดเลือกคือ ติดตั้ง xna framework ซึ่งโหลดได้จาก http://creators.xna.com/en-US/?? หลังจากที่เราเลือก Windows Game(3.1) แล้วก็ตั้งชื่อตามต้องการ

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

เมื่อสร้างเสร็จสังเกต Solution Explorer จะเห็นตามรูปนี้

ส่วนหลักก็มี Content ซึ่งเอาเก็บไฟล์โมเดล ภาพ และเสียงที่เราจะใช้ในเกมส์

Game1.cs คือไฟล์หลักในการควบคุมการทำงานของเกมส์เรา

References เอาไว้เพิ่มไลบารี่หรือไฟล์คลาสอ้างอิงต่างๆ

ส่วน Game.ico คือ icon ของเกมส์เรา

ต่อมาก็มาดูไฟล์ Game1.cs ว่ามี method อะไรบ้างอันแรกคือ

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

อันแรกก็เป็น constructor เพื่อเป็นตัวกำหนดการค่าเริ่มต้นของ class Game1 ซึ่งจะเห็นว่า Content.RootDirectory = ?Content? ซึ่ง Content คือที่เอาไว้เก็บไฟล์โมเดลและเสียงของเรานั้นเอง

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

ต่อมาคือ method LoadContent() เอาไว้ทำการโหลดไฟล์ โมเดลและเสียงเข้ามาในเกมส์โดยเป็นการกำหนดว่า ตัวละครในเกมส์ตัวไหนใช้ โมเดลอะไร ส่วนอีก method คือ UnLoadContent() ก็จะเป็นตรงกันข้ามคือยกเลิกการโหลดไฟล์ต่างๆนั้นเอง

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

ต่อมาคือ method Update เอาไว้เขียนเหตุการณ์ update เปลี่ยนแปลงในเกมส์เช่นเวลากดปุ่มนี้แล้วจะเกิดอะไรขึ้น

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

สุดท้ายคือ method Draw เอาไว้วาดภาพหรือโมเดลที่เรากำหนดไว้ออกทางหน้าจอนั้นเอง เมื่อพอเข้าใจคราวๆแล้วก็ลองรันดูว่าโปรแกรมได้ติดตั้งสมบูรณ์หรือไม่ซึ่ง xna สามารถใช้งานกับ visual c# เวอร์ชัน express ได้นะครับ

สอน c#, สอน xna, เขียนเกมส์, เขียน visual c#

ก็จะได้จอฟ้าดังภาพ ที่นี้นอกเรื่องมาดูเกมส์ที่ผมลองเขียนดูบ้าง

เกมส์นี้ผมจะพัฒนาต่อไปแล้วก็จะเอาความรู้มาเขียนเป็นบทความใครอยากลองเล่นดูก็สามารถดาวโหลดกันได้เป็นเวอร์ชั่น alpha อยู่เลย

Download Thaicoding Game

Leave a Reply

Your email address will not be published. Required fields are marked *