บทเรียนการพัฒนาเกมด้วย SDL และ C++ ครั้งนี้จะเป็นการเล่นกับ Mouse และโหลดภาพ Format ที่ต่างจาก BMP นั่นคือเราจะมี Library ในการโหลดภาพ นามสกุลอื่นๆและเราต้องแก้ไขในส่วน Environment ของ DevC++ อีกที ก็หลังจากที่เราได้ศึกษาการโหลดภาพ sprite และ Backgrouds
มาแล้วในบทความ ซึ่งหากใครที่งงว่าจะเริ่มยังไงไปึกฝน และ ตั้งค่ากันเริ่มต้นก่อนที่นี่ เส้นทางการเป็นนักพัฒนาเกม: ติดตั้ง DevC++ และ SDL เพื่อพัฒนาเกม ไปแล้วครั้งนี้เราก็จะเริ่มต้นเขียนโปรแกรมเรียกใช้งาน รูปภาพจาก ไฟล์มาโชว์ และ ใช้วิธีการวางภาพ วัตถุให้อยู่บน ภาพแบล็คกราวน์ (Backgroud and Sprite) ซึ่งหากทำไปแล้วจะ Compile โปรแกรมออกมาได้ดังรูปภาพตัวอย่างของบทความ
ครั้งนี้คุณต้องมีการติดตั้ง Extension เสริมสำหรับ IDE อย่างเจ้าตัว DevC++ ครับ
ซึ่งเราจะต้องทำความรู้จักกับ Libraay เสริมเรื่องของ Images และ นามสกุลอื่นๆ อย่างเจ้า Librarry ตัวนี้ ที่มีชื่อว่า SDL_image ครับ ก่อนอื่นเลยต้องไปดาวน์โหลดเจ้าไฟล์ Librarry ก่อนที่นี่ครับ
http://www.libsdl.org/projects/SDL_image/
เมื่อเข้าไปที่หน้าเว็บไซต์ของ SDL_image แล้วให้ทำการเลือกดาวน์โหลด ชุดพัฒนา Platform ครับซึ่งผมใช้ Windows ในการพัฒนาก็ต้องเลือก Package ดังนี้

ดาวน์โหลดมาเลยครับแล้วทำการแตกไฟล์ ออกมาจะได้ โฟล์เดอร์ และ ข้าางใน หน้าตาประมาณนี้

ให้เข้าไป Copy file SDL_image.h ไปไว้ใน โฟล์เดอร์ SDL ในส่วนของ include\SDL ซึ่งในเครื่องผมผมวางไว้ที่
C:\SDL\SDL-1.2.14\include\SDL
หลังจากนั้นก็วาง paste file ลงใน Folder SDL หลัก

สร้างโฟล์เดอร์ใหม่ขึ้นมาเป็นโฟล์เดอร์ที่คุณจะสร้างเกมของคุณ แล้วทำการ copy file ภายใน โฟล์เดอร์ LIB ของ SDL_image ไปไว้ในโฟล์เดอร์สร้างเกมของคุณ

สร้างโปรเจ็คใหม่ขึ้นมา

แก้ไขในส่วน Project Option ให้เพิ่ม Parameter เข้าไปใส่ว่า -lSDL_image

สร้างไฟล์ขึ้นมา ดาวน์โฆลดรูปภาพนี้ ไปไว้ใน โฟล์เดอร์และที่สำคัญอย่าลืม Copy File SDL.dll ไปไว้ในโฟล์เดอร์ของคุณ
ไฟล์รูปภาพ
http://www.daydev.com/images/stories/sdl-l2/button.png
และพิมพ์ Code ตามไฟล์ด้านล่างนี้
http://www.daydev.com/images/stories/sdl-l2/lesson09.txt
ทดสอบลอง คอมไพล์โปรแกรมดู ว่ามี Bug หรือไม่

รันโปรแกรมดูจะเห็นผลทันที

สามารถดาวน์โหลดตัวอย่าง ไปลองเล่นได้ที่นี่ครับ
http://www.daydev.com/download/lesson2.zip
ไว้มีเวลาว่างแล้วจะมาอธิบาย code ทีละบรรทัดนะครับ ยกเครดิต บทความ และ Librarry research ให้ Lazy Fool Website ครับ
nomad™ หรือ นุ้ย Daydev

