ステータス画面右側にキャラごとに立ち絵を表示したいのですが、
何か良い方法はありますでしょうか
ステータス画面に立ち絵表示【追記】
ステータス画面に立ち絵表示【追記】
- 添付ファイル
-
- mv.jpg (16.03 KiB) 閲覧された回数 5712 回
最後に編集したユーザー moyashi [ 2016年2月22日(月) 00:09 ], 累計 1 回
Re: ステータス画面に立ち絵表示
追記:
メモ欄の<status_picture:画像ファイル名>から立ち絵の表示をしようと思い、
Window_Statusの部分を以下のように変更したのですが、ステータス画面を2度開かないと立ち絵が表示されません。
原因が分かる方いらっしゃいましたらよろしくお願いします。
メモ欄の<status_picture:画像ファイル名>から立ち絵の表示をしようと思い、
Window_Statusの部分を以下のように変更したのですが、ステータス画面を2度開かないと立ち絵が表示されません。
原因が分かる方いらっしゃいましたらよろしくお願いします。
コード: 全て選択
Window_Status.prototype.refresh = function() {
this.contents.clear();
if (this._actor) {
var lineHeight = this.lineHeight();
this.drawPicture();
this.drawBlock1(lineHeight * 0);
this.drawHorzLine(lineHeight * 1);
this.drawBlock2(lineHeight * 2);
this.drawHorzLine(lineHeight * 6);
this.drawBlock3(lineHeight * 7);
}
};
Window_Status.prototype.drawPicture = function() {
var bitmapName =$dataActors[this._actor.actorId()].meta.status_picture;
var bitmap =ImageManager.loadPicture(bitmapName);
this.contents.blt(bitmap, 0, 0, 400, 400, 600, 184);
};
Re: ステータス画面に立ち絵表示
あーそれ自分もハマりましたね
VXAのCacheの感覚で使ってると事故ります
おそらく画像を読み込むのに0.0X秒の時間が掛かるんだと思います
読み込みが完了するまで該当bitmapは使用出来ません
この0.0X秒の間にwindowに画像をblt(コピー)する処理をすると反映されない、という事だと思います
つまり画像の初読み込みと同フレームでその画像を使用してはいけません
Window.png等のシステム画像と同じくScene_Boot内でロードしたり
シーンをcreateするタイミングでロード、startのタイミングでリフレッシュする等でズラす必要があります
createとstartの間でisReady()処理を使って空回転させてるのでこれなら最短で反映されると思います
自分も最近知った事なので間違ってたら他の人が指摘してください
VXAのCacheの感覚で使ってると事故ります
おそらく画像を読み込むのに0.0X秒の時間が掛かるんだと思います
読み込みが完了するまで該当bitmapは使用出来ません
この0.0X秒の間にwindowに画像をblt(コピー)する処理をすると反映されない、という事だと思います
つまり画像の初読み込みと同フレームでその画像を使用してはいけません
Window.png等のシステム画像と同じくScene_Boot内でロードしたり
シーンをcreateするタイミングでロード、startのタイミングでリフレッシュする等でズラす必要があります
createとstartの間でisReady()処理を使って空回転させてるのでこれなら最短で反映されると思います
自分も最近知った事なので間違ってたら他の人が指摘してください
Re: ステータス画面に立ち絵表示【追記】
ImageManager.loadPictureによる画像の読み込みは、初めて読み込むときには割りと時間がかかります。
var bitmap =ImageManager.loadPicture(bitmapName); ← このImageManager.loadPictureでの画像読み込みが完了する前に
this.contents.blt(bitmap, 0, 0, 400, 400, 600, 184); ← このbltが実行されてしまい、画像が反映されない
事前にImageManager.loadPictureで読み込んで置いてキャッシュしておくしかありません。
やりようはいくらでもありますが、一番簡単そうなのは、Window_MenuStatusで同じようなことをしているので
そこに間借りして入れてしまうことでしょうか。
参考になりましたら幸いです。
var bitmap =ImageManager.loadPicture(bitmapName); ← このImageManager.loadPictureでの画像読み込みが完了する前に
this.contents.blt(bitmap, 0, 0, 400, 400, 600, 184); ← このbltが実行されてしまい、画像が反映されない
事前にImageManager.loadPictureで読み込んで置いてキャッシュしておくしかありません。
やりようはいくらでもありますが、一番簡単そうなのは、Window_MenuStatusで同じようなことをしているので
そこに間借りして入れてしまうことでしょうか。
コード: 全て選択
Window_MenuStatus.prototype.loadImages = function() {
$gameParty.members().forEach(function(actor) {
ImageManager.loadFace(actor.faceName());
ImageManager.loadPicture($dataActors[actor.actorId()].meta.status_picture); // ここで事前に読み込みしてキャッシュしておく
}, this);
};
Re: ステータス画面に立ち絵表示【追記】
回答ありがとうございます。
立ち絵を表示することができました。
画像の読み込み時間が原因だったのは気づきませんでした…。
立ち絵を表示することができました。
画像の読み込み時間が原因だったのは気づきませんでした…。
Re: ステータス画面に立ち絵表示【追記】
数ヶ月前の記事に合間から申し訳ありません。
こちらのプラグイン自作ゲームで使ってみたいのですがよろしいでしょうか?
よろしければ許可をくだされば幸いです。
こちらのプラグイン自作ゲームで使ってみたいのですがよろしいでしょうか?
よろしければ許可をくだされば幸いです。