寝ている人の寝言

日常の事や、やっているゲーム、読んでいる小説や漫画の感想などを徒然なるままに書いていくブログです。たまに勉強したことのメモとかも書くかもしれません。

Swiftで文字送りPart2(クラス化編)

 どうもねいとです。

 最近始まったEOSのOBTやってて、勉強できてないやばい。

 

 まぁそういうこともありまして、思いのほか文字送りのクラス化に手こずっていましたよっと。

 とりあえず自作した文字送りクラスでできることは、

 ・文字送りしたいテキストをString型で与えてやり、drawText()という関数を使うと文字送りで表示される。

 ・どれくらい遅延させるかは変更可能。

 ・表示位置の変更も可能。

 ・独自で改行キー文字の設定可能(デフォルトでは"嬲")

 ・一行の最大文字数の変更可能。

 ・横書きのみ対応。

 ・文字送りスキップ(テキストがまだ完全に描画しきれていない時に、一気に描画)可能。

 ・横書きのみ対応。

 といった所でしょうか。

 

 以下ソース。

 

 

 スキップ部分以外はさらーっとできたのですが、スキップ部分でちょっと嵌っちゃいましたね。

 最初は描画途中で遅延を変えたらいいんじゃね?

 とか思ってそんな感じの処理にしたんですけども、上手く行かず結局、スキップ用の関数を作るはめに…。

 ほとんど同じ処理だし纏めたいんだけどなぁ…。

 

 Gistやらを使ってみたんですけど、他のサイトがやってるみたいに長いソースを狭い範囲で表示ができてないですね。

 これもまた友人に聞いておきます。

 

 で、まぁこんな感じになりました。

 

 

 どうですかね、個人的に相当いい感じにノベルゲーとかの表示に近くできたかなぁという印象なのですが。

 ちなみにどうせなら本当にノベルゲー作るならテキスト全部ソースの中に書かないよね?ということでcsvファイル読み込みの勉強をして、実装しております。

 なんとなくcsvファイルの読み込みの動きも分かったので、素材があれば、csvファイルの構造次第で、このキャラのこの表情パターンをこの位置に表示、みたいなこともファイル1個に纏めれる気がします。

 

 ということで文字送り処理は一旦ここまで。

 こういう自作クラスを作ってて、Swiftでのデザインパターンの書き方を知らないのを思い出したので、これからはそっち方面を勉強していきます。

 

 (あぁどんどんSwiftばっかやってC++忘れて就職できなさそうな気配が凄い…)

 

 それでは。