以下、独自のプラグイン(関数)を作成しており、
引数に画像の名前('F'+何らかの一文字)を指定すると、それぞれ別のピクチャ番号で別の座標に描画されるようになっております。
コード: 全て選択
function Original_picture(str){
//引数文字列を一文字ずつ切り出して画像名配列とする
let arrStr = str.split('');
//y座標の定数宣言
const ys = 450;
//画像名配列とピクチャ番号と描画位置を紐づけるためオブジェクトリテラル化
var fruits = {
0 : { "str" : arrStr[0], "index":1 , "x":310 , "y":ys },
1 : { "str" : arrStr[1], "index":2 , "x":358 , "y":ys },
2 : { "str" : arrStr[2], "index":3 , "x":382 , "y":ys },
3 : { "str" : arrStr[3], "index":4 , "x":406 , "y":ys }
};
//オブジェクト項目分ループ
for (key in fruits) {
//ピクチャの描画
$gameScreen.showPicture(fruits [key].index,"F"+fruits [key].str,0,fruits [key].x,fruits [key].y,100,100,255,0);
}
}
あとはイベントスクリプトで
Original_picture('ABCD');
と入れて実行すれば、
FA.png、FB.png・・・
という風に描画されます。
これはこれでできているのですが、
問題は、AとBの描画の間にウエイトを設けられないということです。
どうも、イベントスクリプトがすべて終わるまで、ピクチャは描画されないらしく
どうウエイトを挟んでも、ABCDがいっぺんに表示されてしまいます。
そのため、
コード: 全て選択
イベントスクリプト:Original_picture('A');
:ウエイト処理
イベントスクリプト:Original_picture('B');
:ウエイト処理
イベントスクリプト:Original_picture('C');
:ウエイト処理
イベントスクリプト:Original_picture('D');
:ウエイト処理
という具合にしなければならず、何のために関数化したのか分からなくなりました。
しかも上記のやり方だと、当然オブジェクトリテラルも意味をなさなくなり、
同じピクチャ番号に上書き描画されるため、イベントコマンドのピクチャ表示を利用した方が良いということになります。
$gameScreen.showPicture()の後に、ウエイトを挟んで一つずつ描画させるのは
やはり不可能なのでしょうか?
refreshを挟んでも駄目だったので、ピクチャはそういう仕様なのでしょうか?
何卒、ご教示いただけますと幸いです。
よろしくお願い申し上げます。