アイテムスクロール

1)下準備
前程として、デフォルトのアイテムと連携して作ります。
そのためアイテムの最大所持数は99個までです。
まず大まかなイメージを作ります。ペイントでもノートでもいいです。
こんな感じに↓


アイテムは後からでも追加できるので、表示枠は好きな数でいいです。
次にピクチャー番号を割り振って行きます。
ピクチャー番号は、普通のexeなら小さい数字ほど奥に、大きい数字ほど手前に来ます。
昔講座ゲーで書きましたが、ピクチャー番号をビルの階層として、上の階から見るイメージ
と考えると覚えやすいと、自分は思います。
それを踏まえて↓のように割り振ります。


二桁数字ピクチャーを使う場合など、番号等の多少の前後は個人の好みで構いません。
この例の場合、Pic2~Pic7の部分で文字ピクチャーの表示を行なっています。

2)実際にイベントを組む
まず、『所持しているアイテム』(0個で持っていないものは表示しない)のうち、
上から6つのアイテムを表示できるようにします。
そのためには、アイテムに番号をふる必要があります。
(例えばポーション=1,ハイポーション=2,ウルトラポーション=3,ポーションりんご味=4…)
これらは先にデータベースで準備しておいてください。
何故番号が必要かというと表示の際に↓のような処理を行うためです。


そのために、次の変数を準備します。
101=Pic2_前
102=Pic2
103=Pic3
104=Pic4
105=Pic5
106=Pic6
107=Pic7
108=Pic7_後
109=ピクチャー番号変数用
110=位置ずらし用
ここでは一例として変数の101番を使ってますが、どこでもいいです。
まず、イベントの最初に、変数のリセットを置きます。
この場合だと、
◆変数の操作:[101〜108]代入,0
でいいです。
これを挟まないと『変数=0』の時に数字が残って表示がバグります。
次に109番の初期化をします。この場合は
◆変数の操作:[109:ピクチャー番号変数用]代入,101
とします。
なぜ101なのかというと、↓のように処理をしていくためです。


つまり、持ってないアイテムを省いて、ひたすら102番の変数から108番の変数までに
アイテム番号用の変数を代入していくためには、初期値を101にしておく必要があります。
次に、109に110を加算します。
◆変数の操作:[109:ピクチャー番号変数用]加算,変数[110]の値
これは、このイベントを実行する前に、110の値を操作することで、アイテム番号をずらすことができます。
つまり、この110番がアイテムスクロールのキモとなっているわけです。
例えば変数[110]=-5だとすると、5つアイテムをスルーしてから、
次のアイテムからがPic2以降にに表示される、というようになっているのです。
そしたらあとはひたすらアイテム番号の代入処理を作っていきます。
ツクールブリッジやRMEventFactoryなどを使いこなせれば、大量の作業も楽にいくでしょう。
アイテム8つの場合、そこまで書くと↓のような感じになります。

コモンイベント名:アイテムソート


そしたら、上のピクチャーであったように、Pic2=1ならPic2を該当位置に表示するといった処理を
ツクールブリッジ等を使ってバーっと作成すれば終わりです。
だいたいこんな感じに。(一々用意するの面倒だからtktk中のイベントから)

コモンイベント名:アイテム表示


13,14番は最初のイメージの20,21番の、上や下にまだアイテムがある場合表示するというイベントです。
今回の場合は、[101番:Pic2_前],[108:Pic7_後]が1以上かどうかで判定をしてください。
この101番や108番はこの▲▼を表示判定を行うための前後判定です。

3)実際に組み込む。
実際に組み込んで行きましょう。
キー操作をする前に、かならず初期化をして表示をします。
◆変数の操作:[110:位置ずらし用]代入, 0
◆イベントの呼び出し:アイテムソート
◆イベントの呼び出し:アイテム表示
◆イベントの呼び出し:アイテム個数表示(これは各自で頑張れ)

次にキー操作の1例です。


このイベントはキー入力にウェイトがない仕様での書き方です。
↓キーを押した場合ですので、Pic7の位置で変数[Pic7]=0ならスクロールを停止します。
これはアイテムが少ない時に一番下が空欄の時の処理です。
そうじゃない場合、Pic7_後が0ならスクロールを停止となっているのは、
スクロールをした時にとまる目印になっています。
Pic7_後が1以上の場合は、位置ずらしに加算をしてアイテム表示を入れ替えます。
最後にアイテム説明を表示するのならば、分岐の外に置きましょう。
非常に大雑把ですが、これでアイテムスクロールを実現することができます。
実際に作って見ないとわかりにくい点は多いかと想いますが、

一々細かく書くのも面倒なんですよね!!(爆死