วิธีสร้าง Tappy Plane (Flappy Bird Clone)
บทนำ:
สวัสดีและยินดีต้อนรับสู่บทเรียนสำหรับการสร้างเกมสไตล์ "Flappy Birds" ใน hyperPad ของคุณเอง
เวอร์ชันของเราจะมีความแตกต่างเล็กน้อย ดังนั้นเราจึงเรียกมันว่า Tappy Plane
บทเรียนนี้จัดทำขึ้นสำหรับผู้ที่เริ่มต้นที่ต้องการทำความเข้าใจระบบการทำงานของเราลึกซึ้งยิ่งขึ้นและเรียนรู้เกี่ยวกับการเขียนโปรแกรมแบบ Visual Coding ในระหว่างบทเรียนคุณยังจะได้เรียนรู้วิธีใช้งานอินเทอร์เฟซของ hyperPad
ในบทเรียนนี้เราจะสร้างเกมง่ายๆ ในสไตล์ Flappy Bird เกมเพลย์จะประกอบไปด้วยผู้เล่นที่ต้องแตะหน้าจอเพื่อควบคุมเครื่องบินให้ขึ้นและลงเพื่อหลบผ่านหน้าผาชุดต่างๆ แต่ละหน้าผาที่ผ่านจะได้รับคะแนน และเมื่อสะสมคะแนนได้มากพอ ผู้เล่นจะได้รับเหรียญ เหรียญเหล่านี้จะมีมูลค่าเพิ่มขึ้นตามคะแนนที่ทำได้ จนถึงเหรียญทองที่เปล่งประกาย! แล้วใครจะไม่ชอบสิ่งที่เปล่งประกายล่ะ!?
ถ้าคุณยังไม่มี hyperPad คุณสามารถดาวน์โหลดได้จาก App Store: https://itunes.apple.com/app/apple-store/id886106438?mt=8
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ hyperPad ได้จากเว็บไซต์ของเราที่ http://www.hyperpad.com
ดังนั้นโดยไม่ต้องพูดพล่ามมากเกินไป มาเริ่มกันเถอะ!
ส่วนที่ 1: การเริ่มต้น
การสร้างโปรเจ็กต์:
สิ่งแรกที่เราต้องทำคือเริ่มโครงการใหม่ เมื่อโหลด hyperPad คุณควรเห็นหน้าจอโครงการ ที่นี่คุณจะพบกับโปรเจ็กต์ทั้งหมดที่คุณได้ทำไว้หรือดาวน์โหลดมา สำหรับตอนนี้เราต้องการเริ่มต้นโปรเจ็กต์ใหม่ ให้แตะที่ปุ่ม New Project ในมุมขวาบนของหน้าจอดังภาพด้านล่างนี้.
เมื่อเสร็จแล้ว คุณควรเห็นหน้าต่างป๊อปอัพปรากฏขึ้น ที่นี่เราจะตั้งชื่อโปรเจ็กต์และสร้างสำรองข้อมูลใน Cloud หากต้องการ นอกจากนี้ คุณยังสามารถแตะที่ปุ่ม “Get Started with a Sample Instead” เพื่อนำเข้าหนึ่งในโปรเจ็กต์พื้นฐานของเรา อย่างไรก็ตามในตอนนี้ เราจะไม่ทำเช่นนั้น ตั้งชื่อโปรเจ็กต์เป็น Tappy Plane แล้วแตะที่ปุ่ม 'ถัดไป'
ในหน้าจอใหม่นี้เราจะกำหนดอุปกรณ์ที่เรากำลังออกแบบและการวางแนว สำหรับโปรเจ็กต์นี้ ให้ตั้งการวางแนวเป็นแนวนอนและการสนับสนุนอุปกรณ์เป็น iPad ไม่ต้องกังวลหากคุณต้องการเปลี่ยนแปลงสิ่งใดในภายหลัง การตั้งค่าเหล่านี้สามารถปรับได้ตลอดเวลาในเมนู Global Settings
สุดท้ายเราสามารถเลือกประเภทของเกมที่เราต้องการสร้าง hyperPad สนับสนุนโหมดสองประเภทคือมุมมองด้านบนและมุมมองด้านข้าง มุมมองด้านบนหรือ Bird's Eye View มักจะใช้สำหรับเกมที่เช่น The Legend of Zelda ก่อนที่จะเปลี่ยนไปใช้ 3D เกมไขปริศนาเช่น Bejeweled และเกมยิงจากมุมมองด้านบน มุมมองด้านข้างมักจะใช้สำหรับเกมแพลตฟอร์มเช่น Super Mario Bros.
ทั้งสองเวอร์ชันทำงานในลักษณะเดียวกัน แต่มีความแตกต่างเล็กน้อย มุมมอง Bird's Eye View จะไม่มีการตั้งค่ากฎของแรงโน้มถ่วง (ทั้งนี้จะอิงจากแรงต้านอากาศแทนเพื่อจำลองแรงโน้มถ่วงที่เข้าไปในหน้าจอ) ดังนั้นกรุณาคำนึงถึงเรื่องนี้เมื่อสร้างโปรเจ็กต์ของคุณ คุณสามารถเปลี่ยนแปลงนี้ได้ในภายหลังในเมนู Global Properties
สำหรับบทเรียนนี้เราจะใช้มุมมองด้านข้าง ดังนั้นโปรดตรวจสอบว่ามีการเลือกแล้วถัดไปเราจะตั้งค่ากฎของแรงโน้มถ่วงและอัตราส่วน PTM โดยค่าเริ่มต้น กฎของแรงโน้มถ่วงจะถูกตั้งค่าเป็น 0 และ -25
ค่าต่างเหล่านี้คือค่า x และ y หรือในแบบที่เข้าใจง่ายคือแนวนอนและแนวตั้งของโลกเกมของเรา x แทนแนวนอน หรือซ้ายและขวา ในขณะที่ y จะหมายถึงแนวตั้ง หรือขึ้นและลง ค่าเริ่มต้นของ 0 และ -25 หมายความว่าจะไม่มีแรงโน้มถ่วงดึงวัตถุไปทางซ้ายและขวา แต่วัตถุจะตกลงด้วยอัตราคงที่ที่ 25 เมตรต่อวินาที ค่าเริ่มต้นเหล่านี้ใช้ได้ดีสำหรับบทเรียนนี้
อัตราส่วน PTM หมายถึงจุดต่อเมตร หรือพูดง่ายๆ ว่ามีกี่พิกเซล (จุด) ใน 1 เมตร hyperPad โดยค่าเริ่มต้นนี้ตั้งไว้ที่ 32 pt/m หรือ 32 พิกเซลต่อเมตร ซึ่งเป็นเรื่องสำคัญที่ต้องรู้เมื่อสร้างทรัพย์สินศิลป์ และทั้งหมดจะต้องตามมาตราส่วนนี้ ในบทเรียนนี้เราจะใช้ทรัพยากรฟรีจากห้องสมุดทรัพย์สินของ hyperPad ดังนั้นเราไม่จำเป็นต้องเปลี่ยนขนาด
เมื่อเสร็จแล้ว ให้แตะที่ปุ่มสร้างและเราจะเริ่มกันได้!
ตัวแก้ไข:
ตอนนี้เมื่อเราอยู่ในโปรเจ็กต์แล้ว คุณควรเห็นหน้าจอที่ดูเป็นแบบนี้:
นี่คือผืนผ้าใบของเรา และเป็นที่ที่เราจะสร้างเกมของเรา ในกลางหน้าจอคุณควรเห็นกรอบสีเขียวบางๆ ของกล่อง ซึ่งแสดงถึงมุมมองหน้าจอของเรา สิ่งใดก็ตามที่วางในกล่องนี้จะมองเห็นได้ทันทีเมื่อเริ่มเกม ขณะที่สิ่งใดที่อยู่นอกกล่องจะไม่ถูกเรนเดอร์ หากคุณต้องการ ให้ใช้เวลาสักครู่ในการแตะไปรอบๆ และดูว่าสิ่งต่างๆ ทำงานอย่างไร ก่อนที่เราจะไปยังขั้นตอนถัดไป
เมื่อคุณพร้อมแล้ว ให้แตะที่ไอคอนลิ้นชักที่มุมล่างขวาเพื่อเปิด Asset Browser
ห้องสมุดทรัพย์สิน:
ที่นี่คือที่ที่ทรัพย์สินทั้งหมดสำหรับเกมของเราจะถูกเก็บไว้ โดยปกติแล้วโปรเจ็กต์ใหม่ใน hyperPad จะมีเพียงไม่กี่ทรัพย์สินเริ่มต้น คุณต้องนำเข้าของคุณเอง หรือดาวน์โหลดชุดจาก Hyperpad Asset Shop ในบทเรียนนี้เราจะมุ่งเน้นไปที่การใช้ทรัพย์สินจาก Hyperpad Asset Shop ที่มีให้ โดยจะอยู่ที่ซ้ายจะมีแถบที่มีปุ่มสี่ปุ่ม แตะที่ปุ่ม Get Assets เพื่อเปิด Hyperpad Shop
ที่นี่คุณจะพบกับชุดทรัพย์สินฟรีซึ่งตั้งขึ้นโดยเราที่ Hyperpad เพื่อช่วยเริ่มต้นโปรเจ็กต์ของคุณ ค้นหาและแตะที่ Tappy Plane Asset Pack
ตอนนี้ เพียงแค่แตะที่ปุ่ม 'Get' เพื่อเริ่มการนำเข้า (หมายเหตุ: หากเกิดข้อผิดพลาด ให้แตะอีกครั้งเพื่อเริ่มการนำเข้าใหม่) เมื่อเสร็จแล้ว คุณจะได้รับข้อความบอกว่าทรัพย์สินได้ถูกนำเข้าเรียบร้อยแล้ว เพียงแค่แตะ Close ที่มุมขวาบนของหน้าจอเพื่อกลับไปที่ Hyperpad
และมันก็ง่ายดายเพียงนี้ คุณควรเห็นโฟลเดอร์ใหม่ใน Asset Browser ของคุณชื่อ Downloads การแตะที่มันจะเปิดเผยโฟลเดอร์ Tappy Plane Pack และภายในนั้นคือศิลป์ของเรา
ถัดไปเราจะเริ่มประกอบเกมของเรา
ส่วนที่ 2: การเล่นเกม
หากคุณคุ้นเคยกับ Flappy Bird คุณจะคุ้นเคยกับสไตล์การเล่นเกม ด้วยการแตะหน้าจอเพื่อทำให้เครื่องบิน ซึ่งก็คือกรณีของเรา ต้องอยู่ในอากาศโดยไม่ให้ชนกับอุปสรรคที่เข้ามา อุปสรรคเหล่านี้จะเกิดขึ้นในรูปแบบที่สุ่มแต่ละครั้ง ดังนั้นแต่ละการเล่นจึงจะแตกต่างจากครั้งก่อน คะแนนจะถูกให้สำหรับการหลีกเลี่ยงอุปสรรคและคะแนนสูงสุดของคุณจะถูกบันทึก
การเพิ่มเครื่องบิน:
ตอนนี้เมื่อคุณเข้าใจการเล่นเกมพื้นฐานแล้ว เราสามารถเริ่มกันได้ สิ่งแรกที่เราต้องทำคือทำให้ตัวละครของเราขึ้นมาแสดงบนหน้าจอ ไปที่ Asset Browser ของคุณและเปิดโฟลเดอร์ดาวน์โหลดแล้วนำทางไปจนกว่าจะเห็นทรัพย์สินศิลป์ของคุณ ควรมีโฟลเดอร์ที่ชื่อ Planes
เปิดโฟลเดอร์นี้และเลือกสีใดก็ได้ที่คุณชอบที่สุด จากนั้นเพียงแค่เลือกกราฟิกเครื่องบินแรก สิ่งนี้จะทำให้ห้องสมุดทรัพย์สินปิดตัวและให้คุณกลับไปที่หน้าจอแก้ไขหลัก ซึ่งตอนนี้คุณควรเห็นเครื่องบินในแถบวัตถุด้านล่าง ส่วนนี้ของ UI เรียกว่า Object Dock แถบนี้จะแสดงสินทรัพย์ล่าสุด 5 รายการที่คุณใช้จากนั้นเพื่อลงในพื้นที่เล่น คุณต้องเพียงค่อยๆลากเครื่องบินจากแถบไปยังผืนผ้าใบของคุณ
เมื่อเครื่องบินอยู่ในเกมแล้ว เราต้องทำการปรับแต่งเล็กน้อย แตะที่เครื่องบินเพื่อเลือกมันและเปิดแท็บคุณสมบัติที่ด้านขวา สิ่งที่เราต้องการทำคือกำหนดให้เครื่องบินเป็นวัตถุที่สามารถผ่านได้ง่ายมาก ค้นหาสวิตช์ Passable แล้วแตะเพื่อเปิดเปิด เราทำเช่นนี้เพราะเราไม่ต้องการให้เครื่องบินตกก่อนที่ผู้เล่นจะมีโอกาสเริ่มเกม เราจึงตั้งค่าให้สามารถทำให้มันผ่านได้เพราะว่าไม่ต้องการให้มีการชนในตอนนี้
เมื่อทำเสร็จแล้ว ให้เราเข้าไปทำให้มันเล่นได้
เครื่องบินตก:
เราต้องการวิธีการเริ่มเกม เพื่อทำอย่างนั้นเราจะต้องมีปุ่ม ตอนนี้เราสามารถใช้กราฟิกง่ายๆ เพื่อบ่งบอกที่ให้แตะ แต่มาสำหรับเกมของเราต้องการให้ผู้เล่นสามารถแตะที่ไหนก็ได้บนหน้าจอ เราทำอย่างไร? เราจะทำให้ทั้งหน้าจอเป็นปุ่ม!
สิ่งแรกที่เราต้องทำได้คือการสร้างเลเยอร์ใหม่ แต่เพื่อทำเช่นนั้น เราจำเป็นต้องยกเลิกการเลือกเครื่องบินของเรา เพื่อทำอย่างนี้ ให้แตะตรงไหนที่ไม่มีวัตถุเลย เมื่อยกเลิกการเลือกแล้ว คุณสมบัติวัตถุจะปิดลงและคุณควรเห็นแท็บเลเยอร์ที่ด้านขวา หากไม่เห็น ให้ปัดนิ้วจากด้านขวาของหน้าจอไปทางซ้ายเพื่อแสดงให้เห็นอีกครั้ง
คุณสามารถเห็นว่าขณะนี้มีเลเยอร์สามเลเยอร์ตามค่าเริ่มต้น เลเยอร์ Global UI, Scene UI และ Main หลังจากเส้นแบ่ง สังเกตได้ว่าเลเยอร์ Global UI จะแสดงในทุกฉากในเกมของคุณ และเลเยอร์อื่นๆ จะเฉพาะเจาะจงอยู่ในฉากต่างๆ การสร้างเลเยอร์ใหม่ให้แตะที่ไอคอน + ที่ด้านล่างของแท็บเลเยอร์ได้เลย การสร้างใหม่จะทำให้เปิด เราต้องตั้งค่าเลเยอร์ใหม่ สำหรับการตั้งชื่อนี้ ให้พิมพ์ Button และแตะที่ OK
ตามค่าเริ่มต้นเลเยอร์ที่เปิดใช้งานจะเปลี่ยนเป็นเลเยอร์ที่สร้างขึ้นใหม่ เมื่อใช้เลเยอร์ วัตถุในเลเยอร์ที่เปิดใช้งานจะสามารถเลือกได้เพียงสิ่งเดียวเท่านั้น นี่เป็นวิธีที่ดีในการทำให้ทุกอย่างมีระเบียบเมื่อสร้างเกมเพราะคุณจะไม่ย้ายสิ่งที่คุณไม่ต้องการโดยไม่ตั้งใจ อย่าลืมติดตามเลเยอร์ที่คุณกำลังทำงานอยู่ นอกจากนี้ อย่าลืมว่าเลเยอร์ที่วางอยู่ด้านบนอีกอันจะทำการเรนเดอร์อยู่บนเลเยอร์นั้น คุณสามารถหลีกเลี่ยงการให้พื้นหลังปกคลุมพื้นที่เล่นได้ในลักษณะนี้
ตอนนี้ในการสร้างปุ่มของเรา เรื่องนี้จะง่ายมาก แตะแท็บ Special Objects (ไอคอนขวด) ที่มุมล่างขวาของ Object Dock ซึ่งจะทำให้เปิดเมนูเพื่อสร้างประเภทของวัตถุ เราต้องการ Empty Object การแตะจะทำให้สร้างสี่เหลี่ยมเล็กๆ ว่างกลางโครงการของเรา อย่างไรก็ตามเราอยากได้สิ่งนี้ให้มีขนาดเต็มหน้าจอ ให้แตะตรงกลางของสี่เหลี่ยมเพื่อเลือกมัน
เมื่อเลือกแล้ว จะมีจุดสีเขียวเล็กๆ ปรากฏรอบๆ ขอบของวัตถุ เราสามารถใช้จุดเหล่านี้เพื่อปรับขนาด Empty Object ด้วยตนเองเพียงแตะและลากมุมเพื่อปรับสเกลให้เสร็จ ดูให้ดีว่าคุณมีบางอย่างที่คล้ายคลึงแบบนี้ (หมายเหตุ: หากคุณมีปัญหาในการปรับขนาดวัตถุ คุณสามารถซูมเข้าได้โดยการปัดสองนิ้วออกจากกันและซูมออกได้โดยการดึงเข้ามาใกล้กัน)
กลับไปที่เลเยอร์หลักด้วยการยกเลิกลูกวชิของวัตถุเปล่า (แตะบริเวณว่างใส่บนผืนผ้าใบ) แล้วแตะที่เลเยอร์ Main และเลือกเครื่องบินอีกครั้ง ตกลงให้แตะปุ่มที่บอกว่า behaviours เพื่อเปิดหน้าจอพฤติกรรม
นี่คือหน้าจอ Behaviours และเป็นที่ที่เวทมนตร์เกิดขึ้น แทนการเขียนโค้ดแบบดั้งเดิม hyperPad ใช้บล็อกตรรกะแบบภาพเพื่อโปรแกรมปฏิสัมพันธ์ หากคุณต้องการ ใช้เวลาสักครู่ในการไปที่หมวดหมู่และดูว่ามีตัวเลือกใดบ้าง แตะที่หนึ่งในพฤติกรรมในแท็บด้านซ้ายเพื่อเปิดหน้าต่างบอกคำอธิบายพฤติกรรมแบบสั้นๆ คุณยังสามารถตรวจสอบเอกสารความช่วยเหลือของ hyperPad เพื่ออธิบายแต่ละพฤติกรรม
สิ่งที่เราต้องการทำในตอนนี้คือเริ่มเกมและทำให้เครื่องบินของเราจากวัตถุที่สามารถผ่านได้ง่ายๆ เป็นวัตถุทางฟิสิกส์ การทำเช่นนี้จะทำให้ใช้ฟิสิกส์กับเครื่องบินของเราและผลในที่สุดจะทำให้มันตกลงมาด้วยแรงโน้มถ่วง
สิ่งแรกที่เราต้องทำคือใช้พฤติกรรม Started Touching ที่อยู่ในหมวด Interaction เพียงแค่ลากมันจากเมนูและวางในพื้นที่ว่าง เมื่อตอนนี้มันเชื่อมโยงกับวัตถุของเรา คุณสามารถแตะที่พฤติกรรมเพื่อเปิดคุณสมบัติ แต่เราไม่ต้องเปลี่ยนอะไร
แน่นอนว่าด้วยเพียงแค่นี้ก็จะไม่มีอะไรเกิดขึ้นเพราะไม่มีบางสิ่งที่จะตามมาเมื่อเราสัมผัสเครื่องบิน มาลองแก้ไขสิ่งนี้กัน ไปที่หมวด Physics และเลื่อนลงจนกระทั่งคุณเห็นหมวดที่ชื่อว่า Modes ตอนนี้ให้ลากพฤติกรรม Make Physics เข้ามาไว้ใต้พฤติกรรม Started Touching ตอนนี้เราต้องแนบพฤติกรรมนี้ไปยังพฤติกรรม Started Touching ในด้านล่างของ Started Touching คุณควรเห็นฟ้าผ่าขนาดเล็กในวงกลม แตะและลากจากนั้นจะเห็นเส้นลากตามนิ้วของคุณ ให้นำเส้นนี้ไปยังพฤติกรรม Make Physics เพื่อเชื่อมต่อกัน
และมันก็ง่ายดายอย่างนั้น หมายเหตุเล็กๆ ที่ใน hyperPad พฤติกรรมติดตามโครงสร้างของเหตุการณ์ -> การกระทำ ในกรณีนี้ เหตุการณ์คือเรา Started Touching ที่เครื่องบินและการกระทำคือว่าเครื่องบินกลายเป็นวัตถุฟิสิกส์ มาลองทดสอบดูแล้วดูว่ามันทำงานอย่างถูกต้องหรือไม่ ที่ด้านบนของหน้าจอให้กดปุ่มเล่นเพื่อเริ่มการทดสอบ เมื่อต้องการออกจากการทดสอบให้แตะที่สามบาร์ที่มุมขวาบนเพื่อแสดงเมนูและเลือก Quit
หากทุกอย่างเป็นไปด้วยดี เครื่องบินจะตกลงไปที่หน้าจอเมื่อคุณแตะที่มัน
ตอนนี้เราต้องการจบเกมของเราเมื่อเครื่องบินสัมผัสพื้น แม้ว่าเราจะยังไม่มีพื้น แต่เราสามารถเติมเข้าไปด้วยวัตถุเกมว่าง กลับไปที่ผืนผ้าใบโดยแตะที่ลูกศรกลับที่มุมซ้ายบนของหน้าจอ
ยกเลิกการเลือกเครื่องบินแล้วแตะที่ไอคอน Special Objects (ขวด) ที่มุมล่างขวาของ Dock เพื่อนำเข้า Empty Object ใหม่ ตอนนี้ให้เราวางมันตามด้านล่างของผืนผ้าใบและยืดให้มันครอบคลุมใต้สุดของพื้นที่ทั้งหมด
เลือกเครื่องบินและเปิดหน้าต่างพฤติกรรมอีกครั้ง ตอนนี้เราจะเพิ่มเงื่อนไข "แพ้" ของเรา มาคิดดูว่าที่กล่าวก่อนหน้านี้ พฤติกรรมของ hyperPad ทำงานตามพื้นฐานเหตุการณ์ -> การกระทำ เหตุการณ์ในกรณีนี้จะเป็นเครื่องบินที่ชนอยู่กับพื้น ให้ทำการตั้งค่านี้
ไปที่แท็บวัตถุและในหมวด Collision Detection นั้นให้ลากพฤติกรรม Collided ลงในพื้นที่ทำงาน หลังจากนั้นแตะมันเพื่อเปิดคุณสมบัติ คุณจะเห็นกล่องสองกล่องที่ด้านบน หนึ่งกล่องเติมด้วยเครื่องบินของเราอีกกล่องว่างเปล่า แตะที่กล่องว่างเพื่อเปิดมุมมองหน้าจอ ด้วยแตะที่วัตถุว่างที่ด้านล่างของหน้าจอเพื่อตั้งค่ามัน จากนั้นแตะแท็บเครื่องหมายถูกที่ด้านล่างเพื่อทำการบังคับ
ต่อมาเราต้องการสร้างการดำเนินการของพวกเรา เราต้องการโหลดหน้าจอจบเกมเมื่อเครื่องบินชนกับวัตถุพื้น ไปที่หมวดหมู่ Scene แล้วเลื่อนลงไปยังหมวด Overlay และเลือกพฤติกรรม Load Overlay จากนั้นลากมันไว้ด้านล่างพฤติกรรม Collided
เชื่อมโยงพฤติกรรม Collided กับ Load Overlay ตอนนี้ให้แตะพฤติกรรม Load Overlay บนผืนผ้าใบเพื่อเปิดคุณสมบัติของมัน ในหน้าต่างคุณสมบัติชุดพฤติกรรมให้แตะที่ส่วนที่เขียนว่า Select Overlay รายการ Overlays จะปรากฏขึ้น ให้เลือก Game Over ซึ่งเป็น overlay ที่ถูกสร้างขึ้นมาโดยอัตโนมัติ (คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Overlays จากเอกสารความช่วยเหลือของ hyperPad) หากคุณต้องการคุณยังสามารถเพิ่มการเปลี่ยนแปลงให้กับมันเพื่อเพิ่มความหลากหลาย
เมื่อเสร็จแล้ว ให้กดปุ่มเล่นเพื่อตรวจสอบ เมื่อคุณแตะเครื่องบินมันควรจะตกแล้วทำให้หน้าจอ game over ขึ้น
ตรรกะเกม:
ก่อนที่เราจะไปต่อ ควรจะอธิบายวิธีที่ดีในการเก็บให้ทุกอย่างเป็นระเบียบร่วมกันกับพฤติกรรม เพื่อจะหลีกเลี่ยงการยุ่งเหยิงและทำให้การเปลี่ยนแปลงง่ายขึ้นในอนาคต เราจะทำการแยกตรรกะเกมออกจากเครื่องบิน ซึ่งจะแยกเป็นเหตุการณ์ที่กำหนดเองและกระจายข้อความเมื่อเครื่องบินชนการพื้นแทนที่จะโหลดหน้า Overlay Game Over
ทำไมเราจึงทำเช่นนี้? เช่นที่กล่าวว่า จะช่วยให้การจัดระเบียบได้ดีขึ้นและง่ายต่อการปรับแต่งในภายหลัง คิดว่าตรรกะที่เกี่ยวข้องกับวัตถุเกมแค่เพียงวัตถุเดียวก็คือเก็บตรรกะอยู่ในวัตถุ หากคุณต้องเริ่มอ้างอิงวัตถุอื่นๆ หรือมุมมองทางตรรกะที่ไม่ได้เชื่อมโยงกับวัตถุ คุณจึงต้องแยกมัน ตัวอย่างเช่นเมื่อเครื่องบินชนกับวัตถุ มันจะเล่นเสียงตกใจ สิ่งนี้เราสามารถเก็บได้ภายในเครื่องบินเอง แต่ถ้าเมื่อมันชนกับวัตถุ วัตถุนั้นก็จะเปลี่ยนไปในบางวิธี สิ่งนั้นควรเก็บแยกต่างหาก
เพื่อทำเช่นนี้ เราจะสร้างตัวกลาง ซึ่งเป็นไปไม่ได้ที่จะจัดระเบียบการกระทำเหล่านี้ในหนึ่งพื้นที่ที่เราสามารถเข้าถึงได้ง่าย
กลับเข้าไปที่พฤติกรรมของเครื่องบินและเลือกพฤติกรรม Load Overlay จะมีแท็บเล็กๆ ที่แนบมาเข้ากับคุณสมบัติ แตะที่ถังขยะเพื่อลบพฤติกรรม Load Overlay เราทำเช่นนี้เพราะแทนที่จะเพียงโหลด overlay เราจะกระจายข้อความที่ตรรกะของเราจะรับและโหลดหน้าจอเกม Over แทน ในทางเทคนิคแล้วจะทำให้เราต้องทำหลายขั้นตอน แต่จะมีประโยชน์ในระยะยาว
เพื่อกระจายข้อความ ไปที่หมวดหมู่ Custom และในหมวด Broadcast ให้ลาก Broadcast Message และวางไว้ใต้พฤติกรรม Collided (ซึ่งเราก่อนหน้านั้นหลุดไปไว้ที่ Load Overlay) เชื่อมโยง Collided ไปยัง Broadcast Message และเปิดคุณสมบัติ มุมมอง Event Key พิมพ์ Did Lose ในสถานการณ์นี้เราไม่ต้องการให้ค่า Broadcast ว่าง เนื่องจากแก่อเราแค่กระจายสถานะการแพ้ (เช่น Did lose: Yes/No)
เมื่อคุณเพิ่ม Broadcast Message แล้วสามารถกลับไปที่ตัวแก้ไขหลัก
ต่อไปเราต้องสร้างบางอย่างที่จะเก็บตรรกะของเรา เราสามารถสร้างวัตถุว่างอีกอันหนึ่งได้ แต่เราต้องการให้สามารถหาตรจกะได้ง่ายและวัตถุว่างอาจสูญหายไปได้ง่ายเมื่อเรายิ่งเพิ่มทรัพย์สินมากขึ้น ในแทนที่จะทำเช่นนี้ เราจะใช้ป้าย
การสร้างป้ายคือการเท่ากับวัตถุว่าง เลือกไอคอนขวดและในหน้าต่างเลือก Label ป้ายคือวัตถุเกมที่มีข้อความ นอกจากนั้นมันจะทำงานเหมือนกับวัตถุใดๆ แตะเพื่เลือกมันและในกล่องคุณสมบัติที่เขียนว่า Label พิมพ์ว่า Game Logic หากต้องการ ปรับความเข้ากันของตนให้สังเกตและลักษณะการเน้นให้ช่วยตรรกะที่โดดเด่นและมองเห็นได้ โปรดทราบว่าข้อความจะถูกจำกัดในขนาดของกล่องที่กำหนดไว้
ตอนนี้ย้าย Game Logic ออกไปจากพื้นที่ที่มีการแสดงผลสีเขียว (การแสดงผล) เพื่อให้มันไม่ถูกมองโดยผู้เล่น นึกถึง Game Logic ว่าเป็นผู้จัดการเวที หากพวกเขาทำงานของพวกเขาได้อย่างถูกต้อง คุณจะไม่เห็นพวกเขา แต่ทุกอย่างจะทำงานอย่างสมบูรณ์
ตอนนี้เปิดพฤติกรรมของ Game Logic เราต้องวิธีการในการรับข้อความของเราที่ทำไป ก่อนหมวด Custom ให้หาพฤติกรรม Receive Message และลากไป การเปิดคุณสมบัติและแตะที่ Event Key พิมพ์ Did Lose และให้แน่ใจว่าการสะกดถูกต้องเหมือนกันกับ Broadcast Message ต่อมา ให้นำไปที่ Scene และลาก Load Overlay และตั้งค่าเป็น Game Over เชื่อมโยงทั้งสอง
พฤติกรรม "Receive Message" เป็นพฤติกรรมประเภท "Listener" มันจะนั่งอยู่ที่นั่นจนกว่าจะได้รับข้อความที่รออยู่ ในกรณีนี้ "Did Lose" ทันทีที่มันได้รับข้อความนั้น มันจะกระตุ้นการกระทำที่เชื่อมโยงกัน
กดเล่นแล้วทดสอบ เช่นเดียวกับที่เกิดขึ้นก่อนหน้า หน้าจอ Game Over จะต้องเด้งขึ้นทันทีเมื่อเครื่องบินสัมผัสพื้น
เครื่องบินกระโดด:
สำหรับเกมของเรา เราต้องการให้เครื่องบินของเราอยู่นิ่งๆในเส้นแนวนอน หมายความว่ามันจะ ไม่ เคลื่อนที่ไปซ้ายและขวา แทนที่จะใหเครื่องบินบินในแนวนอน เราจะให้ฉากเคลื่อนที่ไปรอบๆ เครื่องบินเพื่อให้เกิดอารมณ์ว่าเครื่องบินเคลื่อนที่อยู่ในแนวนอน ทั้งหมดนี้เพื่อให้ง่ายในการเล่นแบบปุ่มเดียว เมื่อแตะหน้าจอ เครื่องบินจะขึ้นแล้วจะเริ่มตกลง
กลับไปที่พฤติกรรมของเครื่องบิน และในหมวด Custom ให้เพิ่ม Behaviour Bundle ใหม่ โดยเปิดคุณสมบัติของมัน ไม่เหมือนกับพฤติกรรมอื่นๆ พวกนี้จะว่างเปล่าโดยสิ้นเชิง อย่างไรก็ตามเราสามารถเปลี่ยนชื่อของมันได้ ที่ด้านบนของคุณสมบัติ แตะที่ชื่อ Behaviour Bundle เพื่อเปลี่ยนชื่อสิ่งนี้ พิมพ์ Jump จากนั้นเราต้องปิด Behavior Bundle นี้ให้เป็นค่าเริ่มต้น ดังนั้นในแผงข้างของคุณสมบัติ ให้หาส่วนที่เขียนว่า On และแตะมันเพื่อปิด พฤติกรรม bundles ควรเปลี่ยนเป็นสีเทา
Behaviour Bundle นี้จะถูกใช้เพื่อเชื่อมโยงกลุ่มพฤติกรรมเข้าด้วยกัน นอกเหนือจากนี้ พวกเขาจะถูกดำเนินการในลำดับจากซ้ายไปขวาในลำดับ ดังนั้นเราจึงสามารถควบคุมได้ดียิ่งขึ้นว่าพฤติกรรมและเมื่อใดที่จะเกิดขึ้น เรามี Behaviour Bundle นี้ปิดอยู่เพราะเราไม่ต้องการให้การกระทำที่เราจะเชื่อมโยงกับมัน เปิดใช้งานจนกว่าตัวเกมจะเริ่มขึ้น
ตอนนี้เราต้องการเชื่อมโยงพฤติกรรมบางอย่างกับ Bundle ของเรา ก่อนอื่น ตั้งค่า Velocity ที่อยู่ภายใต้ Physics เปิดคุณสมบัติแล้วตั้งค่า X และ Y ให้เป็น 0 เราทำเช่นนี้เพื่อลบแรงโน้มถ่วงที่มีอยู่บนเครื่องบินและยกเลิกการกระโดดใดๆ ที่ยังมีผล
ต่อมาเราต้อง Apply Force ซึ่งอยู่ภายใต้ Physics เช่นกัน ปล่อย X ว่างไว้แต่ให้เปลี่ยน Y ให้เป็น 5 ตอนนี้เราสามารถลองปรับแต่งตัวเลขนี้ได้ในภายหลังเพื่อหาค่าที่ดีที่สุดสำหรับเครื่องบินของเรา
ด้านบนของ Behaviour Bundle ให้เพิ่มพฤติกรรม Started Touching ใหม่ เชื่อมโยงเข้ากับ Jump bundle ตอนนี้เราต้องการให้ Started Touching ตัวนี้มาตอบสนองต่อปุ่มที่เราได้สร้างไว้ก่อนหน้านี้ เพื่อให้เปลี่ยนไปเปิดคุณสมบัติแล้วแตะที่เครื่องบินเพื่อไปที่ผืนผ้าใบ เปลี่ยนเลเยอร์เป็น Button และแตะไปที่ภายในปุ่ม
พฤติกรรมของคุณควรดูเหมือนกับสิ่งเหล่านี้:
ยังมีฟังก์ชันบางอย่างที่เราต้องทำก่อนที่เราจะสามารถทดสอบได้ สิ่งแรกที่เราต้องทำคือเปิดใช้ชุด การนำไปยังหมวด Custom แล้วเพิ่มพฤติกรรม On และเชื่อมโยงเข้ากับ Started Touching ที่สอง เปิดคุณสมบัติแล้วแตะที่ Select Behaviour เพื่อเลือก Jump Behaviour Bundle จากรายการ เมื่อเราแตะปุ่มครั้งแรก Jump Bundle จะเปิดและเริ่มใช้แรงกดเพื่อเครื่องบิน แน่นอนว่าเรายังจะมีปัญหากับ Started Touching ที่เราสร้างขึ้นเป็นครั้งแรกและเราจะต้องแก้ไขกัน
ใต้ Started Touching แรก เพิ่ม Behaviour Off (ภายใต้คอนเทนต์) และเชื่อมโยงไปยัง Started Touching เดิมแก่ จากนั้นภายใต้คุณสมบัติ เลือก Started Touching ที่จะทำการปิด ตัวเลยของมัน ตอนนี้มันจะทำให้กันให้เครื่องบินเป็นสิ่งที่มีฟิสิกส์แล้วทำการปิดการควบคุมการแตะเหนือเครื่องบินซึ่งเราไม่ยังทำเสร็จ นอกจากนั้นเราจำเป็นต้องเพิ่ม Broadcast Message เพื่อบ่งบอกว่าเกมของเราได้เริ่ม ให้เพิ่ม Broadcast Message และเชื่อมโยงไว้ใต้พฤติกรรม Make Physics ซึ่งจะทำให้ข้อความเสริมก่อนได้ก่อนที่จะปิดการอ้างอิง
ในที่สุดเราจะกล่าวถึงพฤติกรรมสุดท้าย ให้นำพฤติกรรม Receive Message แต่ไม่ต้องยุ่งกับการติดตั้งอะไร เราต้องการให้ทำสิ่งของตัวเอง ตั้ง Event Key ให้เป็น Did Start จากนั้นเพิ่ม Behavior On และเชื่อมโยงเข้ากับ Receive Message เพื่อให้เปิดการทำงานของ Started Touching ครั้งที่สองที่เราทำ
แต่รอไว้ คุณอาจจะถาม ว่าพฤติกรรมนี้เปิดอยู่แล้ว? คุณก็พูดถูก! ให้เราเปลี่ยนเป็นปิด ในลักษณะนี้ เราจะไม่มีการทับซ้อนของปุ่มที่อาจทำให้เกิดข้อผิดพลาดได้ กล่าวได้ว่า เมื่อทุกอย่างเสร็จเรียบร้อย พฤติกรรมที่ทำให้เครื่องบินควรมีหน้าตาคล้ายกับนี้:
ลองทดสอบดู คุณอาจสังเกตเห็นว่าเครื่องบินของคุณตกเหมือนก้อนหิน แม้ว่าจะแตะอยู่ก็ตาม นั่นเพราะว่า Apply Force ของเราตั้งอยู่ที่ 5 แต่แรงโน้มถ่วงทำงานที่ -25 หากเราต้องการให้เครื่องบินของเราบิน เราจะต้องเอาชนะแรงโน้มถ่วงเปิดคุณสมบัติว่ายังไง Apply Force แล้วเปลี่ยนค่า Y เป็น 50 และค่า multiplier เป็น 5 สิ่งนี้จะทำให้เครื่องบินมีแรงยกทันทีให้บินได้ในช่วงสั้น มอบเวลาในการปรับสมดุลค่าจนกว่าจะรู้สึกถูกต้อง
การเพิ่มอุปสรรค:
เข้าสู่ขั้นตอนถัดไป เราจำเป็นต้องเพิ่มอุปสรรคที่ผู้เล่นของเราต้องหลีกเลี่ยง สำหรับเกมของเราจะมีอุปสรรคหลักอยู่สองตัวคือ หน้าผาและเพดาน ใช่แล้ว เปดาน เราจะไม่ตั้งอยู่ในถ้ำ อาจจะสาเหตุที่เรียบง่ายคือ หากไม่มีเพดาน ผู้เล่นสามารถทำการแตะหน้าจออย่างบ้าคลั่งและทำให้เครื่องบินบินเลยหน้าจอออกไปเลย และผ่านอุปสรรคทั้งหมด ไม่น่าสนุกแน่ใช่ไหม?
เริ่มต้นด้วยเพดานกันเถอะเพราะนั่นง่ายมาก เหมือนกับพื้นเราจะใช้ Empty Object ตรวจสอบให้แน่ใจว่าคุณอยู่ในเลเยอร์หลักและเพิ่มวัตถุว่าง จากนั้นสร้างและปรับขนาดให้กว้างเท่ากับหน้าจอ และเลื่อนให้มันอยู่เหนือผืนผ้าใบเล็กน้อย เรื่องนี้จะทำให้เครื่องบินของคุณสามารถบินในพื้นที่ออกจอได้แต่จะชนเมื่อมันออกไป
ในหน้าต่างของวัตถุ Empty Object คุณจะสังเกตุเห็นสามภาพอยู่ใต้ปุ่ม behaviours หนึ่งคือเรืออวกาศ หนึ่งคือกล่องอิฐ และอีกหนึ่งคือภาพภูมิประเทศ ปุ่มเหล่านี้กำหนดว่าวัตถุ Empty Object จะเป็นประเภทใด เริ่มจากซ้ายไปขวา ซึ่งคือวัตถุฟิสิกส์ วัตถุผนัง และวัตถุภูมิทัศน์
วัตถุฟิสิกส์คือวัตถุที่ได้รับผลกระทบจากฟิสิกส์ เรายังไม่ต้องการวัตถุดังกล่าว วัตถุผนังจะสร้างขึ้นและมีการชนกันแต่ไม่สามารถได้รับผลกระทบจากแรงภายนอก วัตถุภูมิทัศน์ไม่มีการชนกันและไม่สามารถโต้ตอบกับสิ่งใดได้ ตามกฎแล้ว วัตถุใดๆ ที่มีไว้เพื่อการตกแต่งควรตั้งค่าเป็นภูมิทัศน์ เพื่อทำการประหยัดพื้นที่และทำให้การทำงานของเกมมีประสิทธิภาพมากขึ้น
ตั้งค่า Empty Object เป็นวัตถุผนังแล้วด้านล่างปุ่มเหล่านั้นเมื่อเขียนคำว่าผ่านได้ ให้ปิดสวิตช์ นี่จะทำให้กล่องไม่ตกลงที่พื้น แต่เครื่องบินยังสามารถผ่านได้ นี่จึงทำให้เครื่องบินไม่หยุดเมื่อสัมผัสกล่องแต่จะอนุญาตให้เข้าสู่น้อยกว่าก่อนที่มันจะเริ่มตก
เพื่อความเป็นระเบียบ เมื่อยังถูกเลือกอยู่ ให้เปลี่ยนชื่อเป็นเพดาน ที่ด้านบนของเมนูคุณสมบัติ แตะที่ที่เขียนว่า Empty-# แล้วพิมพ์ว่า Ceiling การมีระเบียบไม่เจ็บเลย
จากนั้นเราจะเพิ่มแท็กลงใน Ceiling ของเรา แท็กคือวิธีการหลายวัตถุสามารถถูกอ้างอิงพร้อมกันตราบใดที่พวกเขามีแท็กเดียวกัน ตัวอย่างเช่น ถ้าคุณมีสวิตซ์ไฟซึ่งเมื่อใช้งานจะเปิดไฟหลายดวงในฉาก ให้ทีให้ทุกไฟมีแท็กเดียวกัน พวกเขาสามารถอ้างอิงแยกกัน และตรงกันนั่นเอง ในกรณีนี้เราอยากให้เครื่องบินร่วงเมื่อชนเพดานหรือหน้าผา ดังนั้นเราจึงต้องการให้มันติดแท็กเพื่อปล่อยให้เกิดเหตุการณ์ที่นั่นและช่วยประหยัดเวลาในการจัดพฤติกรรม
เมื่อเลือกวัตถุ Ceiling แล้วยังมีคนเปิดเมนูคุณสมบัติให้มองไปที่ด้านล่างจะเห็นปุ่มห้าปุ่มสลับอยู่ ที่แรกอาจจะถูกทำให้จางไป ต่อมาไอคอนรูปยานอวกาศ ถัดไปคือลูกศรสี่ทิศแล้วสนามหญ้าจะมีสี่แถว และสุดท้ายคือแท็กในการขาย ให้แตะที่แท็กเพื่อเปิดหน้าต่างแท็ก ในที่นี้เราต้องตั้งค่าแท็กใหม่ ให้แตะเครื่องหมายบวกแล้วพิมพ์ชื่อว่า Wall แล้วกด OK Wall จะปรากฏตอนนี้ใต้บาร์ค้นหา พร้อมวงกลมสีเขียวอยู่ทางขวาของมัน วงกลมนี้บ่งบอกว่าแท็กได้รับการแนบไปยังวัตถุ หากต้องการเปลี่ยนแท็กให้แตะที่ชื่อแท็ก เพื่อทำการลบ
ตอนนี้เราอยากให้เครื่องบินของเราสามารถชนกับวัตถุที่ถูก ตั้งชื่อว่า "Wall" และเมื่อมีเหตุการณ์นี้เกิดขึ้น เราจะปิดการเรียกใช้งานของผู้เล่น ซึ่งจะทำให้เครื่องบินตกไปที่พื้นและจบเกม ดังนั้นให้เลือกเครื่องบินและให้มีการไปที่ Behaviours และในหมวด Objects ให้เลือก Collided เปิดคุณสมบัติ ขณะแทนที่การแตะ Select Object ของเรา และเลือก Collision Object B ไปยังเครื่องบิน
เมื่อทำเสร็จแล้วเราก็สามารถเพิ่มพฤติกรรม Off จาก Custom tab ได้ ในคุณสมบัติเซ็ตคำสั่งให้เลือก Started Touching ซึ่งควบคุม Jump bundle ของเรา ซึ่งจะทำให้ปิดความสามารถในการบินเมื่อเราชนเพดาน ทดลองเล่นกันเลยกดปุ่มเล่นแล้วแตะบนหน้าจอจนเครื่องบินบินออกจากขอบจอ คุณควรจะเห็นมันตกลงไปที่พื้นแล้วขึ้นหน้า Game Over ขึ้น
โดยตอนนี้คุณอาจสงสัยว่า “ทำไมเครื่องบินถึงแค่ไปขึ้นและลงละ? แล้วเราจะให้เครื่องบินบินผ่านสิ่งใดได้ยังไง?” นั่นก็ง่ายมาก เราต้องให้โลกเคลื่อนที่ไปยังเครื่องบินของเรา หากฟังดูแปลกอย่ากังวลคุณจะไม่สังเกตเห็นเมื่อเล่นเกม
เวลาพูดถึงหน้าผา ให้ย้อนกลับไปที่ Asset browser และเลื่อนลงเพื่อหาหน้าผา มีหลายเวอร์ชันให้เลือก ดังนั้นเลือกที่คุณชอบที่สุด ฉันเลือกหน้าผาพื้นฐานสำหรับบทเรียนนี้
ลากหน้าผาไปที่ผืนผ้าใบแล้วให้เคลื่อนที่ไปทางขวาไม่ให้สังเกตเห็น จากนั้นให้ตั้งให้เป็นวัตถุผนังที่ผ่านได้ ตอนนี้เราต้องการเปลี่ยนจุดยึด จุดยึดคือสิ่งที่ hyperpad จะจัดเรียงเป็นจุดศูนย์กลางของกิจการ ดังนั้นการรวมคะแนนสำหรับตำแหน่ง จะค้นหาอ้างอิงจาก anchor แทนที่จะเป็นศูนย์กลางที่สอดคล้องกัน
เพื่อเปลี่ยน ให้เราเปิดคุณสมบัติการเปลี่ยนแปลง ที่ด้านล่างของหน้าต่างคุณสมบัติเลือกสี่ลูกศรเพื่อเปิดตัวเลือกการเปลี่ยนแปลง ค้นหาจุดยึดแล้วปลดล็อคมัน คุณควรเห็นจุดสีฟ้าเกิดขึ้นบนหน้าผา ตอนนี้ลากจุดอ้างอิงไปใกล้ยอดหน้าผาให้มากที่สุด จากนั้นล็อคจุดอ้างอิงอีกครั้ง
ตอนนี้เราต้องการให้หน้าผาเริ่มต้นเคลื่อนที่ไปยังผู้เล่น เปิด Behaviours ของหน้าผาแล้วเพิ่มพฤติกรรม Set Velocity ที่อยู่ภายใต้ Physics ตั้งค่า Y velocity เป็น 0 และ X เป็น -2 สิ่งนี้จะทำให้หน้าผาเคลื่อนที่ไปทางซ้ายอย่างช้าๆ เป็นสัตว์นามว่า สำหรับแกน X ค่าแบบลบจะทำให้วัตถุเคลื่อนที่ไปทางซ้ายในขณะที่ค่าบวกจะเคลื่อนไปทางขวา เช่นเดียวกันกับแกน Y ด้วยค่าลบคือการลง ค่าบวกคือการขึ้น
แต่ความเร็วนี้แย่มากเกินไป และมันสามารถทำให้รู้สึกแย่ได้เราจึงต้องปรับค่าตรงนี้ให้เร็วขึ้น เราสามารถใช้สิ่งที่เรียกว่า Attribute เพื่อทำให้การปรับค่าตรงนี้ได้ง่ายขึ้น ขอให้เราไปที่ป้าย Game Logic และเปิดคุณสมบัติของมัน อย่าลืมไอคอนที่ด้านล่างเรียงซ้อนกัน? แตะมันเพื่อเปิดหน้าต่าง Attributes Attributes ทำงานคล้ายคลึงกับ Tags ในการสร้างดังนั้นให้สร้างใหม่แล้วตั้งชื่อมันว่า Speed
คุณจะสังเกตเห็นว่าต่างจากแท็ก จะมีช่องสำหรับกรอกใต้ Attribute ใหม่ของเรา เราสามารถใช้กล่องนี้ในการป้อนค่าที่วัตถุอื่นสามารถอ้างอิงได้ ในขณะนี้ให้ตั้งค่า Speed เป็น 5 ตอนนี้เราสามารถกลับไปที่ Behaviours ของหน้าผาและเพิ่มพฤติกรรม Get Attribute บ้านช่อง Objects
เปิดคุณสมบัติ Get Attributes แล้วแตะที่ไอคอนหน้าผาที่ปรากฏขึ้น บนผืนผ้าใบ เลือกป้าย Game Logic และใต้ Attribute Key Type ตั้งให้ Predefined และเลือก Speed สำหรับกล่องข้อความให้ใส่ไว้
ถัดไป เราจำเป็นต้องตรวจสอบว่าหน้าผาจะเคลื่อนที่ไปทางซ้าย นึกถึงสมการที่บอกว่าค่าบวกนั้นเกี่ยวกับการเดินทางไปทางขวา? เราจะเปลี่ยนแปลงค่าไป เวลาเป็นไปจะเพื่อไปให้เช็คให้พฤติกรรม Get Attribute ตรงไปได้ ให้ไปที่ Logic และเลือก Multiply Values เชื่อมโยงเข้ากับ Get Attribute และเปิดคุณสมบัติของมันแล้วค่อยเปิดซ้าย หรือให้เปลวกกันมาให้ตรงกัน
ภายในกล่องแรกคุณสามารถนำค่า.Topic X velocity สังเกตด้วยว่าเมื่อเลือกพฤติกรรม Multiply Values จะมีวงกลมสีเขียวขนาดเล็กที่มีลูกศรหายใจอยู่ตามมุมของพฤติกรรมบางตัว? หมายความว่าเราสามารถนำพวกเขามาในกล่องได้ เพื่อทำให้โลกของเราใช้งานง่ายก็ ให้เพียงจิตใจให้ถือสายเช่นในบางคุณค่าจาก Get Attribute behaviour และวางไว้ในช่องแผนการให้คล้ายๆ ค่าที่ได้ในค่า X velocity ของ Multiply Values
(หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดูที่ Sharing Values)
จากนั้นในกล่องว่างให้พิมพ์ -1 ดังนั้นเราจึงกำลังนำ Speed ออก ด้วยนั้นมันก็มาที่ 5 จากนั้นจะ -1 เปลี่ยนเป็น -5 สิ่งนี้จะทำให้หน้าผาเคลื่อนที่ไปทางซ้ายเป็นฟิตฟังก์ชันในหน้าเมทริกซ์ จำนวน 5 เมตรต่อวินาที ดังนั้นให้กลับไปที่ Set Velocity behaviour แล้วที่ตั้งค่าของมันในที่เปลี่ยนเป็นที่ได้จาก Multiply Values สำหรับค่า X ทิ้ง Y สบายๆที่ 0
ทดสอบเกมดูและเห็นหน้าผาเคลื่อนไหวขึ้นที่หน้าจอของคุณ หน้าผาภูกวนที่เคลื่อนไหวได้ในอัตราที่ดีแล้ว แต่คุณสามารถปรับค่าได้อย่างรวดเร็วโดยการกลับไปที่ Game Logic label แล้วไปที่ Attributes การทำได้เร็วกว่าในการเข้าไปที่พฤติกรรมหน้าผาใช้เวลานาน
สังเกตว่าสิ่งนี้เครื่องบินจะผ่านหน้าผา? นั่นจะเป็นการที่เราตั้งเป็น Passable เราต้องการให้เก็บตัวนี้ไว้ แต่เรายังสามารถเรียกให้เครื่องบินชนกับมันได้ ทั้งนี้เราต้องติดแท็ก Wall เปิดคุณสมบัติหน้าผาแล้วไปที่แท็บ Tags
เลือก Wall แล้วลองทดสอบเกม โดยเฉพาะเมื่อคุณบินไปที่หน้าผา.
บอกเลยว่ามีความแปลกๆ ที่เกิดขึ้นใช่ไหม? เครื่องบินเพิ่งตกลงมาอย่างไม่ควบคุมก่อนที่เราจะสัมผัสหน้าผา นั่นเกิดจากการกำหนดของการชนกันของหน้าผาไว้ไม่ถูกต้อง โดยค่าเริ่มต้นการชนกันของวัตถุทั้งหมดนั้นยังเกิดจากกรอบกำหนดพวกมันทั้งคู่ (การมีบริเวณในการสัมผัส). กรอบกำหนดนี้ได้ถูกแก้ไขโดยการควบคุมขนาดของวัตถุ รูปแบบพวกนั้นแล้ว ที่ถูกกำหนดไว้จากความกว้างและความสูงสูงสุดของกราฟิกของมัน
แต่เราจะทำให้ถูกต้องได้อย่างไร ง่ายมาก.
hyperPad จะมีการตรวจสอบการชนกันที่สร้างเสร็จในตัวที่ทำให้เรามีความง่ายในการปรับการชนของวัตถุได้ อย่างที่ต้องการ เริ่มจากเปิดการตั้งค่าของหน้าผาและที่ซ้ายของการตั้งค่าคุณควรมองเพื่อดูหน้าต่างเล็กๆ ที่มี 3 ตัวเลือก สองลูกศรชี้มาที่กันเอง สองกล่องที่ทับซ้อนกัน และถังขยะ
เราอยากได้ตัวเลือกแรก ให้แตะเพื่อเปิดการตรวจสอบการชนกัน
ทันทีที่คุณจะเห็นชุดเครื่องมือในแถบข้าง เครื่องมือสองตัวแรกคือการเปลี่ยนตำแหน่งและการเคลื่อนที่ด้วย หากเลือกลูกศรเราสามารถแก้ไขการชนกันของหน้าผาได้โดยการปรับขนาดให้เหมาะสม แต่ว่าคุณอาจสังเกตว่าหากกล่องอาจจะไม่ใช่ทรงที่ดีที่สุดหากเราต้องการให้การชนกันนั้นมีความถูกต้องมากที่สุด
เครื่องมือสามตัวถัดไปสามารถช่วยให้เราทำอย่างนั้น เครื่องมือแรกสองตัว คือการสี่เหลี่ยมและสี่เหลี่ยม จะเปลี่ยนกล่องให้มีรูปร่างที่เกี่ยวข้องและเครื่องมือที่สาม ที่ดูเหมือนรูปหลายเหลี่ยมแปลกอาจช่วยให้เราทำกล้องที่มีการชนกันในรูปร่างอย่างเฉพาะโดยการแตะและเชื่อมต่อจุด ให้ใช้เครื่องมือนี้
เลือกเครื่องมือแล้วแตะที่ยอดหน้าผา คุณควรเห็นการชนที่เดิมหายไปแล้วมีจุดสีเขียวเล็กๆ ขึ้นมา ตอนนี้แตะที่มุมซ้ายล่างของหน้าผาเพื่อสร้างจุดที่สองพร้อมกับเส้นสีดำ เชื่อมโยงกลับไปยังจุดเริ่มแรก เมื่อต้องการเก็บให้ได้มากที่สุด อาจไม่ต้องมีความต้องการที่แม่นยำแล้ว แต่ต้องสามารถดึงดูดวัตถุของเครื่องมือได้
ในที่สุดให้แตะที่เครื่องหมายถูกเพื่อบันทึกการเปลี่ยนแปลง หากคุณทำผิดพลาดให้ใช้เครื่องมือยางลบ หรือแค่แตะที่ X เพื่อยกเลิกการเปลี่ยนแปลงทั้งหมดแล้วลองใหม่
เมื่อทำเสร็จแล้วลองทดสอบเกมอีกครั้ง เครื่องบินควรตกลงเมื่อชนกับหน้าผา
ตอนนี้นี้ก็หล่นเป็นเรื่องง่าย แน่นอนว่าจะมีหน้าผาเพียงอันเดียวและตำแหน่งของมันนั้นวางอยู่ตลอดในที่เดิม เราต้องการสร้างความท้าทายขึ้นมาเพิ่มเติมอีกนิด! ดังนั้นแผนของเราคือให้ตำแหน่งในแกน Y ของหน้าผานี้เกิดจากการสุ่มในระหว่างการสร้างและทำให้ Game Logic ควบคุมทั้งสิ่งนี้เพื่อให้มันเกิดขึ้น พฤติกรรมที่ทำการค้างอยู่คือเหมาะที่จะนำไปใช้
เริ่มต้นด้วยการกลับไปที่รายการ Attributes ของ Game Logic และสร้าง Attribute ใหม่ชื่อว่า Cliff Bottom pos
ตอนนี้เข้าไปที่พฤติกรรมใน Game Logic สร้าง Behaviour Bundle ใหม่เรียกมันว่า Calculate Positions ต่อไปเราต้องการเข้าไปที่ Logic tab และดึงพฤติกรรม Random Number ไป สร้างการเปิดคุณสมบัติเพื่อกำหนดตัวแปรเป็น 4 กับ 14 เชื่อมโยงเข้ากับ Calculate Positions bundle
ตอนนี้คุณอาจจะสงสัยว่าฉันได้ตัวเลขเหล่านั้นมาจากไหน เพื่อไปหาตัวเลขเหล่านั้น สามารถกลับไปที่ Asset Browser และค้นหาหน้าผาของเราอีกครั้ง แตะและค้างไว้ที่หน้าผาเพื่อเปิดหน้าต่างทางเลือก แตะที่ Preview จะทำให้งานผิด Frame Preview เปิดขึ้น ที่นี่เราสามารถเห็นขนาดของหน้าผาได้คือ 8 เมตร โดย 16 เมตร
เราจึงตั้งค่านี้อยู่ที่ 4 และ 14 เพราะเมื่อเรากำลังสร้างหน้าผา ตำแหน่งของเขาจะถูกปรับปรุงให้สุ่มได้ระหว่าง 4 ถึง 14 เมตรในแกน Y หรือขึ้นและลงและเรายังปรับเล็กน้อยเพื่อให้หน้าผาไม่เกิดบริเวณสูงหรือต่ำเกินไปบนหน้าจอ
กลับไปที่การทำงาน Behavior ของ Game Logic เพื่อให้กำหนดการมี Get Attribute behaviour ตั้งประมาณ.
ไปที่ขอบเขตของ Objects แล้วดึง Get Attributes ไป.
เปิด Get Attribute Properties แล้วคลิกที่ไอคอนหน้าผาที่ปรากฏอยู่
ในผืนผ้าใบ ให้เลือก Game Logic label และตั้งค่าคีย์ของ Attribute ให้เป็น Predefined และเลือก Cliff Bottom pos ตาม Value ที่จะได้รับจากค่าของ Attribute นี้
คืนๆให้คุณมาที่ยี่ห้าหน้าผาจะใช้ลิสต์มาสเก็บซึ่งให้แสดงการเล่นเกมของคุณเป็น Game Logic ปลายของคลิาฟบอา
ทดสอบอีกครั้ง.
น่าจะสำหรับกลไกได้วงซื่อของปังค้ำอยากได้การให้สร้าง Game Logic Behaviour ทุกอย่างกลับไปที่ Game Logic behaviours เพื่อหาทางเดินทางด้วย
เมื่อคุณสอบถามง่ายกว่าไม่ยากให้ค้นหา Game Logic ก็เปิด Behavior โดยใช้สิทธิของการเปิดในจุดไหม
Operation ไปใต้ Advanced เลตอย่างไม่อยู่ในสิ่งค้างใต้การ UPGMA
แสดงให้เห็นเริ่มนะงานนี้มันก็จะ_mass_assoc_ muzie กลไกคือjenzi ขอบคุณให้จัดการที่จัดทำขึ้นที่การว่ากล่องตรงพิเศษ
ไม่ได้ทำซ้ำการสร้างที่เพื่ออาจเห็นที่ปลายได้}
เล่น!

