# 文字

写字、字体、锚点。

> 完整清单见「[UI 开发](help:vml/ui)」。下面每个接口都带一句用法和一个例子；
> 签名取自 `Lib/c/vml_ui.h`（权威来源）。

### `ui_text_set_font(int size, int style, int color, int anchor)`
设一次字体，后面所有 `ui_2d_text_cur` 都用它（省得每次重复传四个参数）。
```c
ui_text_set_font(18, VML_FONT_BOLD, 0xFFFFFFFF, VML_ANCHOR_CENTER);
ui_2d_text_cur(180, 40, "按方向键退出");
```
### `ui_text_set_valign(int valign)`
设置**默认**垂直对齐（之后所有文字生效）。
```c
ui_text_set_valign(VML_VALIGN_MIDDLE);
```
### `ui_2d_text(int x, int y, char* s, int color, int size, int anchor)`
在 (x,y) 写一行字。`size` 是字号；`anchor` 决定 (x,y) 指文字的哪一边（`VML_ANCHOR_LEFT` / `CENTER` / `RIGHT`）。
```c
ui_2d_text(180, 40, "得分: 120", 0xFFFFFFFF, 20, VML_ANCHOR_CENTER);
```
### `ui_2d_text_cur(int x, int y, char* s)`
用 `ui_text_set_font` 设好的字体写字。
```c
ui_2d_text_cur(180, 300, "游戏结束");
```
### `ui_2d_text_styled(int x, int y, char* s, int color, int size, int anchor, int style)`
同上，另加样式（粗体 / 斜体 / 下划线）。
```c
ui_2d_text_styled(10, 10, "标题", 0xFFFFFFFF, 22, VML_ANCHOR_LEFT, VML_FONT_BOLD);
```
### `ui_2d_text_v(int x, int y, char* s, int color, int size, int anchor, int valign, int style)`
带**垂直对齐**的文字（`VML_VALIGN_*`）—— `ui_2d_text` 的 y 是基线，这个可以按顶/中/底对齐。
```c
ui_2d_text_v(200, 100, "居中", 0xFFFFFFFF, 20, VML_ANCHOR_CENTER, VML_VALIGN_MIDDLE, 0);
```
