りよねこたわ~

ロールプレイングゲーム作ってみたいにゃ~でもどうしたらいいのにゃ~?

このゲームの3Dダンジョンはこんな感じでできてるにゃ~【その5にゃ~】

ω・`) 19枚目のイベントを作成中にゃ~。

 

ω・`) 前回は、キャラクターの座標を取得して、それをもとに配列からタイルセット情報を取得するところまでだったかにゃ~。

今回は、キャラクターの向きから見える範囲の配列の添え字を取得するにゃ~。

 

まずはキャラクターの向きなんにゃけど、RPGツクールMVでは次のスクリプトから取得できるにゃ~。

//////////

$gamePlayer._direction

//////////

これで右を向いていれば「6」、左を向いていれば「4」、下を向いていれば「2」、上を向いていれば「8」という向きの情報が取得できるにゃ~。

 

次は、向いている方角の見える範囲の添え字を取得していくにゃ~。

また例の画像を使うにゃ~。

f:id:riyoneko:20180425174555p:plain

この画像の赤い範囲が見える範囲なんにゃけど、めんどくさいから次のような範囲の添え字を取得するようなスクリプトを考えてみるにゃ~。

f:id:riyoneko:20180509181043p:plain

 

//////////

if ($gamePlayer._direction === 6) {

    for (var j = 0; j <= 4; j++) {

        a[ j ] = i + j;

        b[ j ] = i - (10 - j);

        c[ j ] = i + (10 + j);

        d[ j ] = i - (20 - j);

        e[ j ] = i + (20 + j);

    };

} else if ($gamePlayer._direction === 4) {

//////////

if文で向きを判定してるにゃ~。

if ($gamePlayer._direction === 6) は右を向いているときにゃ~。

そのときに、for文を実行するってわけにゃ~。

a[ ]はキャラクターのいるブロックの見える範囲にゃ~。

これは簡単にゃ~。

添字は、マップの左上から右下にかけて右に順番にならんでいるから、右を向いているときはのa[ ]は、i(添え字)に1ずつ足していけばいいにゃ~。

b[ ]は、キャラクターの上のブロックの添字を取得するようになってるにゃ~。

jが0のときは、添え字は10個前の位置にゃ~。

jが1のときは、添え字は9個前の位置にゃ~。

という感じで、キャラクターの向きから見える範囲の添え字を取得することができるにゃ~。

 

添え字が取得できたら、次はタイルマップ情報を取得するにゃ~。

 

っ´ーωー`)っ 眠くなってきたから、続きは次回にゃ~。