戦うぞ!64xその55(テキストボックス)

画像



やった事

・改行可能なテキスト入力ボックスを実装
会話などで複数行にわたる文字列を入力する際、
どうしても改行が可視化されていないとやりづらいので実装。地味に大変だった。
カーソル位置をマウスで指定しすのは無理。
やろうと思えば出来そうではある(描画位置逆算)けど、間違いなく正常には動かない。

やったぜ
マウスによる選択範囲指定は未実装。shift+方向キーで範囲選択やショートカットはDEライブラリが標準で対応している。

\n→を\\n、\\n→\nに置換する関数追加
セーブファイルが改行区切りの都合上、\n(改行コード)が混ざると不具合を起こしてしまう。
ファイルへの保存時に、改行コードとしてではなく文字列として保存できるように置換関数を追加した。

逆に、会話窓への表示などの展開用に文字列→改行コードの置換も実装している。
イベントの会話などは、表示の際に\\n(文字列)→\n(コード)に変換する事。
それ以外のタイミングで置換してはいけない(戒め)


キャラクターのポートレート仕様を変更
後ろ髪指定を撤廃。髪番号と同じ後ろ髪画像が使用されるように。
ものによって不自然になるから仕方ないね。
別途でもう一枚ポニーテールやらのレイヤーを追加するか悩んでいる。

ポートレートに髪色指定ができるように
o~360まで番号で髪色の指定できるようになった。

ドラッグ処理の重大なバグの修正1
ドラッグしながら画面遷移が行われると操作不能になる問題を修正
ゲーム内ウィンドウのドラッグ移動中に画面の遷移が行われると、
ドラッグ中の他操作無効フラグがONになったままになり操作不能になっていた。
かなーりヤバイ不具合だったけど、最初の俺が各操作に仲介関数を挟んでおいたお陰で何とかなった。


ドラッグ処理の重大なバグの修正2
ウィンドウのドラッグ移動処理で、1ループ内に複数判定を行うと
ドラッグしたウィンドウと別のウィンドウも移動に巻き込まれてしまう。
抜本的な仕様の変更が必要。
ドラッグ中のウィンドウ識別IDとかで、ドラッグ中の窓とそれ以外とで見分けられるような仕組みにした。


ステータスバー右下に小さなアイコンを表示し、
クリックする事で色々ショートカット実行できるように(RimWorld式)


・ミニマップ表示ON,OFF
・対象マスの詳細表示ON,OFF
・コンパニオンのHP状態表示,ON,OFF
・視点を常時主人公を中心にするON,OFF

以下はスイッチ扱いでない処理。上のアイコンと区画を分ける
・主人公に視点を戻す
・コンパニオンの引き寄せ

イベントの処理の追加
・キャラクター能力値で分岐
・フラグで分岐
・所持金で分岐
フラグもそっこり実装。

セーブロード処理をmainを中継せずに行えるように
要注意:経過観察必要事項


やる事


ダイアログの部分で日本語入力が出来ない
実は結構大変な問題で、いくら検索を掛けても解決法がみつからない。
Dxライブラリの作者がサンプルとして載せているダイアログコードを、初期状態のプロジェクトに乗せてみても日本語入力が出来ない。
一度どこかにexe上げて他の環境でどう動くのか見てみないと解決できなさそう。


//イベントに以下を実装
・所持金の増・減
・ステータスの増・減
・回復処理(宿屋処理)
・フラグの操作
・他イベントの開始

//口調ファイルの実装
改行の文字置換のようなかんじで、特定文字列を置換する処理を作る事。


商人の商品再生成
再生成処理はできているが、トリガー部分がまだできていないので作る事。
以下の仕様を忘れない事。
取引実行後にファイルへセーブする為、
取引後にロードを行っても所持品が変わらない


//フィールドデータを作る
これはセーブから再開した際、終了時の状態を完全再現する為の処理

・場のキャラクター(主人公・NPC含むすべてのキャラ)
・マップのオブジェクト状態(扉の開閉など)
・マップの落ちているアイテム
上記項目を保持する事で中断データからの正常な再開ができるはず


ステータスの反映処理の実装
素のステータス+装備+バフデバフの計算処理を実装し、
対象キャラのターンや、非エフェクト、装備の変更時に再計算を行うようにすること。
仮実装しているけどタイミングがまだ完全じゃない(装備の変更とか)かもしれない。
引き続き、様子を見ていく事。



自動回復の実装
移動中に自動回復をするようにすること。効果値は・・・


各種スキルの実装(後回しでok)
武器適正などの細かいスキルの実装

背景画像の設定・フラグの設定を追加する事。
Elonaの幕間のような感じでイベントとかメニュー背景に使う。(ずっとばくまだと思っていたのは内緒だぞ)

・MapSkin規格をオブジェクトと同じように128x128にする
キャラレイヤー以下の移動可能オブジェクトがスキン。
移動不可をオブジェクトとする。
なんかやばそうなので保留

ポップ処理の改良
現状時間経過でのポップが設定されていない。
そもそもこの仕様でいいのかなど含めて改良する事。

影の再設定(座標個別)が上手く行われていない?

キャラクター構造体の生存フラグ意外で一時的に隠すような項目を作る事。
理由:コンパニオンの離脱中などで使用する。生存フラグだけだと
全体回復で復活してポップしてしまう可能性があるので


自分への細かいバグ報告や注意喚起


警告
・扉・宝箱の設定は移動不可のみになっているので遠隔攻撃が通る。
・影のレイヤーがキャラクターやオブジェクトイベントより後になっている
・メニューウィンドウに戻るボタンを作ってさしあげろ。
・タイトル画面で×を押すと正常に終了できない
・オブジェクトイベントの削除が正常に行われていない(要検証)
・オブジェクトイベントのロックピックの犯罪判定。鍵(フラグ)の有無での施錠などは今の所未実装。
・イベントの鍵開け処理で、マップのレベル依存(-1)という処理があるのだが
マップに対してのレベル設定項目が無い。後でマップに追加する事
・開閉条件にイベントのフラグが指定されていても
まだフラグ基礎が出来ていないのでなにもできない。後で追加する事
・イベント実行対象の番号は、キャラ・オブジェクトイベント番号兼用
今のところオブジェクトイベントもキャラ番号扱いなので、変なキャラが話しだしたりする
マップ間移動とか怪しい。再生成とか含めて正常に動くがデバッグしろ!
注意喚起

・後退処理のAIが優秀なので同速度の一対一状態だと確実に逃げられる。
逃げている時は速度が低下するなどの処理が必要。
・移動の押しのけ判定がややガバいので、中立・友好派閥と押しのけあいまくる。
↑様子見。酷いようであれば修正

要注意:経過観察必要事項セーブロード処理をmainを中継せずに行えるようにしているが、信用ならない。


この記事へのコメント

この記事へのトラックバック