Catch Ball - Neon Arcade GAME
Catch Ball mang đến trải nghiệm arcade tốc độ cao với chủ đề cyberpunk đặc trưng của Neon Arcade. Lối chơi cốt lõi rất trực quan: bắt những quả bóng rổ đang rơi để ghi điểm, né bom để bảo toàn mạng sống và cố gắng đạt được chuỗi combo cao.
**Cách chơi**
- Hai loại bóng: Bóng rổ (80%, màu cam-đỏ) và Bom (20%, màu đen pixel-art)
- Bắt bóng rổ: +10 điểm, tăng combo
- Bắt bom: -1 mạng (phải né!)
- Trượt bóng rổ: -1 mạng
- Trượt bom: không bị phạt (thoát hiểm may mắn)
- Bắt đầu với 3 mạng (biểu tượng trái tim trên HUD)
- Trò chơi kết thúc khi hết mạng
**Độ khó tăng dần (Hệ thống kép)**
- Lên cấp dựa trên điểm số: lên cấp sau mỗi 100 điểm, +60 px/s mỗi cấp, khoảng thời gian xuất hiện -120ms mỗi cấp
- Tăng độ khó theo thời gian: +30 px/s mỗi 10 giây (tối đa +300 px/s), độ khó tăng ngay cả khi không ghi điểm
- Khoảng thời gian xuất hiện tối thiểu: 400ms (tốc độ nhanh chóng ở giai đoạn cuối game)
- Tốc độ bóng: bắt đầu ở 250 px/s, dễ dàng đạt hơn 800 px/s sau 5 phút
**Hệ thống Combo**
- Bắt bóng rổ liên tiếp sẽ cộng dồn Chuỗi combo
- Hiển thị combo khi combo ≥5
- Cứ mỗi 5 combo sẽ cộng thêm 1 điểm thưởng
- Trượt bóng rổ hoặc bắt được bom sẽ đặt lại combo
**Thiết kế hình ảnh: Chủ đề Neon Arcade**
- Nền xanh đen đậm (#0A0E1A) cho độ tương phản bóng cao
- Màu chủ đạo lục lam (#00FFCC) cho vợt, viền, điểm số
- Điểm nhấn màu hồng neon (#FF006E) và vàng điện (#FFBE0B)
- Viền phát sáng trên vợt, viền trò chơi và chữ combo
- Hoạt ảnh xung bom (thang sóng sin 150ms) để cảnh báo
- Phản hồi màu vợt: xanh lá cây khi bắt được, đỏ khi trượt/bắt bom
- Biểu tượng trái tim (❤️) cho mạng sống, mờ dần thành màu xám khi mất mạng
- Âm thanh hoạt ảnh nhanh và điện (phản hồi 80-150ms)
- Phông chữ sans-serif-condensed cho văn bản chính, sans-serif-medium cho số, monospace cho combo
Trang & Điều hướng
- MainActivity: 6 nút tròn (CHƠI, LỊCH SỬ, THỐNG KÊ, THÀNH TÍCH, HƯỚNG DẪN CHƠI, CÀI ĐẶT)
- GameActivity: GameView toàn màn hình với HUD 3 trái tim, hiển thị điểm số trực tiếp, nút tạm dừng, lớp phủ combo
- HistoryActivity: RecyclerView các trận đấu trước đó với các thẻ hiển thị điểm số/ngày/số bóng bắt được/combo tối đa/thời lượng
- StatisticsActivity: 7 thẻ thống kê có thể cuộn (tổng số trận đấu, điểm cao nhất, tổng điểm, combo tối đa, số bóng bắt được/bỏ lỡ, tỷ lệ bắt bóng)
- AchievementsActivity: RecyclerView 14 thành tích với thanh tiến độ và sao trạng thái mở khóa
- SettingsActivity: 4 thẻ được nhóm lại (Tùy chọn trò chơi, Trợ năng, Quản lý dữ liệu, Giới thiệu) với các nút chuyển đổi khi chạm vào hàng
- HowToPlayActivity: 4 phần hướng dẫn (Luật cơ bản, Các loại bóng, Hệ thống combo, Kết thúc trò chơi)
- Thanh công cụ Neon tùy chỉnh trên tất cả các trang phụ (nền bề mặt, tiêu đề màu lục lam, nút quay lại)
- Các trang phụ quay lại trang chủ thông qua nút quay lại trên thanh công cụ; Trang chính hiển thị quảng cáo xen kẽ khi thoát
Hộp thoại tùy chỉnh
- Hộp thoại Tạm dừng: hiển thị khi nhấn tạm dừng hoặc quay lại trong khi chơi game, các nút Tiếp tục/Thoát
- Hộp thoại Kết thúc trò chơi: hiển thị điểm số cuối cùng, số bóng đã bắt được, combo tối đa, các nút Chơi lại/Menu chính
- Hình nền hộp thoại tùy chỉnh (viền màu lục lam + góc tròn)
- Hộp thoại xác nhận để xóa lịch sử và đặt lại số liệu thống kê
Hệ thống Thành tích (14 thành tích)
- Các mốc điểm số: Điểm số đầu tiên, Bậc thầy điểm số I/II/III (100/500/1000 điểm)
- Trò chơi hoàn hảo: hoàn thành trò chơi mà không mất mạng
- Các mốc combo: Combo Khởi đầu/Bậc thầy I/II/Huyền thoại (5/10/20/50 combo)
- Số lượng trò chơi: Tân binh/Cựu binh/Huyền thoại (10/50/100 trò chơi)
- Đặc biệt: Người mạo hiểm (bắt 10 quả bom), Bắt may mắn (bóng tím hiếm, di sản)
Ghi chú UX
- Điều hướng đa hoạt động thuần túy, không có thanh điều hướng dưới cùng Cấu trúc tab
- Thanh công cụ Neon tùy chỉnh trên tất cả các trang phụ (màu nền bề mặt, văn bản tiêu đề màu lục lam, nút quay lại có màu)
- Thích ứng tràn viền WindowInsets thông qua tiện ích InsetsHelper
- Thanh công cụ tự động được thêm khoảng đệm cho thanh trạng thái; nội dung cuộn/danh sách tự động được thêm khoảng đệm cho thanh điều hướng
- GameView sử dụng Choreographer để có vòng lặp hiển thị ổn định 60 FPS
- Tạm dừng khi có Activity onPause, tiếp tục khi có onResume (với bù thời gian tạm dừng để tránh tăng đột ngột độ khó)
- Lớp hiển thị phần mềm (LAYER_TYPE_SOFTWARE) để tương thích đa thiết bị
