戦闘画面の拡張について

user215
記事: 4
登録日時: 2023年9月10日(日) 13:38

戦闘画面の拡張について

投稿記事by user215 » 2023年9月10日(日) 13:46

こんにちは。初投稿のです者です。

以下、ご教示のほどお願いします。

Actor1の現在の経験値をActor1の顔グラフィックの下に表示しようと試みましたが戦闘ウィンドウの後ろに埋もれてしまったり、戦闘開始のメッセージに被って表示されます。

こちらActor1の画像の下に表示、戦闘開示にメッセージに被らないよう修正する方法はありますか?
可能であれば作成したファイルを添付しますので修正していただけますと幸いです。

よろしくお願いいたします。
添付ファイル
Actor_EXP.js
(1.23 KiB) ダウンロード数: 6 回

アバター
Plasma Dark
記事: 715
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: 戦闘画面の拡張について

投稿記事by Plasma Dark » 2023年9月10日(日) 14:55

戦闘シーンのレイヤー構造として、 Spriteset よりも前面にウィンドウレイヤーがあります。
アクターに付随する情報であれば、 _spriteset に載せるよりも _statusWindow に載せるほうが自然になると思われます。
user215
記事: 4
登録日時: 2023年9月10日(日) 13:38

Re: 戦闘画面の拡張について

投稿記事by user215 » 2023年9月10日(日) 19:12

ご教示ありがとうございます。
_Window_BattleStatusで行ったところ確かに前面に表示されましたが、アイテム選択画面や戦闘終了メッセージを貫通して経験値が表示されます。こちらはどうすればよいででしょうか?
アバター
Plasma Dark
記事: 715
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: 戦闘画面の拡張について

投稿記事by Plasma Dark » 2023年9月10日(日) 20:36

アイテム選択画面や戦闘終了メッセージを貫通して経験値が表示されます。


雑に _statusWindow に .addChild して試しましたが、「貫通して表示される」と表現できそうな現象は再現できませんでした。
どんなコードを書いて、何が起きたのか、もう少し詳細な情報があると良さそうです。
user215
記事: 4
登録日時: 2023年9月10日(日) 13:38

Re: 戦闘画面の拡張について

投稿記事by user215 » 2023年9月17日(日) 17:25

ご返答いただきありがとうございます。情報に不足があり失礼いたしました。

再度組んでみたプラグを添付させていただきます。

改善したい症状
1.戦闘メッセ―ジの上から経験値が表示される>非表示にしたい
2.アクション選択中に経験値が表示される>非表示にしたい
3.戦闘終了後のメッセージにも経験値が表示される>非表示にしたい

お手隙でしたらご教示のほどよろしくお願いいたします。
添付ファイル
Actor_EXP_2.js
(1.39 KiB) ダウンロード数: 2 回
アバター
Plasma Dark
記事: 715
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: 戦闘画面の拡張について

投稿記事by Plasma Dark » 2023年9月17日(日) 20:29

シーンに対して addChild してしまっているため、ウィンドウに対して行いましょう。
(ついでにいうと、SceneManager._scene というように、 _ が先頭についている内容を this 以外から参照する書き方は行儀が悪く、プログラムの規模が大きくなればなるほど読みにくさを増してしまうのでやめたほうが良いです)

spriteのy座標は一旦0とか、十分小さい値に調整して、ウィンドウに対して addChild しましょう。

コード: 全て選択

this.addChild(this.expTextSprite);


Window_BattleStatus のメソッドで実行しているため、 this はウィンドウの実体になります。
ツクールはシーンやウィンドウ、スプライトに対して addChild で表示物を乗せていくことで、様々な表示を実現しています。
ウィンドウに乗せてしまえば、ウィンドウの表示非表示に合わせて乗せたものも表示非表示されます。

戦闘中に経験値が変動するようなことがないのであれば、表示の更新も必要ないので、 initialize の中で drawText までやってしまって良いと思います。
更新が必要である場合も update で再描画させるのはパフォーマンス上よろしくないので、 refresh に移してあげるほうが良いですね。
user215
記事: 4
登録日時: 2023年9月10日(日) 13:38

Re: 戦闘画面の拡張について

投稿記事by user215 » 2023年9月17日(日) 23:53

迅速にご教示いただきありがとうございます。
ご説明いただきました通り修正したところ意図した通りにできました。

以下、勉強になりました。
>spriteのy座標は一旦0とか、十分小さい値に調整して、ウィンドウに対して addChild しましょう

初投稿にも関わらず、ご丁寧に教えていただき、ありがとうございました。

“MZ:質問” へ戻る