Scratch ตอนที่ 5.1 มาสร้างเกมเด้งลูกบอลกันเถอะ

สวัสดีครับ พบกันกับ ตอนที่ 5 แล้ว ในซีรีย์ สอนลูกเขียนโปรแกรมด้วย Scratch ครับ

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

เริ่มต้นกันด้วยกระบวนการเดิมครับๆ ลบตัวละครเจ้าแมวออกไปก่อน ด้วยการกดที่รูป ด้านบนเหมือนเดิมครับ
เลือกพื้นหลัง
วันนี้ผมจะใช้พื้นหลังที่ชื่อว่า neon tunnel โดยจะอยู่ในหัวข้อหมวด อวกาศ ครับ

เลือกตัวละคร
แน่นอนว่าวันนี้พระเอกของเราคือลูกบอลครับ กดที่  ได้เลยครับ เลือกไปที่ สิ่งของ แล้วกดที่ลูกบอลเพื่อเพิ่มเข้ามาในเวทีได้เลยครับ

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

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

การเคลื่อนที่แบบเอียงไปมา
รู้สึกกันมั้ยครับ ว่าการเคลื่อนที่แนวนอนแบบนี้มันจะเล่นได้ยังไงกันเล่า เพราะฉะนั้นเราจะมาสร้างคำสั่งให้ลูกบอลมันเอียงเวลาเคลื่อนไหวกันครับ ใช้คำสั่ง การเคลื่อนที่ -> ชี้ไปที่ทิศทาง ในที่นี้ผมจะตั้งค่าไว้ที่ 45 ํ องศา ครับ น้องๆพอจะเดาออกมั้ยครับว่าต้องเอาคำสั่งไปต่อไว้ตรงไหน ถ้านำคำสั่งนี้ไปต่อที่ถ้าชนให้สะท้อนกลับจะเกิดอะไรขึ้นเอ่ย ผมมีตัวเลือกให้น้องๆสองอัน ให้น้องๆลองตอบดูนะครับ ว่าควรจะเป็นอันไหน ส่วนเฉลยจะอยู่ด้านล่างลงไปครับ

ก.) วนซ้ำตลอด -> คลื่อนที่ 10 ก้าว -> ถ้าชนให้สะท้อนกลับ -> หมุน 45 องศา -> วนซ้ำตลอด

ข.) หมุน 45 องศา -> วนซ้ำตลอด -> คลื่อนที่ 10 ก้าว -> ถ้าชนให้สะท้อนกลับ ->  วนซ้ำตลอด

ลองวิเคราะห์ดูกันครับ ต่อไปข้างล่างนี้จะเป็นเฉลยของสองผลลัพธ์นะครับ

ก.)

ข.)

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

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

ความเร็วของลูกบอล
อย่างที่ได้บอกไปแล้วในตอนต้นครับ เราลองมาเพิ่มความยากของเกมกันหน่อย ด้วยการเพิ่มความเร็วเป็น 15 ด้วยการปรับที่คำสั่ง เตลื่อน 10 ก้าว เป็น เคลื่อน 15 ก้าว ครับ

สร้างฐานรับลูกบอล
ต่อไปเป็นการสร้างฐานลูกบอลครับ กดไปที่  ได้เลย ในที่นี้ผมจะใช้ตัวละครของในหมวด สิ่งต่างๆ แล้วเลือก Paddle ครับ

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

เริ่มต้นจัดการ Paddle
เหมือนเดิมครับ เราจะใช้ปุ่มธงเขียว  เพื่อเป็นตัวเริ่ม โดยใช้คำสั่ง เหตุการณ์ แล้วเลือกที่ เมื่อถูกคลิก
ต่อไปใช้คำสั่ง การเคลื่อนที่ ไปยัง “ตัวชี้เมาส์” คำสั่งนี้มีผลทำให้เมื่อเรากดที่Paddle จะตามมาอยู่ที่เดียวกับเมาส์เราครับ แต่เอ๊ะ มันตามมาครั้งเดียวแล้วก็หยุด ทำยังไงดีนะ มาลองใช้ ควบคุม -> วนซ้ำตลอด ครอบไว้ดูซิ
Paddle วิ่งตามเมาส์มาแล้ว แต่เอ๊ะ ลูกบอลไม่เห็นเด้งเลย ทำไงดี ก่อนอื่นให้เรากลับไปจัดการคำสั่งที่ลูกบอลก่อนนะครับ
ให้เราเริ่มต้นคำสั่งใหม่อีกอันโดยใช้คำสั่ง เหตุการณ์ แล้วเลือกที่ เมื่อถูกคลิก
ต่อไปลองไปที่ ควบคุม แล้วใช้คำสั่ง วนซ้ำตลอด อันนี้มาก่อนเลยครับเพราะสำคัญที่สุด ต่อไปใช้ ถ้า…แล้ว ถ้าอะไรดีครับ ช่วยพี่คิดหน่อยเร็ว คำตอบคือออ ไหนลองไปหาแถวๆหัวข้อ การรับรู้ ดูหน่อยสิว่ามีอะไรให้ใช้ได้บ้าง ลองดู สัมผัส “ตัวชี้เมาส์” กันครับ แต่เอ๊ะ เราไม่ได้อยากให้บอลมันชนกับเมาส์นี่นา เราอยากให้มันชนกับ “Paddle” ลองเปลี่ยนข้างในเป็น สัมผัส “Paddle” จุดประสงค์เราคือ ลูกบอล มาชนกับ Paddle ถูกต้องนะคร้าบบบ
ตอนนี้เราจะได้ลำดับคำสั่งแบบนี้ครับ เมื่อถูกคลิก -> วนซ้ำตลอด -> ถ้า สัมผัส Paddle -> แล้ว…. ตอนนี้เราต้องมาสร้างเงื่อนไขต่อไปกันครับ ว่า สัมผัสแล้วให้ลูกบอลทำอะไรต่อ จุดประสงค์เราคือ ทำให้ลูกบอลกระเด้งกลับขึ้นไป ลองเริ่มต้นที่ การเคลื่อนที่ -> หมุน 180 ใช้หมุนด้านไหนก็ได้ครับ แล้วลองกดที่  กัน

เพิ่มเติม น้องๆบางคนอาจจะเจอปัญหา ลูกบอลเด้งค้างอยู่ที่แป้นPaddle ใช้คำสั่ง รอ1 วินาที เพื่อไม่ให้ลูกบอลกระเด้งรัวๆค้างอยู่ที่แป้นนะครับ

วันนี้เราจะพักกันตรงนี้ก่อนครับ สัปดาห์หน้า เราจะมาต่อกันเรื่องการใส่เสียง Effect และระบบเกมเก็บคะแนนกันครับ

น้องๆคนไหนลองทำแล้วได้ผลลัพท์ยังไงอย่าลืมลองเอามาแชร์แบ่งปันกันให้ดูได้เลยนะครับ ตอนนี้วิชาเขียนโปรแกรมหรือวิทยาการคำนวณได้เข้ามาเป็นหนึ่งในวิชาพื้นฐานของเด็กประถมและมัธยมกันแล้ว น้องๆคนไหนสนใจเรียนเรื่องนี้เพิ่มเติม สามารถดูคอร์สออนไลน์ของวิชาวิทยาการคำนวณได้โดยตรงกันที่ https://school.dek-d.com หรือที่แฟนเพจ https://www.facebook.com/schooldekd/ ได้เลยครับ

หรือมีปัญหาหรือคำถามตรงไหน สามารถสอบได้จากหน้าแฟนเพจ สอนลูกเขียนโปรแกรม by Dek-D.com หรือเว็บบอร์ดถามตอบของเราได้เลยครับ แล้วพบกันใหม่ในตอนหน้าครับ

 

Comments

comments