gohud

การรอ การบอก การนับ

← วิดเจ็ต

GoSnackbar — ข้อความที่จัดที่ให้ตัวเอง

วางตัวอยู่ด้านล่าง (หรือด้านบน) เหนือเซฟแอเรียและคีย์บอร์ด แล้วหายไปเอง ถ้าไม่มีมัน คุณต้องเขียนเลเยอร์ การจัดตำแหน่ง ตัวจับเวลา และการเก็บกวาด ซ้ำในทุกหน้าจอที่ต้องบอกว่า "บันทึกแล้ว"

snack.show_text("บันทึกแล้ว", GoTheme.SUCCESS)

# โอกาสที่จะย้อนกลับ — 0 คือปุ่มแรก, -1 หมายถึงหมดเวลาไปเอง
if await snack.post({"text": "ทิ้งไอเทมแล้ว", "actions": ["ย้อนกลับ"]}) == 0:
    restore_item()

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

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

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

GoSpinner — การรอที่ยังมองไม่เห็นปลายทาง

เกมที่คุยกับเซิร์ฟเวอร์ต้องการตัวนี้มากกว่าอะไรทั้งหมดในหน้านี้: หน้าจอที่นิ่งอยู่เฉย ๆ คนอ่านว่าเกมค้าง เรียกครั้งเดียวก็เปลี่ยนปุ่มที่คุณเพิ่งกดให้เป็นสปินเนอร์ตรงที่เดิม

GoSpinner.busy(buy_button, true)
var ok := await server.purchase(item)
GoSpinner.busy(buy_button, false)

ปุ่มยังคงขนาดเดิม — ป้ายข้อความกลายเป็นโปร่งใสแทนที่จะหายไป แถวจึงไม่กระโดด — และมันถูกปิดการกด ขณะที่กำลังหมุน ส่วนหลังนั่นแหละคือประเด็น: การซื้อต้องไม่ถูกยิงสองครั้งระหว่างที่คุณ await อยู่ ถ้าเปิด reduce_motion มันจะไม่หมุน แต่เป็นจุดสามจุดเต้นเป็นจังหวะแทน

ความคืบหน้าที่วัดได้คือ GoBar ส่วนสปินเนอร์ไม่ได้สัญญาอะไรเลยว่ามันจะจบเมื่อไร

GoBadge — จุดที่ยังไม่ได้อ่าน ป้าย "ใหม่" และเลข 99+

GoBadge.attach(mail_button, unread_count)   # ซ่อนตัวเองเมื่อเป็นศูนย์
GoBadge.attach(shop_button, 0, "ใหม่")
GoBadge.attach(friend_button, 3, "", true) # จุดจุดเดียว — "มีอะไรอยู่ตรงนั้น"

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

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