Tôi đang gặp phải sự cố khi cố gắng đặt một hệ thống văn bản/hộp thoại trong dự án trò chơi của mình. Khi tôi tạo ra một phông chữ và gọi phương thức vẽ trên nó đi qua spriteBatch được cập nhật của máy ảnh, mỗi pixel của phông chữ có cùng kích thước của một sprite.LibGDX sprite batch font bad scale rendering
tôi nhận được sau render:
Những gì bạn có thể thấy trên hình ảnh là đỉnh của "h" của "hello" với mỗi pixel quá khổ. Máy ảnh tương tự được sử dụng để hiển thị các ô/hình xếp.
Hiệu quả tôi muốn đạt được là tương tự như sau:
Đây là mã:
// 15 * 12 tile size
camera = new OrthographicCamera(Const.VIEWPORT_WIDTH, Const.VIEWPORT_HEIGHT);
BitmapFont font = new BitmapFont(Gdx.files.internal("data/fonts/myfont.fnt"));
// ....
// p => player position
camera.position.x = p.getX();
camera.position.y = p.getY();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
font.draw(batch, "hello", p.getX(), p.getY());
batch.end();
Tôi đã cố gắng sử dụng font.setScale()
không thành công.
Có ai đó biết cách đạt được điều này không?
Cảm ơn bạn đã trả lời của bạn, nhưng tôi muốn các văn bản phối hợp để được giống như ma làm cho máy ảnh. Tôi có phải cập nhật điều phối theo cách thủ công không? –
Đúng, bạn phải tính toán theo cách thủ công, tôi đã chỉnh sửa câu trả lời của mình để chỉ cho bạn cách thực hiện. – Lestat
Nó hoạt động hoàn hảo, cảm ơn bạn rất nhiều vì câu trả lời hay này. –