examples/text: adjust the rendering position

text/v2's Draw uses the given position as the upper-left position
of the bounds by default, while text (v1) uses the given position
as the origin position. In order to approximate the same result of
the original text version, adjust the Y values.

Updates #2454
This commit is contained in:
Hajime Hoshi 2023-11-13 01:36:04 +09:00
parent 9735687d3e
commit 56faf34932

View File

@ -96,7 +96,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
gray := color.RGBA{0x80, 0x80, 0x80, 0xff} gray := color.RGBA{0x80, 0x80, 0x80, 0xff}
{ {
const x, y = 20, 40 const x, y = 20, 20
w, h := text.Measure(sampleText, mplusNormalFace, mplusNormalFace.Metrics().Height) w, h := text.Measure(sampleText, mplusNormalFace, mplusNormalFace.Metrics().Height)
vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false) vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false)
op := &text.DrawOptions{} op := &text.DrawOptions{}
@ -105,7 +105,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
text.Draw(screen, sampleText, mplusNormalFace, op) text.Draw(screen, sampleText, mplusNormalFace, op)
} }
{ {
const x, y = 20, 140 const x, y = 20, 120
w, h := text.Measure(sampleText, mplusBigFace, mplusBigFace.Metrics().Height) w, h := text.Measure(sampleText, mplusBigFace, mplusBigFace.Metrics().Height)
vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false) vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false)
op := &text.DrawOptions{} op := &text.DrawOptions{}
@ -114,7 +114,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
text.Draw(screen, sampleText, mplusBigFace, op) text.Draw(screen, sampleText, mplusBigFace, op)
} }
{ {
const x, y = 20, 240 const x, y = 20, 220
op := &text.DrawOptions{} op := &text.DrawOptions{}
op.GeoM.Rotate(math.Pi / 4) op.GeoM.Rotate(math.Pi / 4)
op.GeoM.Translate(x, y) op.GeoM.Translate(x, y)
@ -123,7 +123,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
text.Draw(screen, sampleText, mplusNormalFace, op) text.Draw(screen, sampleText, mplusNormalFace, op)
} }
{ {
const x, y = 160, 240 const x, y = 160, 220
const lineHeight = 80 const lineHeight = 80
w, h := text.Measure(sampleText, mplusBigFace, lineHeight) w, h := text.Measure(sampleText, mplusBigFace, lineHeight)
vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false) vector.DrawFilledRect(screen, x, y, float32(w), float32(h), gray, false)
@ -133,7 +133,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
text.Draw(screen, sampleText, mplusBigFace, op) text.Draw(screen, sampleText, mplusBigFace, op)
} }
{ {
const x, y = 240, 400 const x, y = 240, 380
op := &ebiten.DrawImageOptions{} op := &ebiten.DrawImageOptions{}
// g.glyphs is initialized by text.AppendGlyphs. // g.glyphs is initialized by text.AppendGlyphs.
// You can customize how to render each glyph. // You can customize how to render each glyph.