[プラグイン/スクリプト]動的に画像を読み込む(中級者向け)

ツクる上でのちょっとした小ネタや裏ワザなどを紹介してみましょう。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

[プラグイン/スクリプト]動的に画像を読み込む(中級者向け)

投稿記事by 剣崎 宗二 » 2017年2月08日(水) 23:12

(ある程度プラグイン類の仕組みや作り方が分かる人向けの +α のTIPSとなります。ご了承ください)


……皆様、様々なプラグインやスクリプトで画像を読み込もうとした事があるかと思います。
その際に使われるのが、

コード: 全て選択

ImageManager.loadPicture("me")

等、画像ロード系です。

直後に続いて

コード: 全て選択

$gameScreen.showPicture(10, "logback", 0, 0, 0, 100, 100, 255, 0);

或いは

コード: 全て選択

this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0);

等を使って描画しますが、これを使う際、「1度目に機能を実行(プラグインコマンド発動等)した際には何も表示されないが、一旦戻ってもう一度やり直すと表示される」と言う事態に遭遇した方はいないでしょうか?
これは、画像のロードが終わっていないのに、描画がもう開始されているというのが原因となります。

そこで以下のコード。

コード: 全て選択

   ImageManager.loadPicture("me")
   var waiter = setInterval(function(){ //定期的に繰り返されるIntervalイベント登録
     if (ImageManager.isReady())
     {
       $gameScreen.showPicture(10, "logback", 0, 0, 0, 100, 100, 255, 0); //実際に描画するコマンド。ご自分の使用している物に合わせてお使いください(this.content.blt等)     
       clearInterval(waiter);  //executeDrawFaceがtrueを返した場合、Interval消去
     }
   }, 100); //0.1秒間隔
 
 


これが何をしているかと言いますと、0.1秒間隔でロードの完了の有否を確認し、完了した際に実描画コマンド
($gameScreen.showPicture(10, "logback", 0, 0, 0, 100, 100, 255, 0) 等)を実行する、と言うものです。
これを使えば、ロード未完による画像の表示失敗は回避できるかと思います。 

質問があれば回答いたしますので、よろしくお願いいたします。

----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: [プラグイン/スクリプト]動的に画像を読み込む(中級者向け)

投稿記事by 剣崎 宗二 » 2017年4月22日(土) 14:10

上記、もう少しわかりやすいように簡略化致しました。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。

“MV:小ネタ・TIPS・講座” へ戻る