Cách đo chiều dài 1 chuỗi ?

Black FaceBlack Face Posts: 424Registered
[size=medium]Mình muốn đo chiều dài 1 chuỗi, sẽ trả về chuỗi đó dài bao nhiêu, giá trị trả về ở đây không phải bao nhiêu ký tự, mà là bao nhiêu pixel trên màn hình.[/size]

[size=medium]Đã qua cách xác định kiểu lấy số ký tự * kích thước font chữ nhưng không chính xác, vì chữ i sẽ có kích thước nhỏ hơn chữ w. Nên tính toán ra pixel sẽ không đúng, và các ký tự khác cũng có kích thước khác nhau, cụ thể các bạn có thể xem hình dưới[/size]
[size=xx-small]18e989.png[/size]

[size=medium]Mình làm khung hiển thị sẽ bằng chiều dài của chuỗi, nhưng vấn lệch 1 khoảng cách, và nếu chuỗi có toàn chữ i, kích thước khung sẽ sai rất lớn[/size]


[size=medium]Vậy các bạn còn ý tưởng nào khác để tính ra chiều dài của chuỗi ký tự không, có thể chia sẻ với mình. Cám ơn các bạn.[/size]

Comments

  • DeathDeath Posts: 732Registered, Moderators
    Nghiên cứu mấy script hội thoại giống như trong game Angel Key chẳng hạn :D (Dù chưa hoàn hảo lắm)
  • Black FaceBlack Face Posts: 424Registered
    Death wrote:
    Nghiên cứu mấy script hội thoại giống như trong game Angel Key chẳng hạn :D (Dù chưa hoàn hảo lắm)

    Ak chù, sao mình ko nghĩ ra nhỉ, trong rmxp cũng có script hội thoại, để nghiên cứu xem nó hoạt động thế nào, thanks death
  • dsiver144dsiver144 Posts: 1,064Registered
    Hình như có hàm text_size(str) trả về Rect. Lúc trước nhớ có làm cái word wraping. Cái này mình làm bên RGSS3 chắc mấy cái khác cũng tương tự. :D
    example:
    str = "ABC"
    x = 0 # Biến cộng dồn pixel của từng character.
    str.each do |ch|
    x += text_size(ch).width
    end
  • Black FaceBlack Face Posts: 424Registered
    [size=small]Thanks 2 thím ở trên rất nhiều, mình đã tìm ra cách, có hàm trả về nhưng trước giờ mình không tìm hiểu tới.[/size]


    [size=small]Kết quả:[/size]


    [size=small]181e64.png
    [/size]
Sign In or Register to comment.