Swiftで文字送りPart2(クラス化編)
どうもねいとです。
最近始まったEOSのOBTやってて、勉強できてないやばい。
まぁそういうこともありまして、思いのほか文字送りのクラス化に手こずっていましたよっと。
とりあえず自作した文字送りクラスでできることは、
・文字送りしたいテキストをString型で与えてやり、drawText()という関数を使うと文字送りで表示される。
・どれくらい遅延させるかは変更可能。
・表示位置の変更も可能。
・独自で改行キー文字の設定可能(デフォルトでは"嬲")
・一行の最大文字数の変更可能。
・横書きのみ対応。
・文字送りスキップ(テキストがまだ完全に描画しきれていない時に、一気に描画)可能。
・横書きのみ対応。
といった所でしょうか。
以下ソース。
スキップ部分以外はさらーっとできたのですが、スキップ部分でちょっと嵌っちゃいましたね。
最初は描画途中で遅延を変えたらいいんじゃね?
とか思ってそんな感じの処理にしたんですけども、上手く行かず結局、スキップ用の関数を作るはめに…。
ほとんど同じ処理だし纏めたいんだけどなぁ…。
Gistやらを使ってみたんですけど、他のサイトがやってるみたいに長いソースを狭い範囲で表示ができてないですね。
これもまた友人に聞いておきます。
で、まぁこんな感じになりました。
どうですかね、個人的に相当いい感じにノベルゲーとかの表示に近くできたかなぁという印象なのですが。
ちなみにどうせなら本当にノベルゲー作るならテキスト全部ソースの中に書かないよね?ということでcsvファイル読み込みの勉強をして、実装しております。
なんとなくcsvファイルの読み込みの動きも分かったので、素材があれば、csvファイルの構造次第で、このキャラのこの表情パターンをこの位置に表示、みたいなこともファイル1個に纏めれる気がします。
ということで文字送り処理は一旦ここまで。
こういう自作クラスを作ってて、Swiftでのデザインパターンの書き方を知らないのを思い出したので、これからはそっち方面を勉強していきます。
(あぁどんどんSwiftばっかやってC++忘れて就職できなさそうな気配が凄い…)
それでは。