【解決】マップと戦闘中で画像の位置ズレ

返信する
アバター
WTR
記事: 625
登録日時: 2015年12月22日(火) 19:14

【解決】マップと戦闘中で画像の位置ズレ

投稿記事 by WTR »

マップのキャラクターと同じスケールのエネミー画像を作り
戦闘中、マップのキャラクター位置と全く同じ位置にエネミーを表示したいのですが
試してみたら微妙に想像と違う現象が起こりました。

マップ上でプリシアの Sprite_Character の位置を確認すると
[x, y] = [312, 282]

戦闘に入って、Sprite_Enemyに対して setHome(312, 282) を実行すると
Sprite_Enemy の 位置は確かに [x, y] = [312, 282] になっているのですが
キャプチャしてみると微妙に位置がズレています。
Sprite_Enemyのほうが x = +4 pix, y = -20 pix ほど(目視ですが)つまり右上にズレています。

プリシアのエネミー画像は 48x48 pix で作っていてほとんど余白なしのド真ん中なので
画像の中心がズレているわけではないです。

どんな画像に対しても固定の +4 pix / -20 pix ズレならば補正すればいいだけなのですが
このズレがどこから来るものかわからなくて困っています。
理由がわかる方、教えて頂けないでしょうか。

よろしくお願いいたします。
添付ファイル
キャプチャ.PNG
キャプチャ.PNG (10.62 KiB) 閲覧された回数 1555 回
image_20210723_205928.png
image_20210723_205259.png
最後に編集したユーザー WTR [ 2021年7月23日(金) 22:02 ], 累計 1 回
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
WTR
記事: 625
登録日時: 2015年12月22日(火) 19:14

Re: マップと戦闘中で画像の位置ズレ

投稿記事 by WTR »

1日悩んで解決せず、質問することにしたのに書いた直後に自己解決しちゃったり…

Spriteset_Battle._battleField がズレているのが原因でした。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
chro
記事: 107
登録日時: 2021年2月14日(日) 11:26

Re: 【解決】マップと戦闘中で画像の位置ズレ

投稿記事 by chro »

rmmz_sprites.jsの

コード: 全て選択

Spriteset_Battle.prototype.createBattleField 
Spriteset_Battle.prototype.battleFieldOffsetY
で調整されています。

単純なズレというより、画面の幅/高さとUIエリアの幅/高さを変更した場合に変化します。
アバター
WTR
記事: 625
登録日時: 2015年12月22日(火) 19:14

Re: 【解決】マップと戦闘中で画像の位置ズレ

投稿記事 by WTR »

ありがとうございます。
そうですね、時間が掛かりましたが結局そこに辿り着きました。

なにか気になることがあったとき、その親がなんであるか調べる癖をつけないとダメだなぁ。
spriteset の x, y は確認してたんですが
よく見てみれば Sprite_Enemy は spriteset 直ではなく_battleField に addChild されてた。
前にも探し物が見つからなくて困ってたけど実は spriteset じゃなくて _tilemap にあったなんてことがあった気がします。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
返信する

“MZ:質問”に戻る