【ツクールMV】シナリオ達成度を表示してみよう

シナリオを達成するごとに☆マークを追加させてみましょう。

変数を2つ用意します。
1つはシナリオ達成度、もう1つはシナリオ達成加算としておきます。

↓のようにコモンイベントを作成します。☆を増やしたい数だけ条件分岐を増やしてください。


次はストーリーが進んだときにシナリオ達成加算に+1をして、先程作ったコモンイベントを読み込ませます。


今はシナリオ達成加算には1が入っているので☆が1つ表示されます。シナリオを5つ達成したと仮定して5回シナリオ達成加算に+1してみましょう。その後に↓のように文章の表示で変数の内容を表示してみます。変数113番というのはシナリオ達成度のことですね。1番の変数を使っている場合は\V[1]となります。


↓のように表示されます。


このやり方のメリットはいろんなイベントが散らばってるゲームでどこからクリアしても☆の数を1つずつ増やせることです。ボスを倒す順番が決まっていないゲームで直接、変数に文字列を代入してしまうと倒す順番によって☆の数がめちゃくちゃになってしまうのを防ぐためです。

web拍手 by FC2
[ 2017/09/05 00:45 ] RPGツクールMV | コメント(0)

【ツクールMV】敵イベントの座標拡大方法(並列処理限定)

アクションRPGの基本ですが逃げゲーとかにも使えます。

■用意するもの
・FloatVariables(トリアコンタンさん)
・HalfMove(トリアコンタンさん)

・やる気と根気

トリアコンタンさんのプラグインを使うので各自でググってダウンロードして下さい。

イベントの実行内容を以下の通りに設定します。起動条件(トリガー)は並列処理です。
まず変数を4つ用意します。私の場合は1000番台の変数を使っていますが番号はどれでも良いです。

新規キャンバス6

上から順に説明します。

$gameVariables.setValue(1015,this.character(0).x +0.0)
$gameVariables.setValue(1016,this.character(0).y +0.0)
$gameVariables.setValue(1017,this.character(0).x -0.0)
$gameVariables.setValue(1018,this.character(0).y -0.0)


このスクリプトはマップ上のイベントの座標を取得するためのものです。
元々の形は$gameVariables.setValue(変数番号,数値)ですね。イベントコマンドで処理をすると変数を取得してそこに座標の変更というような二度手間が発生するので、今回は出来るだけ短くという形をとるためスクリプトで一括して代入しています。

次が取得したデータからの座標判定です。
座標判定は条件分岐を使います。HalfMoveを使っているので判定は半歩ごとになっていますので1マス48pxの半分で24pxごとです。デフォルトが半マスなので当たり判定を大きくしたい場合はスクリプトの値を変える必要があります。

例えば右に当たり判定を大きくしたい場合は1015番の変数なので
$gameVariables.setValue(1015,this.character(0).x +2.0)
という感じで大きくできます。

肝心の条件判定のスクリプトですが
$gameVariables.value(1015) >= this.character(-1).x && $gameVariables.value(1016) >= this.character(-1).y && $gameVariables.value(1017) <= this.character(-1).x && $gameVariables.value(1018) <= this.character(-1).y
となっています。このままコピペして条件分岐のスクリプト欄に入れて下さい。

後は接触したときの判定を各自で好きなように入力して下さい。

※注意点

座標を拡大する場合、どこからが基点になるのかな?と考える人が多いかと思います。答えは下の真ん中48pxの中心です。


ツクールのシステムではあくまで判定は1マス単位です。プライオリティを通常キャラと同じにして接触してみればわかると思いますが$を付けた大きなファイルの場合当たり判定が真ん中に来ることはありません。必ずキャラクターの下のマスに接触範囲がくるので拡大する場合は間違いのないようにしましょう。

$gameVariables.setValue(1015,this.character(0).x +1.0)
$gameVariables.setValue(1016,this.character(0).y +0.5)
$gameVariables.setValue(1017,this.character(0).x -1.0)
$gameVariables.setValue(1018,this.character(0).y -1.5)

↑こんな感じにすると良さげです。

web拍手 by FC2
[ 2017/09/02 15:10 ] RPGツクールMV | コメント(0)