2009-07-10 27 views
6

Tôi đang viết một trò chơi bằng python với pygame và cần hiển thị văn bản trên màn hình.Cách tốt để hiển thị phông chữ được phác thảo là gì?

Tôi muốn hiển thị văn bản này bằng một màu với đường viền, để tôi không phải lo lắng về loại nền mà văn bản đang được hiển thị.

pygame.font dường như không cung cấp hỗ trợ để làm điều này loại trực tiếp, và tôi tự hỏi nếu có ai có bất kỳ giải pháp tốt để đạt được điều này?

+0

Tôi đã chấp nhận câu trả lời nhưng tôi vẫn quan tâm đến bất kỳ giải pháp nào khác có thể tồn tại. – SpoonMeiser

Trả lời

2

tôi có thể cung cấp cho bạn một cách nhanh chóng và xấu giải pháp:

in văn bản 8 lần, bao vây nó, cộng thêm một lần nữa cho văn bản bên trong, như thế này

UUU 
UIU 
UUU 

U cho bên ngoài màu sắc và tôi cho màu sắc bên trong.

+1

Thực tế, bốn lần (các góc) đủ tốt nếu đường viền không rộng hơn một pixel. Hai điểm ảnh cũng tốt. Nó phụ thuộc vào tốc độ của trình kết xuất phông chữ như thế nào là giải pháp thực sự tồi tệ. Tôi đã sử dụng nó trong XNA và nó khá nhanh ở đó, ít nhất là nếu văn bản được kết xuất hàng loạt. – OregonGhost

+0

mẹo hay! –

+0

bạn chỉ cần hiển thị phông chữ một lần. Bạn có thể tái sử dụng bề mặt được hiển thị nhiều lần cho mỗi lần nó được chiếu lên bề mặt mục tiêu. – SingleNegationElimination

3

Một cách nhanh chóng và dơ bẩn sẽ được làm cho văn bản của bạn nhiều lần với màu phác thảo, chuyển bởi một lượng nhỏ trên một vòng tròn xung quanh vị trí văn bản:

 
      1 
     8 | 2 
     \ |/
     \|/ 
    7----*----3 
     /|\ 
     /| \ 
     6 | 4 
      5 

Sửa: DOH bạn đã nhanh hơn! Tôi sẽ không xóa câu trả lời của tôi mặc dù, nghệ thuật ASCII này chỉ là quá tốt và xứng đáng để sống!

Chỉnh sửa 2: Như OregonGhost đã đề cập, bạn có thể cần nhiều hoặc ít bước hơn để vẽ phác thảo, tùy thuộc vào chiều rộng đường viền của bạn.

+0

Xem nhận xét của tôi tại câu trả lời của Nick D., cũng áp dụng cho câu trả lời này. – OregonGhost

Các vấn đề liên quan