【解決済み】rhyme_mapsmoothscrollingのマップ移動時の不具合(ずれ)について

アバター
吉良(きよ)
記事: 17
登録日時: 2016年9月08日(木) 23:58
連絡を取る:

【解決済み】rhyme_mapsmoothscrollingのマップ移動時の不具合(ずれ)について

投稿記事by 吉良(きよ) » 2019年6月03日(月) 05:38

いつもお世話になっております。

「rhyme_mapsmoothscrolling」
https://forums.rpgmakerweb.com/index.ph ... ami.58662/

こちらのプラグインなのですが、イベントコマンドの場所移動でプレイヤーを別マップへと
移動させると、画面の位置が大きくずれて表示されるという問題が発生しており、解決方法を探しております。

サイズ28×28のマップから、サイズ25×40のマップのX座標11、Y座標32に移動した際に大きく上にずれてしまう…といった具合に発生条件がよく分かっておりません…!

スクリーンのサイズは816×624で、本体verは1.5.2と1.6.2両方で実験しましたが結果は同じでした。
ver1.6.2のサンプルプロジェクトを共有させていただきます。
https://27.gigafile.nu/0703-be163fc2ead ... d12a96022c


ご助力いただければ幸いです。よろしくお願い致します。
最後に編集したユーザー 吉良(きよ) on 2019年6月03日(月) 12:04 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: rhyme_mapsmoothscrollingのマップ移動時の不具合(ずれ)について

投稿記事by 剣崎 宗二 » 2019年6月03日(月) 11:34

お疲れ様です。

取り敢えず、でございますが、バックアップした上で該当プラグイン内以下のfunctionを修正してください。
(1行だけthis.width()をthis.height()に差し替え)

コード: 全て選択

Game_Map.prototype.setDisplayPos = function (x, y) {
    if (!this.isLoopHorizontal()) {
        x = x.clamp(0, this.width() - this.screenTileX());
    }
    if (!this.isLoopVertical()) {
        y = y.clamp(0, this.width() - this.screenTileY());   //←この行を修正。this.width()をthis.height()に
    }
    this._displayX = (x + this.width()) % this.width();
    this._displayY = (y + this.height()) % this.height();
    this._tDisplayX = this._displayX;
    this._tDisplayY = this._displayY;
    this._parallaxX = x;
    this._parallaxY = y;
};


作者の方の単純ミスかとは思いますが、このままだと縦座標と横座標を両方横幅を使って計算する事になるので、「縦と横幅が一致しない」マップに移動した際に問題が起こります。
ただ、該当プラグインは他にも疑わしき要素(バグにつながるかもしれない記述)が多く、これで完全に治るとは限らないと言う事にご注意ください。

追記:
該当のスレッドにて下の方に貼られている改良版の方がいろいろとうまく行くかもしれません。
https://github.com/quxios/Quasi-MV-Mast ... rolling.js
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
アバター
吉良(きよ)
記事: 17
登録日時: 2016年9月08日(木) 23:58
連絡を取る:

Re: rhyme_mapsmoothscrollingのマップ移動時の不具合(ずれ)について

投稿記事by 吉良(きよ) » 2019年6月03日(月) 12:04

剣崎 宗二様

ありがとうございます…!解決致しました。
なるほど、両方横幅を参照してしまっていた箇所があったのですね。

また、フォーラムの方に既に改良版があったのにも気付けず申し訳ありませんでした。
完全に見逃しておりました…orz

こちらの記事解決済みにさせていただきます。
迅速なご回答に感謝いたします。ありがとうございました。

“MV:質問” へ戻る