สรุป Bullet ML
172 views |
อ้างอิงจาก BulletML Reference
BulletML พัฒนาอยู่บน XML เลยมีรูปแบบเหมือนกัน ถ้าเคยเขียน XML หรือเคยเขียน HTML มาแล้วก็คงพอจะเก็ตมาบ้าง พวกนี้จะต่างกับภาษาโปรแกรมมิ่งทั่วไปเพราะเน้นเก็บข้อมูลอย่างเดียว
เวลาจะเขียนโค้ด BulletML จะเริ่มจากใช้แท็ก <bulletml> ครอบ เช่น
<bulletml type=”none|vertical|horizontal”>
Type จะกำหนดว่ากระสุนสำหรับจอแบบไหน
โดยข้างในแท็ก <bulletml> จะแบ่งเป็น <bullet> <action> <fire>
แท็ก <bullet> ไว้สร้างกระสุน
เช่น <bullet label=”ชื่อกระสุน”>
ข้างในแท็ก <bullet> บังคับให้มี <direction> กับ <speed> โดยสามารถกำหนด <action> ได้
**หมายเหตุ** เราสามารถสร้าง <action> โดยกำหนดชื่อให้กับมัน แล้วเอามาเรียกใช้จากที่อื่นผ่าน <actionRef> ได้
——————————-
แท็ก <action> เอาไว้กำหนดรูปแบบการเคลื่อนไหว
ตั้งชื่อด้วย attribute label=”ชื่อ”
ส่วนของที่ใส่ข้างในได้ มีให้เลือกจากตรงนี้ repeat | fire | fireRef | changeSpeed | changeDirection | accel | wait | vanish | action | actionRef
โดย action แต่ละแบบก็มี Argument ที่ต้องให้ไม่เหมือนกัน ส่วนวิธีการใส่ action ก็ใส่เรียง ๆ กันมาตามลำดับเลย เช่น
<action>
<changeSpeed> (Argument ของ changeSpeed) </changeSpeed>
<wait> (Arg ของ wait) </wait>
<changeSpeed> (argument ของ changeSpeed) </changeSpeed>
</action>
แท็ก <fire> ไว้สั่งยิงกระสุน
โดยต้องให้ arg เป็น direction, speed, แล้วก็ bullet ที่จะยิง (ถ้าจะยิงตัวเองใช้ <bullet/> ถ้ายิงกระสุนอื่นใช้ <bulletRef label=”ชื่อกระสุน”>
แท็ก <changeDirection> ไว้เปลี่ยนทิศทางกระสุน
โดย arg เป็น direction และ term (จำนวนเฟรมที่ใช้ในการเปลี่ยน direction คือ เปลี่ยนช้า ๆ หรือเปลี่ยนเร็ว ๆ)
แท็ก <changeSpeed> เปลี่ยนความเร็วกระสุน
arg เป็น speed กับ term คล้าย ๆ อันบน
แท็ก <accel> เร่งความเร็ว
arg เป็น vertical, horizontal (เร่งความเร็วในแกนไหน) และ term
แท็ก <wait> รอเวลา
ใส่เลขบอกจำนวนเฟรมที่จะหยุดไปเลย เช่น <wait>5</wait> หยุด 5 เฟรม
แท็ก <vanish/> ทำให้กระสุนหายไป
แท็ก <repeat> เอาไว้สั่ง repeat การเคลื่อนไหว
โดยด้านในใส่ <times> เป็นจำนวนครั้งที่ลูป และ <action> หรือ <actionRef> เพื่อบอกว่าจะลูปอะไร
—————————————–
ต่อไปเป็นลิสต์ของแท็กต่าง ๆ ที่ใช้ในแท็กเกี่ยวกับ Action ด้านบน
แท็ก <direction> ใช้กำหนดทิศทาง โดยกำหนด type= ได้
ด้านในใส่เลของศาทิศทาง
Type: aim แปลว่าเล็งจากตำแหน่งยานเรา โดย 0 คือตรงกะยานเรา หมุนตามเข็ม
Type: absolute แปลว่าเล็งจากทิศ 12 นาฬิกา เป็น 0 หมุนตามเข็ม
Type: relative แปลว่าให้เทียบจากทิศทางที่กระสุนนี้กำลังพุ่งไป
Type: sequence แปลว่าเทียบจากทิศทางของการสั่งยิงครั้งล่าสุด
แท็ก <speed> กำหนดความเร็ว โดยกำหนด type= ได้
ด้านในใส่เลขความเร็ว
Type: relative เทียบกับความเร็วตอนนี้ของกระสุน
Type: sequence ความเร็วเทียบกับการยิงครั้งที่แล้ว (แต่ตอนใช้กับ changeSpeed นี่ไม่ชัวร์)
แท็ก <horizontal> ไว้กำหนดการเร่งความเร็วแนวนอน
ด้านในใส่เลข
กำหนด Type ได้ดังนี้
Type: relative เทียบกับความเร่งในตอนนี้ แต่ถ้าเป็น sequence -> the acceleration is changing successively (อันนี้ไม่เก็ต T^T)
แท็ก <vertical> เหมือนอันข้างบนเรย
แท็ก <term> ไว้ใส่ในแท็กอื่น ๆ ปกติเอาไว้ใช้กับจำนวน frame ที่แสดงผล
แท็ก <times> ไว้ใช้กำหนดจำนวนครั้ง ในแท็ก <repeat>
————————————–
แท็กที่เอาไว้อ้างอิงต่าง ๆ
<bulletRef label=”ชื่อกระสุน”/>
<actionRef label=”ชื่อaction”/>
<fireRef label=”ชื่อการfire” />
สามแท็กข้างบน ส่ง Parameter ข้างในได้ แบบ
<bulletRef label=”name”><param>เลข Parameter</param></bulletRef>
โดย <param> จะไปถูกใส่ใน $1, $2, $3 ถ้าเรามีการกำหนดใน bullet, action, หรือ fire อันที่เรียกใช้
—————————–
การใส่เลขในแท็กต่าง ๆ สามารถใส่ได้ทั้งเลขปกติ (60)
สมการคำนวณ (360/5)
ใส่วงเล็บได้ —> (360+5)*2
ใส่ตัวแปร $1,$2, .. สำหรับ Parameter ได้ เช่น (2+$1)*5
ใส่ $rand โดยจะสุ่มระหว่าง 0 ถึง 1
ใส่ $rank โดยจะถูกแทนที่ด้วยความยากของเกม (ระหว่าง 0 ถึง 1) –> หาที่กำหนดความยากไม่เจอ??






ยังไม่มีคอมเม้นท์ | คุณสามารถ โพสคอมเม้นท์ หรือ Ping
อ่านหัวข้อ “สรุป Bullet ML” แล้วชอบไม่ชอบยังไง คอมเม้นท์ด้านล่างนี้ได้เลยครับ รับรองว่าตอบทุกคอมเม้นท์