![eyecatch](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjChC-oTz7zlf7B0CBufg0jFyHhbFj2-8uGZKeUs77mAxvX68gA8xnHpqFGoN3e1_khwAASHi87-sk3jREn9Ip9BfiHLj5MZxQODeoIQptY-TKccEthAXm6yo3GDF-xya7rR2q2eRUF5BeSgDAiJ6IHQrXV0Qzviwc3hd3AaaYXMCORE31gfdL-jmuz/s1600-rw/1617282053_0.jpg)
最近のマイ・フェイバリットは、youtubeで、ジャンク品を修理する動画を、食い入るように見るという、弓削田です。
電気製品などを、基盤から修理できるって、めちゃくちゃ人生楽しいよね。
そもそも、モノに対するコスパが非常に良くて、ソフトウェアだけでなく、ハードウェアにも
強くなりたいと、密かに目論んでいる、僕でした。
そんな話はどーでもいいのだが、今回は、ゲームシステムにまた一つ大きな機能追加ができたので、
そのご報告を行うことにする。
新機能の「会話で文字入力」
これは、今まで一番やりたかった内容だったのですが、ユーザーインターフェイスがなかなか決まらずに、思考止まりになっていました。
そして、このプロジェクトも、もはや後半に入って、ゴールが見えている状態。
ここらで重い腰を上げて、しっかりと、システム構築をしておきたかったので、
今回は1日で、その仕様を仕上げて、プログラミングまで完成させました。
そして、肝心の仕様ですが、
会話機能の設定に、inputモードを入れた場合、文字を入力する用のモーダルウィンドウが手前のレイヤーに表示されるという風にしました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRso_2VuJdH0TtKd1HqaCSPosJ0ncg10Zk3E9JDqYtyH-pLNiBV-rln4adaz2HiVOMEcSZqZYAR7nh_coUxh7R5OsaMo6CWripm935HItU5XZgAyTBpRFdbbwEcyq_KKCCtYBdzd4Xc1_Vgthm9iPsQfUvD9b8a81DcSJ8RuFcx-0XzCfN4pGOjSvHS9Q/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2816%29.jpeg)
メッセージウィンドウの中に、入力フォームを表示させようかとも考えたんですが、実はゲームの本画面は、カーソルの上下左右と、ABボタンだけという
ファミコン操作を基準に考えていたので、なるべくその操作感を崩さないようにして、
文字入力はあくまでキーボード対応するという事になるので、レイヤーを分けて、文字入力ウィンドウを表示して、ゲーム画面とは全く別の入力画面にする事で
別のテキストアプリを立ち上げているような感じにしてみました。
この仕様には他にもメリットがあって、このモーダルウィンドウをテキストエディタとして、機能追加を別途していくことで、
文字入力の操作性を、ゲーム操作とは分けて開発をすすめることができるのです。
苦労した点
そもそも、会話機能は、めちゃくちゃ、設定データが複雑になってきていて、
あまり、データの追加などはやりたくなかったんですが、
入力フォームモードのONという設定と、
入力をやり直せるように、再入力ボタンを設置するという機能追加が、少し時間がかかった点です。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdlyPDr5v2SG_GKKPVVOunx8-C8CV5CKD15lvi1bQrNhocf2w8ebXq4khjVGksRX2aB8Mvo6nwTIQZOH8OZtatj8UxTRd1HRqKYAh6pLr_9Wl46wkfOBsYnsuYSzqJZeoGyO00mWYvE137qEgrWylptxC6LNlmI39FQDEicRdkCAC1p6ENqOMjJu55S4k/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2817%29.jpeg)
まず、文字を何か入力して、「入力完了」すると、会話の文字入力エリアに、打ち込んだ文字を挿入して、
このままだと、書き直したい時にできないのは、操作感悪すぎるので、「書き直す」ボタンを設置しました。
このボタンを選択して決定すると、
再びモーダルウィンドウが立ち上がり、打ち込んだ文字列が、表示されている状態にしてみました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOo9WJLjR7Xw0b5GJ5Jobm_DvWppqMEDtgK4Hi4ZklmOttXef1_pgaIYmvcskPkKL5Ts5eDeYvS4neEidJmL_QA61pGJVRcGGo6FPhbh0BPypRnRcku3txOovmB9SpSUkHJHfc-0uXkuTm-68INvaQmFGgycn0SXLRAxtZ2V-bQ0m0Mqr_HmaWSQF38Q/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2818%29.jpeg)
普通の機能のように見えますが、これまでの質問形式とつなげるという設定と、ボタンで決定しても、
会話ウィンドウが閉じないようにする仕様を追加しなければ、選択した時に、ウィンドウが閉じて、会話終了になってしまっていました。
でも、設定項目でexecとして、プログラム登録もできるようにしたので、
汎用性がほぼ無限大になりましたwww
会話の継続
入力をしたあとは、そのまま、変数として、打ち込んだ文字列を持ったまま、
会話を継続して行うようにできました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLnfQyCVUem7cGCNdCSwdJlCxOsiGT1e6U6N_RjPH7tmqIKPpEiSXzCis-apNG7-_JAe5KgEx5qdfREq0Fg81QgsQ9VJESyoo5m1FFky_O5TZGA-cIgV_eOLR1aZ-UaHudW5HZKtzwklZqNi-pKpaTbVgiCMxCztT5iug8iIgEgCgy26Z-C08shJG4Jyc/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2819%29.jpeg)
いや〜、これで、プログラミングの登録機能も完了したので、サーバーサイドで送信されたプログラムを判定できれば、
プログラミングで、ゲーム進行をすることができる、夢のプログラミング学習RPGで遊べるようになります。
あ、でもまだ、打ち込んだ文字列を変数で保持して、それを再利用するという機能は、できてないや・・・
もう少しあがくことにはなりそうだけど、ここまでできたら、安心だ。
あとは、スマホと、タブレットでの触り心地を追求してみるとしよう。
0 件のコメント:
コメントを投稿