ページ 11

【解決済み】MOG_SceneMenuのアクター立ち絵を上層に変更したい

Posted: 2021年4月10日(土) 00:16
by WhiteDragon
お世話になっております。

Atelier RGSS様の「MOG_SceneMenu」について質問です。

こちらのソースでメニュー画面の変更を行った際に
指定されたアクターの立ち絵が表示されますが
アクターの立ち絵よりも
\img\menus\mainのLayout.png(外枠の画像)が上に表示されてしまい
立ち絵が隠れてしまいます。
(上からメニューコマンド、アクターのHPなどのウインドウ、外枠、アクターの立ち絵の順に表示されているようです)
そこで、立ち絵の画像を、外枠の画像に隠れないようにしたいと考えているのですが

コード: 全て選択

//=============================================================================
// * MBustMenu
//=============================================================================
function MBustMenu() {
    this.initialize.apply(this, arguments);
};

MBustMenu.prototype = Object.create(Sprite.prototype);
MBustMenu.prototype.constructor = MBustMenu;

//==============================
// * Initialize
//==============================
MBustMenu.prototype.initialize = function(index,actor,maxmembers) {
    Sprite.prototype.initialize.call(this);	
    this._index = index;
	this._actor = actor;
	this._maxMembers = maxmembers
	this.createCharaters();
};
	
//==============================
// * Pos X
//==============================
MBustMenu.prototype.posX = function() {
	var space = Math.floor((Graphics.boxWidth - 32) / this._maxMembers);
    return 16 + (space / 2) + (space * this._index);
};

//==============================
// * create Characters
//==============================
MBustMenu.prototype.createCharaters = function() {
     this._char = new Sprite(ImageManager.loadMenusFaces3("actor_" + this._actor._actorId));
	 this._char.anchor.x = 0.5;
	 this._char.anchor.y = 1.0;
	 this._char.x = this.posX() + Moghunter.scMenu_CharX;
	 this._char.y = Graphics.boxHeight + Moghunter.scMenu_CharY;
	 this._orgX  = this._char.x;
	 this._char.x -= 50;
	 this._wait = 5 + 10 * this._index;
	 this._char.opacity = 0;
	 this.addChild(this._char);
};	

//==============================
// * Update
//==============================
MBustMenu.prototype.update = function() {
    Sprite.prototype.update.call(this);	
    if (this._wait > 0) {this._wait--; return};
	this._char.opacity += 10;
	if (this._char.x < this._orgX) {
		this._char.x += 2;
		if (this._char.x > this._orgX) {this._char.x = this._orgX};
	};
};
以上の箇所で立ち絵の描画処理を行っていると思うのですが
画像のZ軸についてどこで処理がされているのかが分からず、躓いています。

どなたかご教授いただければ幸いです。
よろしくお願いいたします。

Re: MOG_SceneMenuのアクター立ち絵を上層に変更したい

Posted: 2021年4月10日(土) 08:59
by 名無し蛙
どうもこんにちは
WhiteDragon さんが書きました:以上の箇所で立ち絵の描画処理を行っていると思うのですが
画像のZ軸についてどこで処理がされているのかが分からず、躓いています。
VXAceとは違いツクールMVでは基本的にz値は使用しませんね
Sprite(Window)はaddChildした順番に応じて下層から上層に重なっていきます
テスト実行どころかブラウザからソースコードを眺めてみただけですけど多分、こちらじゃないですか

コード: 全て選択

//==============================
// * Create Monogatari
//==============================
Scene_Menu.prototype.createMonogatari = function () {
	if (String(Moghunter.scMenu_MagicCircleV) === "true") { this.createMagicCircle() };
	this.createCharacters();
	this.createLayout();
	this.createCharStatus();
	this.createCommands();
	this.createCommandName();
	this.createPlayTime();
	this.createLocation();
};
話を聞く限りLayoutとCharactersの順番を入れ替えれば良い気がしますね

Re: MOG_SceneMenuのアクター立ち絵を上層に変更したい

Posted: 2021年4月10日(土) 21:58
by WhiteDragon
>名無し蛙様

回答ありがとうございます。
VXAceとは違いツクールMVでは基本的にz値は使用しませんね
Sprite(Window)はaddChildした順番に応じて下層から上層に重なっていきます
そうだったのですね!
今回の対応をするにあたり、色々なサイト様を見たところ
Z軸などの記述もあったので、Z軸を編集しなければならないと考えていたのですが
違ったんですね。

結果についてですが、アドバイスの通り
Create MonogatariのLayoutとCharactorsを入れ替えたところ
理想通りの結果となりました。

ありがとうございます。

こちらのトピックにつきましては、解決済みとさせていただきます。