Game Interface with DarkBasic Pro ตอนที่2
2010-06-27 Games 2,987Code ในส่วนของการแสดงผล interface
1 เริ่มจากการแบ่งพื้นที่ส่วนของการเขียน code ดังนี้
คำสั่ง rem คือการเขียนคอมเม้น ซึ่งตัวโปรแกรมจะไม่อ่านข้อความที่อยู่ด้านหลังของคำสั่งนี้ตลอดบรรทัด
Setting : คือส่วนที่เราตั้งค่าต่างๆของตัวเกม
Object Number : เลขประจำตัวของ Object
Image Number : เลขประจำตัวของ Image, Sprite (เลขของ Image และ Sprite จะแยกกันคือซ้ำกันได้นั่นเอง)
Sound Number : เลขประจำตัวของ Sound, Music (เลขของ Sound และ Music จะแยกกันคือซ้ำกันได้นั่นเอง)
Value : ส่วนของการตั้งค่าเริ่มต้นให้กับตัวแปรต่างๆ
Load Resource : ส่วนของการโหลด ทุกๆสิ่งต้องถูกโหลดก่อนการใช้งาน
Main Loop : การทำงานหลักซึ่งโปรแกรมจะเรียกใช้ตลอด
Procedure : การทำงานที่ต้องถูกเรียกใช้จากโดยคำสั่ง gosub หรือ goto ก่อนถึงจะทำงาน (ซึ่งอาจเป็นลูปย่อยที่ใช้เฉพาะงาน)
Function : ส่วนของฟังชั่น
2 ส่วน Setting
เมื่อเรากดที่คำสั่ง Setting ที่อยู่ด้านขวาล่างของโปรแกรม จะมีให้เลือกการแสดงผลหน้าต่างของโปรแกรมขึ้นมาทางด้านขวามือ
ในส่วนของพื้นที่ Code เบื้องต้นเป็นดังนี้
Make Memblock เป็นการจองพื้นที่ Memory ไว้ให้ตัวโปรแกรม
Set Text Size กำหนดขนาดของตัวอักษร
Set Text Font กำหนด Font ที่ต้องการใช้
Set Text To Bold กำหนดให้ตัวอักษรเป็นแบบหนา
*** หากเรานำ Curcer ไปไว้ด้านหลัง Code คำสั่งใดๆ และกด F1 ตัวโปรแกรมจะแสดงคู่มือ อธิบายคำสั่งนั้นๆ
3 ใส่ Number และ Load
เป็นขั้นตอนที่สำคัญ และเป็น error ของ โปรแกรมที่พบบ่อยมาก คือ การลืมใส่เลขกำกับสิ่งที่เราต้องการ Load มาใช้ในตัวเกม การโหลดจะเห็นได้ว่า เราสามารถโหลดภาพโดยคำสั่ง Load image ซึ่งนอกจากการโหลด image แล้ว ยังมีการโหลด object , sound , music และอื่นๆอีกด้วย
สำหรับการโหลด image นั้น เราต้องวางกรอบของรูป ( sprite ) ให้กับรูปที่เราโหลดไว้ โดยคำสั่ง sprite ซึ่งกรอบของรูปนี้ จะถูกนำไปใช้ สำหรับการเช็คการชนระหว่าง sprite กับ sprite เมื่อทำการโหลดทั้งหมดแล้ว ใช้คำสั่ง Hide all sprites เพื่อซ่อนสิ่งที่เราโหลดไว้ก่อนที่จะเรียกใช้งานในลำดับต่อไป
4 เข้าสู่ Main Loop
ในส่วนของ Main Loop เราจะเริ่มต้นด้วย Do จบลงด้วย Loop เป็นการทำงานจากด้านบนเรียงลงด้านล่างและเมื่อจบบรรทัดสุดท้ายก็จะกระโดด กลับขึ้นไปทำงานด้านบนใหม่อีกครั้ง วนซ้ำไปอยู่แบบนี้
คำสั่ง Gosub เป็นการสั่งให้โปรแกรมกระโดดไปเรียกใช้ Code ในส่วนของ Procedure ที่เราแยกไว้ ซึ่งประโยชน์คือทำให้ Code ภายใน Main Loop ไม่รกตาและยังง่ายต่อการแก้ไข หรือนำมาใช้เพื่อแบ่งย่อยการทำงานเป็นกลุ่มต่างๆ
คำสั่ง Text เป็นการแสดงผลตัวอักษร พิกัด X , พิกัด Y , ค่าที่ต้องการแสดง
ข้อความที่เราต้องการแสดงจะต้องเขียนอยู่ระหว่างเครื่องหมาย "..." หรือ เก็บไว้ในรูปตัวแปรแบบข้อความ ( ตัวแปร Str$ ) และใช้เครื่องหมาย + เป็นตัวเชื่อมกรณีมีข้อความหลายๆข้อความ
Str$( ) เป็นคำสั่งที่ทำให้ข้อมูลที่ส่งเข้ามากลายเป็นข้อมูลชนิดข้อความ
mousex( ) คือพิกัดของเมาส์ในแกน X เมื่อนำมาใส่ไว้ใน Str$ ( ) ค่าที่ถูกส่งออกมาจะเป็นข้อมูลชนิดข้อความ
ScanCode( ) คือคำสั่งที่รับค่าตัวเลขของแป้นพิมพ์ที่เราทำการกดใช้ เช่น ปุ่ม Esc มีค่า ScanCode ( ) = 1
MouseClick( ) คือคำสั่งที่ส่งค่าตัวเลขของการกดเมาส์แบบต่างๆ หากไม่มีการคลิ๊กจะมีค่าเป็น 0
ในส่วน Procedure นั้นทุกๆอันจะอยู่ในรูป
Procedure Name:
...
...
return
โดยคำสั่ง return จะเป็นการกระโดดกลับไปยังจุดที่มีการเรียกใช้ Procedure นี้
คำสั่ง Paste Sprite คือการแสดง Sprite ออกมา โดยต้องบอกพิกัด X,Y ซึ่งอาจจะไม่ต้องตรงกับพิกัดที่เราทำไว้ในขั้น Load ก็ได้ แต่หากเราเขียนเลขพิกัดไม่ตรงกับที่เรากำหนดไว้ในตอนแรก จะมีปัญหาเมื่อเราต้องการจะเช็คการชนของ Sprite มัน จะไปเช็คกับพิกัดที่เราตั้งไว้ในขั้น Load
จากนั้นให้กด F5 เพื่อเป็นการสร้างไฟล์ exe และ run โปรแกรม หากไม่มีการติด error ใดๆ
กด Esc เมื่อต้องการออกจากหน้าจอโปรแกรม
game interface design | Darkbasic Tutorials