Article for Gamer

XNA Game วิธีแก้ไขให้ ชุดเริ่มต้น เลื่อนฉากได้

หลายคนที่โหลดชุดพัฒนา XNA Game Studio 3.1 มาจะเห็นมามันแถม Platform Stater Kit Source Code ของเกมแนว Platform Side Scrolling (ตลุยด่านแบบด้านข้าง) และลอง Compile ดูจะเห็นว่ามันใช้งานได้ 100% แต่ติดตรงทำไมเรา Edit Level แล้วทำมัย ตัวเกมมันถึง Fixed หน้าจอเดินไปขวาหรือซ้านยสุดก็ชนขอบ ทำไงจะให้ ไปทางซ้ายหรือฉากก็เลื่อนซ้ายขวาต่อ หากมีอาการคันไม้คันมือไม่รู้จะเริ่มยังไง ผมไป ศึกษามาให้แล้วครับ

ก่อนอื่นเลย หากเครื่องของคุณยังไม่ลง XNA Studio 3.0 หรือ 3.1 ให้ไปดาวน์โหลดมาติดตั้ง ก่อนนะครับ
ที่เวป www.xna.com เลยครับ หาไม่เข้าใจก็ไปอ่านบทความย้อนหลังได้ที่นี่ครับ XNA Studio 3.1 คลอดแล้ว!
และ ถ้าอยากรู้ว่า Platform Starter Kit เกมที่แถมมากับชุดพัฒนาเป็นยังไงก็ไปอ่านบทความที่นี่ก่อนครับ
XNA Starter Kit: Platformer แล้วจะรู้ครับ และเป็นประโยชน์ที่จะเริ่ม

ผมได้ไปอ่าน บทความการใช้งาน Library ของ XNA จากที่นี่ครับ http://msdn.microsoft.com
เค้าได้อธิบายอย่างชัดเจนเลยว่าการจะให้มัน Scrolling ฉากหลังแบบ Layer นั้นทำได้ และต้อง Debug
ชุด code เล็กน้อยเท่านั้นเองครับ

เริ่มเลยครับ ให้เราไปเปิดไฟล์โปรเจ็ค ชื่อ PlatformerGame.cs
แล้วทำการแก้ไข code เล็กน้อยครับ โดยไปที่ ฟังก์ชั่น ชื่อว่า Draw แล้วทำการ remove หรือ ลบ code สอง บรรทัดนี้
บรรทัดแรกเลยคือ

และบรรทัดที่สองคือ

ตามตัวอย่างครับ


 

โอเคครับหลังจากนั้น เราก็ไป ที่ ฟังก์ชั่นที่ชื่อว่า DrawHud ครับแล้วไปเพิ่ม Code ที่หน้าตาคล้าย
สองรรทัดที่แล้ว ที่ตรง บรรทัดแรกใรฟังก์ชั่นและ บรรทัดสุดท้ายตอนปิด ฟังก์ชั่น ครับ

ตามตัวอย่าง บรรทัดนี้ ใครที่หา ฟังก์ชั้นไม่เจอก็ทำตามภาพครับ


 

เมื่อเสร็จขั้นตอนนี้แล้วครับ ก็ไปเปิด ไฟล์ที่ชื่อว่า Level.cs ที่โปรเจ็คครับ


ให้ไปแก้ไข Code ที่บรรทัดนี้


จะได้ ดังตัวอย่าง ทั้งฟังก์ชั่นดัง รูปแบบด้านล่างครับ

อ่ะใจเย็นอย่าเพิ่ง งง กันนะครับ ยังไปได้อีก

ในไฟล์ Level.cs นี่แหละครับให้ นำ Code ชุดข้างล่างนี้ไปวางแทนที่ ฟังก์ชั่น Draw  ชุดเก่าเลยครับ

 

แล้วไปจัดการที่ ฟังก์ชั่น DrawTiles  ครับ บรรทัดแรกของฟังก์ชั่นให้แทรก Code ด้านล่าง

 

แล้วไปที่ loop ครับ จะเห็น loop ที่มี loop ซ้อนให้นำ code ด้านล่างนี้ไปวางที inner Loop หรือ Loop X ภายในครับ

เสร็จแล้วให้คุณ เขียนฟังก์ชั่นขึ้นมาใหม่ครับ ตาม code fuction ชุดนี้เลย

 

หนุกหนานพอยังครับมันยังไม่จบ Hilight ของ งานนี้โปล่มาแล้ว เราต้องทำการ Add Class
ใน Project ของเราครับ ตามรูปเลยให้ Add Class ใหม่ขึ้นมาครับ

แล้วให้ตั้งชื่อว่า Layer.cs ครับ

ซึ่งในไฟล์นี้ บน Header ให้คุณใส่ Code ด้านล่าง

 

วิธีทดลองอยากรู้ว่าเกมเราจะ เดินไปสุดจอด้านขวาแล้วฉากจะเลื่อนให้มั้ยก็ไปเปิดไฟล์ Level0.txt ที่

Folder \HighResolutionContent\Levels\0.txt ครับแล้วลองใส่ Sample data ตามข้างล่างนี้ ระวัง! ตรวจสอบดีๆนะครับ

ห้ามมีการเคาะบรรทัดจนเกิด 16 บรรทัดหล่ะ Compile ไม่ผ่านอย่ามาโวยวายนะจ๊ะ

……………………………………………………………………

……………………………………………………………………

………………………G……………………………………….X…

……………………..###……………………………….############

………………….G……………………………………………….

…………………###…………….G.GDG………….G.G.G……………

……………..G………………..#########……….#######…………..

…………….###…………………………………………………..

…………G……………….G.G……………G.G…………………….

………..###……………..#####………….#####……………………

…….G…………………………………………………………….

……###………………………….GDG.G………….G.G.G.G.G.G.G.G.G.G.

………………………………..#########………##.G.G.G.G.G.G.G.G.G..

.1………………………………………………..GCG.G.G.GCG.G.G.GCG.

####################………………………………..####################

เห็นมั้ย สนุกไม่ยากหากใฝ่รู้ ส่วนใครที่ทำยังไง๊ยังไง ก็ไม่ผ่านอาจจะขาดทักษะ ก็ดาวน์โหลด Project
ที่ผมทำไว้แล้ว run ได้ 100%

ไป Rebuild และ Compile ใหม่ดีกว่าเลย
ดาวน์โหลดที่นี่ครับ http://www.daydev.com/project/xna/lession1.zip

Tags

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Leave a Reply

Back to top button
Close
Close

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน