ページ 11

プレイヤーの表示位置をずらす & マップのスクロールに猶予を設ける方法

Posted: 2021年10月20日(水) 21:32
by ぷらずま
お世話になっております。
ツクールMVにて、キャラクターの立ち絵を常に右側に表示するゲームを制作しているのですが
それに際して、二点ほどゲームに手を加えたいです。

①プレイヤーの表示位置を中心からずらしたい。

②マップのスクロールに指定のピクセル数だけ猶予をもたせたい。
 (画面の端がマップ端から指定のピクセル数だけずれる)

二つとも、スクリプトをいじって実装する方法がとあるサイトに書いてあり参考にしていたのですが、
サービスの終了によりページが消えてしまったようです。
うろ覚えですが、そのページに書いてあった方法は

rpg_objectsのどこかの行にある「/ 2」を書き換える。
…曖昧すぎて申し訳ないのですが、
 「プレイヤーの表示位置を画面右(or上)から画面幅1/2の位置に表示する」
 という関数がどこかの行にあり、それを書き換えるという意味だったと思います。

②(マップ下端にスクロールの猶予をもたせる場合)
 rpg_objectsの5849行目にある


 Game_Map.prototype.scrollDown = function(distance) {
if (this.isLoopVertical()) {
this._displayY += distance;
this._displayY %= $dataMap.height;
if (this._parallaxLoopY) {
this._parallaxY += distance;
}
} else if (this.height() >= this.screenTileY()) {
var lastY = this._displayY;
this._displayY = Math.min(this._displayY + distance,
this.height() - this.screenTileY());
this._parallaxY += this._displayY - lastY;
}
};


 のどこかに + (任意の数)px または - (任意の数)px を書き加える。

といったものだったと思います。
(うろ覚えなので間違っているかもしれません。ひょっとしたらobjects内ですらなかったかも…)

どなたか分かる方がいらっしゃったら、お答えいただけると大変ありがたいです。
よろしくお願いいたします。

Re: プレイヤーの表示位置をずらす & マップのスクロールに猶予を設ける方法

Posted: 2021年10月23日(土) 01:01
by 論理イヌ
こんにちは。
①プレイヤーの表示位置を中心からずらしたい。
コマンドの「マップのスクロール」でずらしたままにする方法はいかがでしょうか。


強制中央スクロール - ScrollForceCenter.js
https://plugin.fungamemake.com/archives/1154

このプラグインは、指定した分だけプレイヤーの位置をずらすことができますが、
左右のマップ外の黒い部分も見えてしまうので、検討の上導入してください。

②マップのスクロールに指定のピクセル数だけ猶予をもたせたい。
マップ外の黒い部分を下部分だけ描画したいということでしょうか。
マップを任意の数値分余分に設定し、余分のマスは透明のままにするのはダメでしょうか?

たとえば横50*縦50のマップを作る場合、横50*縦51のマップを作り、最下部のマップ一列はいじらない(透明のまま)。

Re: プレイヤーの表示位置をずらす & マップのスクロールに猶予を設ける方法

Posted: 2021年10月31日(日) 21:58
by ぷらずま
>論理イヌ様

スクリプトをいじらなくてもその方法で実現できそうですね。
変に改変してどこかで不具合を起こすより、
デフォルトの機能で再現したほうが安全かもしれません。
とりあえずその方法でやってみます。
ご回答ありがとうございます。大変参考になりました。