
最近のマイ・フェイバリットは、youtubeで、ジャンク品を修理する動画を、食い入るように見るという、弓削田です。
電気製品などを、基盤から修理できるって、めちゃくちゃ人生楽しいよね。
そもそも、モノに対するコスパが非常に良くて、ソフトウェアだけでなく、ハードウェアにも
強くなりたいと、密かに目論んでいる、僕でした。
そんな話はどーでもいいのだが、今回は、ゲームシステムにまた一つ大きな機能追加ができたので、
そのご報告を行うことにする。
新機能の「会話で文字入力」
これは、今まで一番やりたかった内容だったのですが、ユーザーインターフェイスがなかなか決まらずに、思考止まりになっていました。
そして、このプロジェクトも、もはや後半に入って、ゴールが見えている状態。
ここらで重い腰を上げて、しっかりと、システム構築をしておきたかったので、
今回は1日で、その仕様を仕上げて、プログラミングまで完成させました。
そして、肝心の仕様ですが、
会話機能の設定に、inputモードを入れた場合、文字を入力する用のモーダルウィンドウが手前のレイヤーに表示されるという風にしました。

メッセージウィンドウの中に、入力フォームを表示させようかとも考えたんですが、実はゲームの本画面は、カーソルの上下左右と、ABボタンだけという
ファミコン操作を基準に考えていたので、なるべくその操作感を崩さないようにして、
文字入力はあくまでキーボード対応するという事になるので、レイヤーを分けて、文字入力ウィンドウを表示して、ゲーム画面とは全く別の入力画面にする事で
別のテキストアプリを立ち上げているような感じにしてみました。
この仕様には他にもメリットがあって、このモーダルウィンドウをテキストエディタとして、機能追加を別途していくことで、
文字入力の操作性を、ゲーム操作とは分けて開発をすすめることができるのです。
苦労した点
そもそも、会話機能は、めちゃくちゃ、設定データが複雑になってきていて、
あまり、データの追加などはやりたくなかったんですが、
入力フォームモードのONという設定と、
入力をやり直せるように、再入力ボタンを設置するという機能追加が、少し時間がかかった点です。

まず、文字を何か入力して、「入力完了」すると、会話の文字入力エリアに、打ち込んだ文字を挿入して、
このままだと、書き直したい時にできないのは、操作感悪すぎるので、「書き直す」ボタンを設置しました。
このボタンを選択して決定すると、
再びモーダルウィンドウが立ち上がり、打ち込んだ文字列が、表示されている状態にしてみました。

普通の機能のように見えますが、これまでの質問形式とつなげるという設定と、ボタンで決定しても、
会話ウィンドウが閉じないようにする仕様を追加しなければ、選択した時に、ウィンドウが閉じて、会話終了になってしまっていました。
でも、設定項目でexecとして、プログラム登録もできるようにしたので、
汎用性がほぼ無限大になりましたwww
会話の継続
入力をしたあとは、そのまま、変数として、打ち込んだ文字列を持ったまま、
会話を継続して行うようにできました。

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