少し長いです。
前回こちらが提示した関数ですが、最後の
this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh);
これは、変えてはだめです。
具体的には、this.contents.blt();はそのまま使用してください。
this.contentsという変数も、blt()という関数も
どちらもMVのコアスクリプトで定義されているものなので
そのまま使用できます。
ただ、Window_Base.prototype.createMapImg()で定義しようとしている、
Spriteを新たに用意してそこで画像を表示させる方法を使うのであれば、
提示したWindow_Base.prototaype.drawImage()は不要です。
なお、このWindow_Base.prototype.createMapImg()内ですが
if ($dataMapInfos[n].name = ['10:1F']) { について
判定式が代入になってしまっています。等しいとしたい場合は、 == か === です。
あと、['10:1F']と配列にしていますが、これはそういうようにどこかで定義しているということですか?
$dataMapInfos[n].name は通常文字列が入っています。
なお、新たにSprite()で定義したthis._mapImgのbitmap変数に画像を読み込ませた場合には
表示サイズを定義する必要があります。
具体的には
this._mapImg.setFrame(x, y, width, height);
を実行してください。
x, y, width, heightには、表示させたい位置と画像サイズに合わせて値を代入しますが
今回の場合なら
this._mapImg.setFrame(0, 0, 96, 96);
でいいかと思います。
最後に、新たにSprite()を追加してそこに画像を表示させる場合は
ウィンドウ内のカーソルがスクロールした時の表示更新に気をつけてください。
どうしてもうまくいかないときは、何も手を入れていないAltSaveScreen.jsに以下を加えてみてください。
それで、img/Picturesフォルダに image.png という画像を用意してください。
それでとりあえず、画像が表示できます。
コード: 全て選択
var _drawContens = Window_SavefileList.prototype.drawContents;
Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
this.drawImage('image', rect.x, rect.y);
_drawContens.call(this, info, rect, valid);
};
Window_SavefileList.prototype.drawImage = function(name, dx, dy) {
var bitmap = ImageManager.loadPicture(name);
if (!bitmap) return 1;
var sw = bitmap.width;
var sh = bitmap.height;
var sx = 0;
var sy = 0;
var dh = sh;
var dw = sw;
this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh);
};