- 運営しているクリエイター
#カーソル設置
【0068】アイテム画面を作る⑧
前回はアイテム画面の性能問題にぶつかりました。
解決策として、
現在の持ち物リストにアイテムIDだけをもたせるのではなく
すべての(あるいはアクセス頻度の高い)情報を保持することにしてみます。
アイテムマスタを舐めるという行為が
アイテムを拾う(未実装)などの限られた処理に限定されるはずです
アイテムを拾う場合は、
アイテムマスタを舐めることには代わりありませんが、
ほとんどの場合、1件のみの
【0067】アイテム画面を作る⑦
アイテムの最大所持数考えてなかったんですよね。
※エラーアイテム、の表記はわざと出してるものなので正常系エラーです。
一応このまま使うのであれば縦に16個並ぶようですが
そもそもアイテムっていくつ持てればいいんでしょうか。
「トルネコの不思議なダンジョンは20」
という情報をwebで見つけました。
今更どうでもいい情報なので
不思議のダンジョン系のアイテム所持数についての言及は少ないです。
- #エラー
- #退避
- #暫定
- #テスト持ち物リスト
- #カーソル設置
- #エラーアイテム
- #通常時は続けてコマンドを取得し
- #TBL_ITM_INFO
- #現在の表示内容を退避し
- #アイテム情報取得関数
- #移動入力として1文字受け付ける
- #上記で設定した反復数だけ
- #アイテム説明の後の半角相当SP数
- #アイテム名称の後の半角相当SP数
- #lnseed上書き
- #通常時はmvコマンドのショートカットが有効
- #任意長のコマンド受付にリダイレクトされる
- #ページ数に応じた持ち物番号を対象とする
- #2ページ目はアイテムの表示がないはずなので0
- #1ページめであればアイテムの所持数分のみ反復すれば良い
- #アイテムが15個以下のとき
- #2ページ目なら所持数から16を引いたものがそのページでの反復数
- #1ページめであれば16個全て表示対象
- #アイテムが16個以上手持ちにある場合
- #その回数を取得する
- #アイテム情報上書きの反復数が異なるため
- #アイテム所持数とページ数で
- #ページ数表示のはめ込み
- #更新_自キャラカーソルは描写しない
- #カーソル位置は1ページ目1番
【0066】アイテム画面を作る⑥
アイテム画面作るの手順が多いというか必要な子要素が多すぎて
目的を見失いそうです…。
前回、アイテムIDを渡すと
アイテムマスタにあるアイテム情報から名称と説明を取得して返す機能
を作りましたが、
アイテムマスタをアイテムIDで舐める機能がまだ出来ておらず、
今は固定で「八卦炉」を返すようにしていました。
というわけで今回はアイテムIDを元にアイテムマスタをなめて
アイテムマスタ配列の添字とア
- #バリデーション
- #args
- #カーソル設置
- #エラーアイテム
- #現在の表示内容を退避し
- #要る
- #アイテム情報取得関数
- #アイテム説明の後の半角相当SP数
- #アイテム名称の後の半角相当SP数
- #アイテムテーブルは全部で何件あるか確認
- #補正値が000の時
- #アイテムテーブルをなめる
- #アイテムテーブルの行を半角スペースでパースして1要素目
- #引数のアイテムIDとアイテムテーブル内のIDが一致したら
- #必要な修正を施して返却
- #標準出力で返却
- #アイテムIDとアイテムテーブルのインデクスが一致するとは限らないため
- #渡されたアイテムIDがアイテムテーブルに存在しないとき
- #エラーアイテムを返却する
- #2文字結合の必要があるので
- #半角カタカナ平音を殺す
- #半角数字を殺す
【0062】アイテム画面を作る②
さて、暫定的な持ち物データを作ったので、
前に作ったアイテム表示画面に持ち物データを被せてと思います。
前のときにも書きましたが、
今のところアイテム画面はこう用意されており…
: 'アイテム欄表示内' && { ################################################## ## defItemInfo ## アイテム一覧表示。レイヤー2。
【0059】アイテム画面を作る①
様々な機能がまだ放置気味だと言うのに
新たな機能に取り掛かる愚行に出ます。
ローグ系ゲームの目玉と言えるアイテム!
を表示する画面ですね。
もうしつこいほど映してますけど、これが今の画面構成です。
実はメニュー画面と同じ領域に
アイテムを表示しようかなと思ってたんですが、
あまりにも表示領域が小さい(文字数の制限がキツイ)ので
途中で全画面を使うように切り替えました。
メカニズム的にはメ