แสดงบทความที่มีป้ายกำกับ bullet แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ bullet แสดงบทความทั้งหมด

วันเสาร์ที่ 5 มีนาคม พ.ศ. 2559

construct 2 : ยิงปืนใหญ่แบบโพรเจกไทล์


เกมยิงปืนใหญ่ เป็นเกมที่คลาสสิคมากในสมัยก่อน แต่เป็นเกมที่ฝึกสมองอย่างหนึ่ง บางทีก็อาจช่วยในการเรียนรู้วิชาฟิสิกส์อีกด้วยครับ แต่ที่จะนำเสนอวันนี้ คือ การกำหนดค่ามุมและความเร็วของกระสุนปืนที่ยิงไป ซึ่งจะเปลี่ยนแปลงไปตลอดการเล่นเกม

การเคลื่อนที่แบบโพรเจกไทล์  เป็นการเคลื่อนที่ของวัตถุ โดยมีแนวการเคลื่อนที่เป็นแนวโค้ง  ตัวอย่าง : การเคลื่อนที่ของลูกธนู กระสุนปืนใหญ่ การเคลื่อนที่ของลูกเทนนิส การเคลื่อนที่ของลูกบอลที่ถูกเตะโด่ง

ลงมือสร้างเกมกันเลย สร้างโปรเจคใหม่ขึ้นมา  กำหนดขนาด window size เท่ากับ 800, 480  และ layout size เท่ากับ 800, 480
แทรกพื้นดินสำหรับตั้งปืนใหญ่ กำหนดคุณสมบัติเป็นแบบ solid อาจจะเพิ่มฉากหลังด้วยก็ได้นะครับ เพื่อความสวยงามของเกม




แทรกวัตถุปืนใหญ่ แบบ sprite เข้ามาในเกม โดยกำหนด image point 1 ที่ปลายกระบอกปืน แล้วนำมาลงในเกมที่ตำแหน่งมุมด้านขวา



ต่อไปสร้างกระสุนปืนใหญ่ ด้วยการแทรกวัตถุแบบ sprite เข้ามาในเกม ตั้งชื่อเป็น bullet และกำหนดพฤติกรรม behaviorsแบบ bullet โดยกำหนดให้ gravity = 20  กำหนด size เป็น 15,15 และวางไว้นอกพื้นที่เกม



เพิ่ม slider bar เข้ามาในเกม เพื่อใช้ปรับความเร็วของกระสุน โดยตั้งชื่อว่า speedbar กำหนด property ดังนี้
value = 100 กำหนดค่าเริ่มต้นของ slider bar
minimum =0 กำหนดค่าต่ำสุดของ slider bar
maximum = 150 กำหนดค่าสูงสุดของ slider bar
step = 5 กำหนดค่าช่วงข้อมูลของ slider bar
เพิ่ม slider bar เข้ามาในเกมอีกหนึ่งตัว เพื่อใช้ปรับมุมของปืนใหญ่ โดยตั้งชื่อว่า anglebar กำหนด property ดังนี้
value = 300 กำหนดค่าเริ่มต้นของ slider bar
minimum =270 กำหนดค่าต่ำสุดของ slider bar
maximum = 360 กำหนดค่าสูงสุดของ slider bar
step = 1 กำหนดค่าช่วงข้อมูลของ slider bar
จัดวาง และเพิ่ม text เพื่อความสวยงาม



เพิ่มวัตถุแบบ Mouse เข้ามาในเกม เพื่อใช้ควบคุมการทำงานและยิงกระสุนปืน
กำหนดคำสั่งสำหรับการทำงาน ดังนี้



ทดสอบการเล่นเกม จะพบว่า เมื่อเราปรับความเร็วของกระสุนหรือปรับมุมในการยิงของปืนใหญ่ ระยะที่กระสุนพุ่งไปจะแตกต่างกัน ซึ่งเป็นไปตามหลักการของการเคลื่อนที่แบบโพรเจกไทล์ หลักการนี้สามารถนำไปประยุกต์ในการสร้างเกมได้หลากหลาย ของให้สนุกกับการสร้างเกมนะครับ

วันจันทร์ที่ 11 มกราคม พ.ศ. 2559

Construct 2 : ปืนคู่

จากบทความก่อนหน้านี้ ได้กล่าวถึงการสร้างเกมแนวยิงกระสุนปืนไปแล้ว แต่ก็มีหลายคนบอกว่า ขอแบบปืนโหดๆ มีไหม ผมก็บอกไปว่า แนวโหดๆ ผมไม่ค่อยถนัดนัก เพราะดูจากหน้าตาแล้วค่อยข้างจะอ่อนโยน (หัวเราะ) ก็เลยบอกไปว่าจะแนะนำการสร้างปืนที่ยิงพร้อมกันทีละสองกระบอกก็แล้วกัน

ปืนที่จะขอนำเสนอ เป็นปืนจากเครื่องบินขับไล่ก็แล้วกันนะครับ ก่อนอื่นก็ต้องสร้างเครื่องบินขึ้นมาก่อน โดยการ insert new object เลือก sprite และตั้งชื่อว่า Fighter


เทคนิคเล็กน้อย อาจจะมีคนสงสัยว่าทำไมต้องวาดภาพหรือกำหนดภาพให้เครื่องบินชี้หัวไปทางขวามือ ทำไมไม่ชี้หัวขึ้น หลักการตรงนี้คือ ต้องกำหนดมุมของเครื่องให้เริ่มที่ 0 องศา เมื่อบังคับให้เครื่องบินเคลื่อนที่และหมุน จะทำให้ได้มุมและทิศทางที่ถูกต้อง


กำหนดค่า มุมของเครื่องบินขับไล่ให้เป็น 270 เพื่อให้เครื่องบินมีทิศทางตั้งขึ้น


เมื่อได้เครื่องบินแล้ว ต่อไปต้องสร้างกระสุนที่จะยิงออกมาจากเครื่องบิน ทำการ insert new object เลือก sprite ขึ้นมาอีกตัว ตั้งชื่อว่า bullet แล้วปรับขนาดให้เหมาะสมกับเครื่องบิน แล้วย้ายไปวางไว้นอกพื้นที่ของเกม


กำหนด behaviors ให้กับ bullet เป็นแบบ Bullet และ DestroyOutsideLayout


กำหนดคุณสมบัติ Behaviors ของกระสุน ให้มี speed เป็น 150


ขั้นตอนต่อไป insert mouse เข้ามาในเกม โดยการ insert new object แล้วเลือก mouse


กำหนด image points ของเครื่องบิน เพื่อเป็นจุดสำหรับสร้างกระสุนให้พุ่งออกไป โดย ดับเบิลคลิกที่เครื่องบินให้เปิดหน้าต่างแก้ไขภาพขึ้นมา เลือกเครื่องมือ set origin and image points
คลิกที่ เครื่องหมายบวก จะได้ Imagepoint1 ขึ้นมา แล้วนำเมาส์ไปคลิกที่ตำแหน่งปืนของเครื่องบิน สังเกตุจุดที่เป็นสี่เหลี่ยม


ทำลักษณะเดียวกันกับจุดของปืนหมายเลขสอง


กำหนดเหตุการณ์ เพื่อให้เครื่องบินยิงกระสุน เมื่อมีการคลิกเมาส์ โดย add event ขึ้นมา ดังนี้
คลิก add event แล้วเลือก mouse


เลือกเหตุการณ์ on click


เลือกการคลิกสำหรับปุ่มซ้ายของเมาส์


เพิ่ม add action เลือกวัตถุ Fighter แล้วคลิก Next


เลือกคำสั่ง Spawn another object แล้วคลิก Next


คลิกเลือก Object เป็น bullet  และกำหนด Image point เป็น 1 คือ ตำแหน่งของปืนกระบอกที่ 1


เพิ่ม add action อีกครั้งตามขั้นตอนเดิม แต่ให้เปลี่ยน Image point เป็น 2  คือ ตำแหน่งของปืนกระบอกที่ 2


จะได้คำสั่ง ดังนี้


เมื่อทดลองเล่นเกม จะพบว่า เมื่อคลิกปุ่มซ้ายของเมาส์ เครื่องบินจะยิงกระสุนออกไปจากปืนทั้งสองข้างของปีกเครื่องบิน



เพิ่มเติมอีกนิด สำหรับการหมุนเครื่องบินให้ยิงกระสุนไปตามทิศทางของการเคลื่อนเมาส์ สามารถกำหนดคำสั่งได้ดังนี้
เพิ่มเหตุการณ์ add event เลือก System และ Every tick
เพิ่มการทำงาน add action เลือกวัตถุ Fighter แล้วคลิก Next


เลือกคำสั่ง Set angle toward position


กำหนดค่าตำแหน่ง X และ Y เป็นตำแหน่ง XY ของเมาส์


จะได้คำสั่ง ดังนี้


เมื่อทดสอบการเล่นเกม เครื่องบินจะหมุนไปตามทิศทางของเมาส์ และยิงกระสุนออกไปในทิศทางนั้น
ลักษณะของการสร้างเกมส์ ที่มีการยิงกระสุนแบบนี้ สามารถประยุกต์ใช้ได้หลากหลาย เช่น การยิงที่มีกระสุนแตกต่างกัน การสั่งยิงจากปืนหลายกระบอก เป็นต้น ขอให้สนุกกับการสร้างเกมนะครับ


วันเสาร์ที่ 21 พฤศจิกายน พ.ศ. 2558

Construct 2 : Bullet ยิงกระสุน ตอนที่ 2

ขั้นต่อไป สร้างกระสุนขึ้นมา ด้วยการ Insert new Object ตั้งชื่อว่า missile


แล้ววางไว้นอกพื้นที่ของเกม


กำหนดพฤติกรรม Behavior เป็นแบบ Bullet และกำหนดให้ทำลายตัวเองเมื่อออกนอกพื้นที่ของเกม


กำหนดจุดของการเริ่มต้นยิงกระสุนหรือปลายกระบอกปืนของจรวด โดยดับเบิลคลิกที่จรวด แล้วกำหนดจุด



คลิกที่เครื่องหมายบวก เพื่อเพิ่มจุดที่ได้กำหนดเข้าไปในวัตถุ


ต่อไปทำการยิงกระสุนเมื่อกดปุ่ม Space bar
กำหนดการกระทำที่ event sheet เพิ่ม event ให้ โดยเลือก keyboard


เลือกเหตุการณ์แบบ Key is down


กำหนดเหตุการณ์สำหรับการกดปุ่ม Space bar


กำหนดการกระทำโดยให้วัตถุจรวดยิงกระสุน เลือกวัตถุจรวด


เลือกคำสั่ง Spawn another object


กำหนดวัตถุที่จะ spawn คือ missile และจุดที่จะสร้างคือ image point 1


เมื่อทดลองเล่นเกม แล้วกดปุ่ม space bar กระสุนก็จะถูกยิงออกมาจากจรวด




Construct 2 : Bullet ยิงกระสุน ตอนที่ 1

Bullet หรือกระสุนที่จะกล่าวถึงนี้ ไม่ได้หมายถึงการสร้างกระสุนให้ยิงจากปื่นอย่างเดียว Bullet ที่กล่าวถึงนี้คือพฤติกรรม หรือ  Behavior ของวัตถุในเกม พฤติกรรมแบบ Bullet นี้จะเป็นการกำหนดให้วัตถุเคลื่อนที่ไปในทิศทางที่เป็นเส้นตรงตามมุมที่กำหนด ส่วนมากจะใช้ในการยิงกระสุนปืนหรือยังก้อนพลัง แต่ก็มีการประยุกต์มาใช้ในการเคลื่อนที่อัตโนมัติของตัวละครในเกมที่ให้เคลื่อนที่ไปข้างหน้าเสมอ



คุณสมบัติของ Bullet
Speed คือ ความเร็วเริ่มต้นของกระสุน หลายเป็น พิกเซลต่อวินาที
Acceleration คือ อัตราเร่งของกระสุน ถ้ากำหนดเป็น 0 ความเร็วจะคงที่ ถ้ากำหนดเป็นบวกจะเคลื่อนที่ด้วยอัตราเร่งเพิ่มขึ้น  ถ้ากำหนดเป็นลบ จะมีอัตราเร่งลดลง จนความเร็วเป็น 0 และหยุดนิ่ง
Gravity คือ ค่าแรงโน้มถ่วงของโลก ที่จะกระทำกับกระสุนที่เคลื่อนที่ทำให้ความเร่งลดลงและเคลื่อนที่เป็นเส้นโค้งลงพื้นด้านล่าง แต่ถ้ากำหนดเป็น 0 จะไม่มีแรงโน้มถ่วงมากระทำ ทำให้กระสุนเคลื่อนที่ในแนวที่กำหนด
Bounce off solids คือ การกำหนดให้วัตถุแบบ Solid กระเด็นเมื่อโดนกระสุนพุ่งชน
Set angle คือ การกำหนดค่าว่าจะให้ใช้มุมในการเคลื่อนที่ของกระสุนหรือไม่
Initial state คือ การกำหนดว่าจะให้วัตถุทำงานหรือไม่ทำงาน

ทีนี้มาลองสร้างเกมที่ใช้พฤติกรรมแบบ Bullet กันลองดูครับ
สร้างโปรเจคใหม่ขึ้นมา และแทรกพื้นหลังให้เป็นฉากท้องฟ้าครับ โดยการ Insert New Object เลือก Sprite ตั้งชื่อว่า background แล้วคลิก Insert


ผมขอวาดง่าย ๆเลยนะครับ เต็มสีฟ้าลงไปเต็มช่องก็พอ


ปรับขนาดของวัตถุให้เต็มพื้นที่ของเกม แล้วไปที่แทบ layer แล้ว lock ไว้ และเพิ่ม layer ใหม่ขึ้นมา



ต่อไปสร้างจรวดขึ้นมา 1 ลำ ด้วยการ Insert new Object ออกแบบได้ตามต้องการครับ


วางจรวดของเราไว้ตรงกลางของเกม


เพิ่มวัตถุ keyboard เข้ามาในเกม


กำหนดการกระทำที่ event sheet เพิ่ม event ให้ โดยเลือก keyboard


เลือกเหตุการณ์แบบ Key is down



กำหนดเหตุการณ์สำหรับการกดปุ่ม w


เพิ่มการกระทำด้วย add action แล้วเลือกจรวด


เลือกการกระทำเป็น  Move at angle


กำหนดค่ามุม Angle เป็น 270 คือ ให้เคลื่อนที่ขึ้นด้านบน กำหนด Distance ระยะในการเคลื่อนที่ เท่ากับ 5


เพิ่มเหตุการณ์ลักษณะเดียวกัน แต่เป็นการกดปุ่ม s ให้เคลื่อนที่ลง กำหนดมุมเป็น 90


ทดสอบการทำงานของเกม จะพบว่าจรวดจะเคลื่อนที่ขึ้นเมื่อกดปุ่ม w และเคลื่อนที่ลงเมื่อกดปุ่ม s