2021SC@SDUSC Ebiten(五) 在图像上绘制文本代码详解

本文详细介绍了Go语言2D游戏库Ebiten中的文本绘制,包括`text`包的主要函数`Draw`的使用,示例代码展示,代码解析,以及如何在图像上显示文本。此外,还提到了`DrawWithOptions`、`FaceWithLineHeight`和`BoundString`等其他函数的功能。
摘要由CSDN通过智能技术生成

2021SC@SDUSC 

Go语言的简单2D游戏库-Ebiten   

 

目录

一、主要函数解析--包text中实现的函数

func Draw

二、示例代码

部分运行结果

三、代码解析

定义渲染文本的字体

 实现文本展现形式

在图片上显示文本

四、其他函数--包text中实现的函数

func DrawWithOptions

func FaceWithLineHeight

func BoundString


一、主要函数解析--包text中实现的函数

func Draw

func Draw(dst *ebiten.Image, text string, face font.Face, x, y int, clr color.Color)

Draw 在给定的目标图像 dst 上绘制给定的文本。

face 是文本渲染的字体。(x, y) 表示“点”(句点)位置。这意味着如果给定的文本由单个字符“.”组成,它将位于给定的位置 (x, y)。请注意,这并不代表左上角位置。

clr 是文本渲染的颜色。

如果要调整文本的位置,这些功能很有用:

* text.BoundString:给定文本的渲染边界。
* golang.org/x/image/font.Face.Metrics:face的度量。

'\n' 换行符将以下文本放在下一行。行高基于字体的 Metrics().Height。

用于渲染的字形以最近最少使用的方式缓存。然后旧字形可能会从缓存中逐出。由于缓存容量有限,不能保证所有在 Draw 中给出的符文字形都被缓存。缓存与 CacheGlyphs 共享。

就性能而言,在每一帧用相同的文本和相同的face调用Draw是可以的。

Draw/DrawWithOptions 和 CacheGlyphs 是这样实现的:

Draw = 通过 `(*ebiten.Image).ReplacePixels` 创建字形,并在必要时将它们放入缓存中
            + 通过`(*ebiten.Image).DrawImage`将它们绘制到目的地
CacheGlyphs = 通过`(*ebiten.Image).ReplacePixels` 创建字形并在必要时将它们放入缓存

二、示例代码

package main

import (
	"fmt"
	"image/color"
	"log"
	"math/rand"
	"strings"
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值