The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

เขียนโปรแกรมด้วย Scratch: การสร้างเกมตะลุยอวกาศ

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by jomjam388, 2023-11-08 20:52:22

การสร้างเกมตะลุยอวกาศ

เขียนโปรแกรมด้วย Scratch: การสร้างเกมตะลุยอวกาศ

Keywords: scratch

เเกกมมตตะะลุลุ ลุ ย ลุ ยออววกกาาศศ scratch.mit.edu/download


ตัตัววตัตัลละะคครร เกมนี้เป็นเกมประเภท “เกมเคลื่อนที่ไปเรื่อย ๆ (Infinite Scroller)” เกมจะเล่นไปเรื่อย ๆ จนกว่าจะแพ้!!! เกมตะลุยอวกาศนี้จะมีอุกาบาต ออกมาจากฉากในแนวแกน x แบบ ไม่รู้จบและมีการสุ่มตำ แหน่งออกมาด้วยในแต่ละรอบ เป้าหมายของเกมคือ การขับยานอวกาศ ขึ้น-ลงในแนวแกน y โดยใช้เมาส์บังคับการเคลื่อนที่ เพื่อหลบหลีกอุกาบาต แต่ละรอบที่หลบอุกาบาตได้จะได้คะแนนทีละ 1 คะแนน และแต่ละรอบที่อุกาบาตวนมาปรากฏขึ้นรอบใหม่ จะมีความเร็วที่เพิ่มขึ้นไปด้วย เกมนี้เป็นเกมประเภท “เกมเคลื่อนที่ไปเรื่อย ๆ (Infinite Scroller)” เกมจะเล่นไปเรื่อย ๆ จนกว่าจะแพ้!!! เกมตะลุยอวกาศนี้จะมีอุกาบาต ออกมาจากฉากในแนวแกน x แบบ ไม่รู้จบและมีการสุ่มตำ แหน่งออกมาด้วยในแต่ละรอบ เป้าหมายของเกมคือ การขับยานอวกาศ ขึ้น-ลงในแนวแกน y โดยใช้เมาส์บังคับการเคลื่อนที่ เพื่อหลบหลีกอุกาบาต แต่ละรอบที่หลบอุกาบาตได้จะได้คะแนนทีละ 1 คะแนน และแต่ละรอบที่อุกาบาตวนมาปรากฏขึ้นรอบใหม่ จะมีความเร็วที่เพิ่มขึ้นไปด้วย ตตะะลุลุ ลุลุ ยยออววกกาาศศ


ยานอวกาศ กำ หนดชื่อไว้ว่า “spaceship” อยู่ที่พิกัดแกน x = -190, y = 9 ขนาดที่แสดงบนเวที = 25 ทิศทางหันไปทางขวา 90 องศา ยานอวกาศ กำ หนดชื่อไว้ว่า “spaceship” อยู่ที่พิกัดแกน x = -190, y = 9 ขนาดที่แสดงบนเวที = 25 ทิศทางหันไปทางขวา 90 องศา อุกาบาต กำ หนดชื่อไว้ว่า “rock2” อยู่ที่พิกัดแกน x = 240, y = 65 ขนาดที่แสดงบนเวที = 20 ทิศทางหันไปทางขวา 90 องศา อุกาบาต กำ หนดชื่อไว้ว่า “rock2” อยู่ที่พิกัดแกน x = 240, y = 65 ขนาดที่แสดงบนเวที = 20 ทิศทางหันไปทางขวา 90 องศา ดาวประกอบฉาก 1-5 กำ หนดชื่อไว้ว่า “star1 - star5” อยู่ที่พิกัดแกน x, y ในตำ แหน่งที่แตกต่างกัน เช่น star1 x = -158, y = 101 ขนาดที่แสดงบนเวที = 10 ทิศทางหันไปทางขวา 90 องศา ดาวประกอบฉาก 1-5 กำ หนดชื่อไว้ว่า “star1 - star5” อยู่ที่พิกัดแกน x, y ในตำ แหน่งที่แตกต่างกัน เช่น star1 x = -158, y = 101 ขนาดที่แสดงบนเวที = 10 ทิศทางหันไปทางขวา 90 องศา ตตะะลุลุ ลุลุ ยยออววกกาาศศ จัจัดดกกาารรตั ตัววลละะคครร


ตตะะลุลุ ลุลุ ยยออววกกาาศศ เริ่มริ่ เขียขี นโค้ดค้ เริ่มริ่ เขียขี นโค้ดค้ เมื่อคลิกที่ธงสีเขียว กลุ่มโค้ดด้านล่างทั้งหมดจะ ทำ งานลงมา ตามลำ ดับ ตั้งค่าสีของตัวละครไว้ที่ 0(ค่าเริ่มต้น) ตั้งค่าตำ แหน่งของยานอวกาศไว้ที่ แกน x = -190 (ทางด้านซ้ายมือของเวที) ตั้งค่าการบังคับยานอวกาศด้วยเมาส์ขึ้น-ลง ในแนวแกน y (ใช้กลุ่มบล็อก Motion, Sensing) เคลื่อนที่ขึ้นลงตามเมาส์ไปเรื่อย ๆ (จากบล็อกคำ สั่ง set y to mouse y) จนกระทั่งสัมผัสกับอุกาบาต: rock2 หลังจากยานอวกาศสัมผัสอุกาบาต: rock2 จะเปลี่ยนเอฟเฟคของยานอวกาศเป็น brightness พูดว่า Game Over!!! ยานอวกาศ


ตตะะลุลุ ลุลุ ยยออววกกาาศศ อุกาบาต เพิ่มบล็อกคำ สั่ง repeat until มาครอบ change x by -5 เพื่อให้อุกาบาตเคลื่อนที่วน ลูปไปเรื่อยจนกว่าจะสัมผัสกับยานอวกาศ (จากคำ สั่ง touching spaceship) เพิ่มบล็อกคำ สั่ง if/then ในการตรวจสอบเงื่อนไข การแตะขอบเวที และใช้บล็อก less than จากกลุ่ม Operations มาใส่เข้าไป ใส่ค่าเป็น -240 คือ ตำ แหน่งขอบเวทีทางด้านซ้ายมือ และนำ คำ สั่ง x position ใส่เข้าไปเพื่อเปรียบเทียบค่า เมื่อคลิกที่ธงสีเขียว กลุ่มโค้ดด้านล่างทั้งหมดจะ ทำ งานลงมา ตามลำ ดับ เพิ่มบล็อกคำ สั่ง go to x: , y: เพื่อกำ หนดค่า พิกัดเริ่มต้นให้อุกาบาตเป็น x=240, y=180 (อุกาบาตจะอยู่ขอบด้านขวามือของเวที) เพิ่มบล็อกคำ สั่งสั่ง change x by เพื่อกำ หนด ความเร็วในการเคลื่อนที่ในแนวแกน x ใส่บล็อกคำ สั่ง set x to 240 เพื่อให้อุกาบาต กลับไปยังแกน x ด้านขวามือของเวที ใส่บล็อกคำ สั่ง set y to เพื่อกำ หนดค่าการ ปรากฎตัวของอุกาบาตในแต่ละรอบ โดยใช้ บล็อก pick random 180 to -180 (ปรากฎตัวแบบสุ่มตำ แหน่งจากค่าในแนว แกน y ด้านบนถึงด้านล่าง)


ตตะะลุลุ ลุลุ ยยออววกกาาศศ บล็อกคำ สั่งทั้งหมดจะทำ ให้อุกาบาตเมื่อเคลื่อนที่ไป ถึงด้านซ้ายของขอบเวทีจนมีค่า x น้อยกว่า -240 จะกลับมาปรากฎใหม่อีกครั้งที่ด้านขวามือของขอบ เวทีโดยตำ แหน่ง x=240 และสุ่มตำ แหน่งในแกน y จากค่า 180 ถึง -180 อุกาบาต ไปยังบล็อกคำ สั่ง Variables และสร้างตัวแปร ใหม่ที่ใช้ในการกำ หนดความเร็วให้อุกาบาต ชื่อว่า “speed” จากนั้นตั้งค่าความเร็วไว้ที่ -5 และเลือก “For this sprite only” (บล็อก ตัวแปร speed นี้จะใช้กับอุกาบาตเท่านั้น) ใส่บล็อกคำ สั่ง if/then ทั้งหมดเข้าไปใน บล็อกลูป repeat until เพื่อให้ทำ งานตามเงื่อนไข รวมบล็อกคำ สั่ง เเพิ่ พิ่มมคคววาามมเเร็ร็ววใให้ ห้อุ อุกกาาบบาาตต ไม่ต้องคลิกเครื่องหมายในกล่อง เพื่อไม่ให้ตัวแปรแสดงบนเวที


ตตะะลุลุ ลุลุ ยยออววกกาาศศ เเพิ่ พิ่มมคคะะแแนนนนใในนเเกกมม คลิกเครื่องหมายในกล่องเพื่อให้ เห็นคะแนนตัวแปรแสดงบนเวที ไปยังบล็อกคำ สั่ง Variables และสร้างตัวแปรใหม่ที่ ใช้ในการเก็บคะแนน ชื่อว่า “score” และเลือก “For all sprites” (บล็อกตัวแปร score นี้จะใช้กับ ทุกตัวละคร) จากนั้นตั้งค่าคะแนนไว้ที่ 0 กำกำกำกำหหนนดดกกาารรเเปปลี่ลี่ ลี่ลี่ ยยนนแแปปลลงงค่ค่ ค่ค่ าาคคววาามมเเร็ร็ ร็ร็ ววแแลละะคคะะแแนนนน ในแต่ละรอบเมื่ออุกาบาตไปแตะขอบเวทีจน x มีค่าน้อยกว่า -240 จะเปลี่ยนคะแนนที่ ตัวแปร “score” ไปทีละ 1 คะแนน เมื่ออุกาบาตไปแตะขอบเวทีจน x มีค่าน้อยกว่า -240 อุกาบาตจะปรากฎตัวในรอบต่อไปด้วย ความเร็วในการเคลื่อนที่ที่เพิ่มขึ้น จากการ กำ หนดค่าในตัวแปร “speed” ไปทีละ -1 (ความเร็วจะเพิ่มขึ้นจนทำ ให้เกมยากขึ้น) และจะทำ ซ้ำ แบบนี้ไปเรื่อย ๆ จนมีการชนกับ ยานอวกาศจะจบเกมทันที รวมบล็อกคำ สั่ง


ตตะะลุลุ ลุลุ ยยออววกกาาศศ ดวงดาว ดวงดาวประกอบฉาก ( star 1-5) - แต่ละตัวละครจะกำ หนดพิกัดแกน x, y ในตำ แหน่งที่แตกต่างกัน เช่น star1 x = -158, y = 101 - ใส่บล็อกคำ สั่ง change color effect by 25 ในการกำ หนดการเปลี่ยนสี ให้กับดวงดาว - และใช้คำ สั่งลูป forever มาครอบไว้เพื่อให้การเปลี่ยนสีทำ วนซ้ำ ไปตลอด พื้พื้ พื้พื้ นนหหลัลั ลัลั งง START!!


Click to View FlipBook Version