【ウディタ】可変DBの項目の型チェック

その他
06 /09 2018
【状況】
可変データベースに「1」という文字が入った文字列型変数を代入したいが、
代入先がどのタイプの、どのデータの、どの項目なのかはコモンイベント中で動的に決まる。

【課題】
・代入先の項目が数値型か文字列型か分からない。
 → その情報を取得する機能がないか探したけど見つからなかった…

【解決策】( 2018/06/09(土) 追記)
可変データベースの項目の型を判定するコモンを作りました。

ダウンロード

下記・苦肉の策の(1)を利用しています。

-------------------------------
以下、2018/06/09(土)追記前の記述

【課題】
・代入先の項目が数値型か文字列型か分からない。
 → その情報を取得する機能がないか探したけど見つからなかった…

【苦肉の策】
以下の (1) を行ったあと、 (2) を行う。

(1) 「変数操作」の「右辺」欄に手動で、代入したい値が入っている変数を指定する
20180609a.png

 → 代入先が数値型の場合 : 文字列から数値への変換が行われ、代入が成功する。代入先に「1」という数値が入る。
 → 代入先が文字列型の場合 : 代入が失敗し、代入先が空の文字列になる。ちなみにこの場合緑帯は出ない。

(2) 普通に代入する
20180609c.png

 → 代入先が数値型の場合 : 代入が失敗し、緑帯が出る。処理は実行されず、(1) で入った「1」という数値が保持される。
 → 代入先が文字列型の場合 : 代入は成功し、代入先に「1」という文字列が入る。


これで緑帯を出しながらも一応値を入れることには成功。もっと良い方法があればなあ…
スポンサーサイト

【ウディタ】変数呼び出し値でマップイベントを操作する

その他
12 /09 2017

ウディタの変数呼び出しでマップイベントのパラメータを呼び出せるのを知ったので色々試してみた結果のメモです。
マップイベントのxy座標、方向などの値を直接書き換えることができるようです。


【使い道】
・コマンド「キャラ動作指定」を使わなくてもマップイベントを動かせる
・後述する末尾6の「方向」の値はそのマップイベントが存在するかどうかの判定に使える(これ以外にもそれを判定する方法はありますが)


【使い方】
ウディタには数値入力フォームに特定の値を入れると数値でなく変数を操作の対象にできますが
(例えば[ 1600010 ] だと「このコモンセルフ10番」、[ 2000031 ]だと「通常変数31番」、など)
その時に [ 91AAAAB ] の値を呼び出します。(AとBの値は以下の表参照)

AAAAの値対象となるイベント等
0000 ~ 7999マップイベント
ID:0 ~ ID:7999
8000主人公
8001 ~ 8005仲間 1 ~ 5

Bの値何の情報が入っているか備考該当するイベントが無い場合
0x座標・負の値やマップサイズより大きい値も指定できる
・通常座標と精密座標は連動している(片方が変わると自動的にもう片方も変わる)
座標の値を書き換えたとき、判定は瞬間的に変更されるが
 イベントのグラフィックは歩いて変更先に移動する
(※1)
・その移動中は向き固定&すりぬけ状態となる
0 (書き換え不可)
1y座標
2x座標(精密)
3y座標(精密)
4高さ・単位はピクセル
・正の値を入れるとキャラチップ画像が上方向にずれて表示
5影番号・システムデータベース11番のデータ番号に対応
6方向・値はテンキーに対応
・0以下が入った場合 → 自動的に1になる
・5が入った場合 → 自動的に2になる
・10以上が入った場合 → 自動的に9になる
7未使用
8未使用
9キャラチップ画像ファイル名・文字列変数読もうとするとフリーズ


(※1)
・したがって、画像の移動が完了するまでの間、画像の位置と判定の位置はズレた状態になります。
・コマンド「変数操作+」に「キャラ○○が移動中?[YES=1 NO=0]」という項目がありますが、これはこのズレた状態かどうかを調べているようです。
20171209.png

ヘックス形マップ上にある2点の位置関係計算

その他
09 /11 2017

(この記事について)
六角形のマップを用いたゲームを作るにあたり、制作しやすいような座標の割り振り方などを考えていました。
それらをメモした記事になります。


(公開後注釈)
この記事は昨日(2017/09/10)に公開したものですが大きな計算ミスがあったので訂正いたしました。
もし誤りにより何か不都合被られた方がいらっしゃいましたらお詫び申し上げます。
2017/09/11 17:00


20170910a.png

20170911e.png




(2017/09/11 訂正:ここから)

20170911c.png

④をウディタ上で再現すると以下のようになります。
x1 , y1 , x2 , y2 の4つの引数をそれぞれ CSelf0 ~ CSelf3 に入力します。
最終的に CSelf12[答え] に入っている値が求めたかった2点間の距離になります。

20170911d.png


(2017/09/11 訂正:ここまで)





上の計算を用いてどんなことができるかの一例です。
20170910d.png

halky

フリーゲームを作っています。

ツイッター:https://twitter.com/halky1224
E-mail:yuyami.stars@gmail.com