13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go その2Advent Calendar 2015

Day 14

gomobileで日本語フォントを扱ってみる

Posted at

Go その2 Advent Calendar 2015の14日目です。

先日のGoConでも扱われる数が増えてきてる感じがしているgomobile。個人的にとても嬉しい流れです。
今回はそのgomobile上でtruetypeフォントを扱って日本語を実機上で表示してみたという感じの記事です。
※英数字のみであればgolang.org/x/mobile/exp/fontでも大丈夫かと思いますがそっちは未確認
※gomobileパッケージ自体の更新がかなり早いので以降のバージョンによってはうまくいかない可能性もあります。ご了承ください。

サンプル

https://github.com/bowzstandard/gmtsmpl
androidとiosとmac上で表示確認済み。
フォントはM+フォントを使用させていただきました。

必要なもの

やってること

ttfを読み込んで最終的にNodeのSubTexとして扱えるような形に持って行ってます。
以下手順

  1. ttfをassetパッケージを使って読み込みます。
  2. ioutil.ReadAllで[]byteを取ります。
  3. truetype.Parseを使ってtruetype.Fontにパースします。
  4. font.Drawerを使ってttfのデータから該当の*glutil.Imageへテキストを描画していきます。
  5. 描画したものをEngine.LoadTextureでTexture化→SubTex化します。
  6. 対象のNodeにSetSubTexでテクスチャとして乗っけられます。
  7. その際にSetTransformで大きさを整えます。この辺は描画したテキストサイズに合わせて変更する感じで実装します。
  8. これでArrangerでも扱える形でテキストを使用可能になります。

★キャプチャ(iosの)
20151210080922.png

TODO

  • インタラクティブな入力に対応
  • 自動改行
  • ワイプとかの演出処理

などなど

その他

来年中にgomobileの安定版が出るという話もあったのでとても楽しみにしている感じですが、その間にもいろいろと試行錯誤しながらパッケージのコード解析しつつ試験段階のコードも楽しくいじり倒せたらなと思ってます。

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?