หน่วยที่ 11 : Game over
ถ้าไม่มีหน้า Game over เกมจะเล่นไปจนกว่า live จะหมด ซึ่งอาจใช้เวลาเกินกว่าเวลาที่กำหนด ฉะนั้นเวลาจะแสดงผลเป็นค่าลบ (ดังภาพ) ดังนั้นเราจึงต้องกำหนดเงื่อนไขให้จบเกม Game over ด้วยเงื่อนไขให้เงื่อนไขหนึ่ง
เวลาหมด 30 วินาที --> Game over
live หมด -> Game over
Concept Game over
มีเหตุการณ์เกิดขึ้น ดังนี้
เวลาหรือชีวิตหมด -- ทุกอย่างจะหยุดนิ่ง
มีหน้าต่าง Game over ปรากฏขึ้นมา
สรุปคะแนนที่ได้
มีปุ่ม Restart เพื่อเล่นเกมอีกครั้ง
ระบบ ลบค่าตัวแปรจากเกมที่แล้วให้หมด
ระบบ เริ่มเล่นเกมอีกครั้ง
จัดการ layout
เพิ่ม 1 layer ตั้งชื่อว่า game over
* Layer ไหนเสร็จแล้วให้ล็อกไว้ *
Insert new object --> Sprite --> ตั้งชื่อ black --> เทสีดำลงไป
ขยาย black สี่เหลี่ยมสีดำหน้าครอบคลุมทั้ง layout
ปรับค่า Opacity ของ black เป็น 60 หรือตามแต่เห็นเหมาะสม
Insert new object --> Sprite --> ตั้งชื่อ popup --> เรียกภาพ สรุปคะแนน เข้ามา
จัดวางไว้กลางหน้าเกม
Insert new object --> Sprite --> ตั้งชื่อ restart --> เรียกภาพ ปุ่ม restart เข้ามา
กลับไปที่ layer Game
ก็อปปี้ text ชื่อ score ออกมา
กลับไปที่ layer Game Over
วางลงบน popup
ปรับแต่งฟอนต์ตามต้องการ
จัดการ Event sheet
ซ่อน layer game over
สั่งให้ระบบซ่อน layer game over ไว้ก่อน มิฉะนั้น เริ่มเกมมาจะเจอ layer game over ก่อน และจะเล่นเกมไม่ได้
Add Event --> System --> Next --> On start of layout
Add action --> System --> Set layer visible
เลือก layer ที่ต้องการซ่อนไว้ก่อน ในที่นี้ตือ layer 2 (game over)
เลือก Invisible คือ ไม่แสดง
Event sheet
สร้างเงื่อนไขที่จะ game over
มี 2 เงื่อนไข
1. ชีวิตหมด
2. เวลาหมด
ถ้าชีวิตหมด จะเกิดอะไรขึ้น
Add Event --> System --> Next --> Compare variable --> Next
Variable - เลือกตัวแปร live
Comparison - Less or equal น้อยกว่าหรือเท่ากับ
Value - 0
ถ้าตัวแปร live มีค่าน้อยกว่าหรือเท่ากับ 0
Add action จะเกิดอะไรขึ้น
System --> Wait --> 0.5 second
System --> Set layer visible (สั่งให้ layer 2 แสดงออกมา)
Layer --> 2
Visibility --> Visible
ถ้าเวลาหมด จะเกิดอะไรขึ้น
Add Event --> System --> Next --> Compare variable --> Next
Variable - เลือกตัวแปร numTime
Comparison - equal to (เท่ากับ)
Value - 0
ถ้าตัวแปร numTime มีมากกว่าหรือเท่ากับ 0
Add action จะเกิดอะไรขึ้น
System --> Set layer visible (สั่งให้ layer 2 แสดงออกมา)
Layer --> 2
Visibility --> Visible
สั่งระบบให้เริ่มเล่นใหม่
เมื่อผ่าน event จากข้างบนมาหมดแล้ว
สั่งระบบแสดง layer game over ออกมา
กลับไปที่ Layout
Insert new object --> เลือก Mouse
กลับมาที่หน้า Event sheet
Add Event --> System --> Layer is Visible --> เลือก layer ที่ต้องการแสดง คือ 2 หรือ layer "game"
คลิกขวาหน้ารูปฟันเฟือง
Add --> Add Sub-event
Mouse --> On object clicked
Mouse button - Left (คลิกเม้าส์ข้างไหน)
Click type - Clicked (ประเภทของการคลิก)
Object clicked - เลือกภาพปุ่ม restart (เลือก object ที่ต้องการคลิก)
Add action
System --> Restart Layout (เริ่ม layout ใหม่ทั้งหมด)
System --> Restart golbol variables to default (ล้างค่าคัวแปรจากเกมที่ผ่านมาหมด)