0
0

More than 1 year has passed since last update.

アクツクMV:データベース(デフォルト、レコードで反映)を使う

Last updated at Posted at 2023-01-13

今回はデータベースの基本的なところを見ていきたいと思います。

まず前回の続きから説明します。前回未読の方は、
前回 https://qiita.com/havin_nothin/items/039d955d39fcedaa93bd
を参照して、テキストで体力と最大体力が表示されているようにしておいてください。

1.インデックス用の変数(レベル)を作る。
まず、変数を追加します。データベースの何行目かを示すために使う変数です。
「プレイヤー」の変数「レベル」にしました。
Database01Variable.png

2.テキストを書き換える。
テキスト素材「変数表示」を以下のように書き換えます。

レベル \V[プレイヤー,レベル,0]
体力 \V[プレイヤー,体力,0]
最大体力 \V[プレイヤー,最大体力,0]

これで変数「レベル」の値も表示できるようになりました。
Database02Text.png

3.データベースを作る。
ここまでは準備で、ここからが本編です。
データベースのタブをクリックし、データベースを新規追加します。
「デフォルト」か「オブジェクト」か訊かれるので「デフォルト」を選びます。
名前は変えずに「database_001」で行きます。
こんな画面になります。
Database01Sheet.png

二つある「+」をおすと、行、列が増えます。「-」を押すと消えます。
2列×5行にしてください。
「カラム001」「カラム002」というところをダブルクリックすると名称が変えられるので、
それぞれ「体力」と「最大体力」にしてください。
(プレイヤーの変数と完全に同じ名称にしてください;ここ重要)
数字を図か下記を参照に入れてください。(適当になんでもいいですが、半角数字で入れてください)

名前   ,体力,最大体力
レコード001,5,10
レコード002,10,20
レコード003,15,30
レコード004,20,40
レコード005,25,50

4.アクションを登録する。
オブジェクト「変数表示」の初期アクション「アクション0001」に「データベースを反映」を追加します。
設定は以下のとおり:

データベース一覧から選択:database_001
レコードで反映
レコード:変数:プレイヤー:レベル
変数と反映方法を選択:プレイヤー:全体:=

最後に「データベースを反映」を、1番最初に実行されるよう上に移動します。
Database03DatabaseRead.png

5.プレイヤーのレベルの初期値をいろいろ変えて実行してみます。
レベルが0のとき、データベースの1行目の「体力」と「最大体力」の値が反映され、
レベルが4のとき、同じく5行目の値が反映されているのがわかるでしょう。
レベルが5以上の場合は、データベースの値ではなく、「体力」「最大体力」の初期値のままです。
Database03Level0.png
Database03Level4.png
Database03Level5.png

変数「レベル」が0~4に変化すると、それに対応して、データベースの「カラム名と同じ名前の変数」の値が、1~5行目の値に変化する、というのが、「データベースを反映」のアクションの働きになります。
登録されていない行数を指定したり、セルに値が無い場合には、値は変更されないままになります。
(あと値として、-1が入っているときも、データベースの値が変数に反映されないようです。-1を使いたいときは、999を入れておいて、そこから1000を引くといった方法を用いたほうが安全と思います)

変数名はかならず同じにしなければなりません。(「体力」「最大体力」といった)変数名をデータベースのカラムに登録するときは、コピーペーストするのが無難です。

データベース(デフォルト、レコードで反映)の働き、わかってもらえたでしょうか。
次回はデータベースのオブジェクト用を使って、画像を変化させてみます。→ https://qiita.com/havin_nothin/items/b0c0695292bff7e9fdbd

ではまた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0