【解決】Galv氏の Prize Wheelで初めてシーンを開くと表示が不完全

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

【解決】Galv氏の Prize Wheelで初めてシーンを開くと表示が不完全

投稿記事by ムノクラ » 2020年1月15日(水) 12:41

Galv氏の Prize Wheel を試しているのですが、サンプルプロジェクトで動作が変なので、ご指導ください。
https://galvs-scripts.com/2017/02/19/mv-prize-wheel/

サンプルプロジェクトでテストプレイをすると、最初のルーレットシーンでは、描写が完全にされず、クリックをすると止まって結果が出るところは動作します。
2回目にシーンを開くと、想定通りの表示がされます。

コアを1.6.2に入れ替え。
使用する画像をピクチャの表示で事前に表示。
TDDP_PreloadManager.js を入れる。

などしてみましたが、変化はありませんでした。
最後に編集したユーザー ムノクラ on 2020年1月16日(木) 02:00 [ 編集 1 回目 ]

---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: Galv氏の Prize Wheelで初めてシーンを開くと表示が不完全

投稿記事by ecf5DTTzl6h6lJj02 » 2020年1月15日(水) 18:04

こんばんは。
ムノクラ さんが書きました:Galv氏の Prize Wheel を試しているのですが、サンプルプロジェクトで動作が変なので、ご指導ください。
https://galvs-scripts.com/2017/02/19/mv-prize-wheel/

サンプルプロジェクトでテストプレイをすると、最初のルーレットシーンでは、描写が完全にされず、クリックをすると止まって結果が出るところは動作します。
2回目にシーンを開くと、想定通りの表示がされます。

コアを1.6.2に入れ替え。
使用する画像をピクチャの表示で事前に表示。
TDDP_PreloadManager.js を入れる。

などしてみましたが、変化はありませんでした。

初回の表示時に、描画位置を設定するタイミングでは画像がロードできていないため、
正しく位置設定されず、画面外に表示されるという現象が起こっているようです。
あらかじめ画像がロードされていれば、回避できます。
TDDP_PreloadManager プラグインは、マップで使用しているイベントの画像と、イベントコマンドのピクチャの表示で使用されている画像のプリロードを行うものらしく、サンプルプロジェクトでは、ピクチャ表示を使っていないので、プリロードされないようです。
Galv_PrizeWheel.js の Game system の 関数が書かれている下に 以下のコードを入れて、
ブート時に、画像をロードしてしまうようにすれば、解消できるかと思います。

コード: 全て選択

//-----------------------------------------------------------------------------
//  Scene Boot
//-----------------------------------------------------------------------------
Galv.PRIZE.Scene_Boot_create = Scene_Boot.prototype.create;
Scene_Boot.prototype.create = function(){
   Galv.PRIZE.Scene_Boot_create.call(this);
   ImageManager.loadPicture(Galv.PRIZE.wheelimg);
   ImageManager.loadPicture(Galv.PRIZE.notchimg);
   ImageManager.loadPicture(Galv.PRIZE.arrowimg);
}
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: Galv氏の Prize Wheelで初めてシーンを開くと表示が不完全

投稿記事by ムノクラ » 2020年1月16日(木) 02:00

ecf5DTTzl6h6lJj02 さんが書きました:こんばんは。
ムノクラ さんが書きました:Galv氏の Prize Wheel を試しているのですが、サンプルプロジェクトで動作が変なので、ご指導ください。
https://galvs-scripts.com/2017/02/19/mv-prize-wheel/

サンプルプロジェクトでテストプレイをすると、最初のルーレットシーンでは、描写が完全にされず、クリックをすると止まって結果が出るところは動作します。
2回目にシーンを開くと、想定通りの表示がされます。

コアを1.6.2に入れ替え。
使用する画像をピクチャの表示で事前に表示。
TDDP_PreloadManager.js を入れる。

などしてみましたが、変化はありませんでした。

初回の表示時に、描画位置を設定するタイミングでは画像がロードできていないため、
正しく位置設定されず、画面外に表示されるという現象が起こっているようです。
あらかじめ画像がロードされていれば、回避できます。
TDDP_PreloadManager プラグインは、マップで使用しているイベントの画像と、イベントコマンドのピクチャの表示で使用されている画像のプリロードを行うものらしく、サンプルプロジェクトでは、ピクチャ表示を使っていないので、プリロードされないようです。
Galv_PrizeWheel.js の Game system の 関数が書かれている下に 以下のコードを入れて、
ブート時に、画像をロードしてしまうようにすれば、解消できるかと思います。

コード: 全て選択

//-----------------------------------------------------------------------------
//  Scene Boot
//-----------------------------------------------------------------------------
Galv.PRIZE.Scene_Boot_create = Scene_Boot.prototype.create;
Scene_Boot.prototype.create = function(){
   Galv.PRIZE.Scene_Boot_create.call(this);
   ImageManager.loadPicture(Galv.PRIZE.wheelimg);
   ImageManager.loadPicture(Galv.PRIZE.notchimg);
   ImageManager.loadPicture(Galv.PRIZE.arrowimg);
}


いつも回答頂き、ありがとうございます。

サンプルプロジェクトにご指導いただいたコードを追記した所、想定通りの動作を得られました。
どうやら、日本語パッチの最終箇所に入れても動作するようなので、一緒に入れさせていただきます。
(もちろん、引用元を明記します)

本当に、いつもありがとうございます。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。

“MV:質問” へ戻る