3-9 Vẽ font

3-9 Vẽ font

Trên [MyGame], có chức năng hiện chữ nhờ font [TrueType]

Vẽ [Font]

Đây là chương trình để viết chữ, tạo font.

require 'mygame.boot'
Font.render "Hello"
Hình 3-22 Màn hình khi gọi chữ ra

![12.PNG](C:\Users\Administrator\Desktop\Image\Chapter 3\12.PNG)

Nếu đưa cho lệnh Font.render một dãy chữ thì trên màn hình sẽ hiện dãy chữ đó.

Font.render Dãy chữ

Lệnh [Font.render] cũng cùng loại như lệnh [Image.render].

require 'mygame/boot'
Font.render "Hello", :x => 100, :y => 100
Hình 3-23 Chỉ định vị trí cho dãy chữ

13.PNG

Font Object

Tạo tạo một font object mới chúng ta dùng lệnh [Font.new]. Vào argument chính là dãy chữ và vị trí ta muốn gọi ra.

 Font.new(Dãy chữ, vị trí giản lược của dãy chữ)

Về cơ bản thì chúng ta tạo Object như ví dụ dưới đây.

 fnt = Font.new("Hello", :x=>100, :y=>100)

Theo lệnh này có nghĩa là dãy chữ [Hello] sẽ được tạo ở vị trí tọa độ (x,y) là (100,100), lấy biến số là fnt để đặt cho dãy chữ.

Trong dãy chữ, nếu ta chỉ thị dãy rỗng là " " thì chương trình sẽ trở thành error.

Thao tác với font object

Về cơ bản thì chúng ta có những lệnh dưới đây có thể thực hiện với font object. Chúng ta lấy biến số là fnt để đặt cho font object.

Đưa ra màn hình

fnt.render

[Render] là lệnh đưa dãy chữ ra màn hình.

Xác lập vị trí

fnt.x => 100
fnt.y => 100

Sử dụng [x=, y=] để xác lập vị trí của hình.

Xác lập dãy chữ

fnt.string = "ABC"

Chúng ta sử dụng [string=] để tái xác lập lại dãy chữ hiện lên màn hình.

Xác lập màu

fnt.color = [255, 0, 0] # Xác lập màu của dãy chữ

Với lệnh [color=] thì chúng ta có thể xác lập màu của dãy chữ. Dãy chữ được hiện màu theo giá trị RGB. Mặc định màu trắng là [255, 255, 255].

Xác lập cỡ chữ

fnt.size = 40

Bằng lệnh [size = ] chúng ta có thể xác lập cỡ chữ.

Chỉ định TTF

fnt.ttf_path = "font/mikachan.ttf"

Bằng lệnh [ttf_path] để chỉ định font chữ của file TTF

Sử dụng font có bóng đằng sau

Trong font của [MyGame] có chức năng tạo font có hiển thị bóng đổ xuống đằng sau. Trong trường hợp đó, chúng ta sẽ sử dụng [ShadowFont].

require 'mygame/boot'
ShadowFont.render "Hello"

Trong trường hợp muốn sử dụng hình ảnh đằng sau dãy chữ thì chúng ta nên sử dụng ShadowFont thì chữ sé trở nên dễ nhìn hơn.

require 'mygame/boot'
Image.render "sample.bmp"
Font.render "Hello"
ShadowFont.render "Hello", :y=> 20

Nếu muốn sử dụng Object đối với ShadowFont thì chúng ta có thể dùng lệnh [ShadowFont.new].

require 'mygame/boot/
fnt = ShadowFont.new ("Hello")
fnt.render

Màu của font đằng sau sẽ mặc định là màu ghi tối [32,32,32] Để thay đổi màu font đằng sau chúng ta dùng lệnh [shawdow_color]

fnt = ShadowFont.new ("Hello")
fnt.shadow_color = [255,0,0]

Kích thướng của font mặc định

Kích thước của font mặc đinh tại đây là 16 pixels. Nhưng chúng ta cũng có thể thay đổi kích thước của font mặc định.

Font.default_size = 80

Như vậy font mặc định sẽ chuyển lên thành 80 pixels.

Hình 3-25 Biến đổi kích sỡ font

14.PNG

File TTF mặc định

Chúng ta có thể đổi file TTF mặc định.

Font.default_ttf_path = 'font/fontname.ttf'

Chúng ta cần phải chuẩn bị trước font chỉ định bằng file TTF.