100日後に完成するゲームシステム 63日目「会話で文字入力をする機能」

2021年4月9日

テクノロジー 特集

eyecatch 最近のマイ・フェイバリットは、youtubeで、ジャンク品を修理する動画を、食い入るように見るという、弓削田です。 電気製品などを、基盤から修理できるって、めちゃくちゃ人生楽しいよね。 そもそも、モノに対するコスパが非常に良くて、ソフトウェアだけでなく、ハードウェアにも 強くなりたいと、密かに目論んでいる、僕でした。 そんな話はどーでもいいのだが、今回は、ゲームシステムにまた一つ大きな機能追加ができたので、 そのご報告を行うことにする。

新機能の「会話で文字入力」

これは、今まで一番やりたかった内容だったのですが、ユーザーインターフェイスがなかなか決まらずに、思考止まりになっていました。 そして、このプロジェクトも、もはや後半に入って、ゴールが見えている状態。 ここらで重い腰を上げて、しっかりと、システム構築をしておきたかったので、 今回は1日で、その仕様を仕上げて、プログラミングまで完成させました。 そして、肝心の仕様ですが、 会話機能の設定に、inputモードを入れた場合、文字を入力する用のモーダルウィンドウが手前のレイヤーに表示されるという風にしました。 メッセージウィンドウの中に、入力フォームを表示させようかとも考えたんですが、実はゲームの本画面は、カーソルの上下左右と、ABボタンだけという ファミコン操作を基準に考えていたので、なるべくその操作感を崩さないようにして、 文字入力はあくまでキーボード対応するという事になるので、レイヤーを分けて、文字入力ウィンドウを表示して、ゲーム画面とは全く別の入力画面にする事で 別のテキストアプリを立ち上げているような感じにしてみました。 この仕様には他にもメリットがあって、このモーダルウィンドウをテキストエディタとして、機能追加を別途していくことで、 文字入力の操作性を、ゲーム操作とは分けて開発をすすめることができるのです。

苦労した点

そもそも、会話機能は、めちゃくちゃ、設定データが複雑になってきていて、 あまり、データの追加などはやりたくなかったんですが、 入力フォームモードのONという設定と、 入力をやり直せるように、再入力ボタンを設置するという機能追加が、少し時間がかかった点です。 まず、文字を何か入力して、「入力完了」すると、会話の文字入力エリアに、打ち込んだ文字を挿入して、 このままだと、書き直したい時にできないのは、操作感悪すぎるので、「書き直す」ボタンを設置しました。 このボタンを選択して決定すると、 再びモーダルウィンドウが立ち上がり、打ち込んだ文字列が、表示されている状態にしてみました。 普通の機能のように見えますが、これまでの質問形式とつなげるという設定と、ボタンで決定しても、 会話ウィンドウが閉じないようにする仕様を追加しなければ、選択した時に、ウィンドウが閉じて、会話終了になってしまっていました。 でも、設定項目でexecとして、プログラム登録もできるようにしたので、 汎用性がほぼ無限大になりましたwww

会話の継続

入力をしたあとは、そのまま、変数として、打ち込んだ文字列を持ったまま、 会話を継続して行うようにできました。 いや〜、これで、プログラミングの登録機能も完了したので、サーバーサイドで送信されたプログラムを判定できれば、 プログラミングで、ゲーム進行をすることができる、夢のプログラミング学習RPGで遊べるようになります。 あ、でもまだ、打ち込んだ文字列を変数で保持して、それを再利用するという機能は、できてないや・・・ もう少しあがくことにはなりそうだけど、ここまでできたら、安心だ。 あとは、スマホと、タブレットでの触り心地を追求してみるとしよう。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ