PaperMC cung cấp một nền tảng đơn giản để mở rộng máy chủ Minecraft bằng các plugin nhỏ, mà không yêu cầu người chơi phải cài đặt bất cứ thứ gì. Khi phát triển plugin, câu hỏi đặt ra là làm thế nào để hiển thị thông tin động cho người chơi. Câu trả lời nằm ở một tính năng gốc thường bị bỏ qua: thanh thông tin trùm . Ban đầu được thiết kế cho các trùm cuối, thanh thông tin trùm có thể được tái sử dụng và dùng như một HUD tối giản.
Thay vì giải thích các con số, bạn có thể sử dụng các trạng thái ngắn gọn chỉ truyền tải cảm xúc. Điều này thường có hiệu quả mạnh mẽ hơn so với bảng điểm hoặc tin nhắn trò chuyện khác. API của Bossbar mạnh mẽ đến bất ngờ: màu sắc, kiểu dáng và tiến độ có thể được thay đổi linh hoạt. Không giống như bảng điểm, Bossbar luôn hiển thị kín đáo ở đầu màn hình.
BossBar bar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID);
bar.addPlayer(player);
Ví dụ 1: Hiển thị nhiệt độ: Giá trị độ C được chuẩn hóa về phạm vi 0–1, và màu sắc được chọn tương ứng: xanh lam cho lạnh, xanh lục cho dễ chịu và đỏ cho nóng.:
bar.setTitle(String.format("🌡 %.0f°C", celsius));
bar.setProgress((celsius + 20) / 60.0);
bar.setColor(celsius < 10 ? BarColor.BLUE : celsius < 30 ? BarColor.GREEN : BarColor.RED);
Ví dụ 2: Oxy dưới nước: Màn hình phân đoạn rất phù hợp cho các giá trị rời rạc như nhịp thở. SEGMENTED_10 Bạn có mười đơn vị hiển thị.:
bar.setTitle("💨 Sauerstoff");
bar.setStyle(BarStyle.SEGMENTED_10);
bar.setProgress(player.getRemainingAir() / 300.0);
Ví dụ 3: Thanh sợ hãi rung động: Sóng hình sin khiến tiến độ dao động theo nhịp điệu. Trong một BukkitRunnable Điều này tạo ra hiệu ứng sống động.:
double pulse = 0.5 + 0.5 * Math.sin(phase);
bar.setProgress(fearLevel * pulse);
bar.setTitle(fearLevel > 0.7 ? "💀 GEFAHR" : "👁 Unruhe");
Bạn có thể xếp chồng tối đa năm thanh tiến độ của trùm cùng lúc, cho phép tạo ra các hệ thống HUD phức tạp. Để làm cho một thanh tiến độ gần như vô hình, bạn đặt tiến độ thành... 0.0001 – Tiêu đề vẫn hiển thị, nhưng thanh tiến độ biến mất. Do đó, thanh tiến độ của trùm là một công cụ bị đánh giá thấp trong việc tạo bầu không khí cho trò chơi. Đặc biệt trong các thiết lập kinh dị hoặc sinh tồn, nó có thể được sử dụng để gợi ý các tình huống mà không cần tiết lộ các con số cụ thể cho người chơi.
Để triển khai các cơ chế này một cách hiệu quả, tôi khuyên bạn nên sử dụng mẫu nhỏ của tôi, mẫu này định nghĩa cấu trúc plugin. Ngoài cấu hình Gradle, kho lưu trữ cũng chứa các tập lệnh xây dựng cho môi trường cục bộ và sản xuất, cũng như các ví dụ về vũ khí tùy chỉnh và gói tài nguyên. Điều này cho phép bạn nhanh chóng thử nghiệm các ý tưởng HUD mới vì bạn không phải xử lý các chi tiết đóng gói, thiết lập máy chủ và triển khai mỗi lần.