ピクチャのサイズは判別出来ませんか

返信する
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

ピクチャのサイズは判別出来ませんか

投稿記事 by フタツギ »

こんばんは。

ピクチャに関してなのですが、指定した番号のピクチャの大きさ(幅や高さ)を調べたり、それを変数に代入する方法は無いのでしょうか?
変数で指定できるゲームデータ内のデータの中にピクチャは無いようで・・・良ければよろしくお願いします。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: ピクチャのサイズは判別出来ませんか

投稿記事 by yamachan »

こんばんは! :D

マップ画面の場合、指定したピクチャのbitmapオブジェクトは以下で得られます。 この場合の数値 5 は、ピクチャで指定したIDから1を引いたものです。

コード: 全て選択

SceneManager._scene._spriteset._pictureContainer.children[5]
また同様に、一度表示した画像は、表示した画像のPathから以下のようにbitmapオブジェクトを得られます。

コード: 全て選択

ImageManager._cache["img/pictures/BU_01sora_00.png:0"]
どちらにしてもイベントコマンドの画像の表示でいったん画像を表示する必要はありますが、もし画面に表示したくなければ座標を -1000,-1000 のように画面外に指定すればOKです。
(スクリプト実行でよければ、画像をImageManager.loadNormalBitmap系の関数で先に読み込むのもアリ)

どちらかの方法でbitmapオブジェクトを得られれば、width, height の属性でサイズを得られます。
ただし表示した直後に値を取ると、画像読み込みが完了していないため値が得られない場合もあり、先に余裕をもって表示しておくことをお勧めします。

例えばいったん6番で枠外に表示した画像の幅を、前者の方法から変数に入力するには、変数の値設定をスクリプトにして以下のようにするとか。
1.png
1.png (12.4 KiB) 閲覧された回数 5428 回
この場合、赤枠内のコードは以下です

コード: 全て選択

SceneManager._scene._spriteset._pictureContainer.children[5].width
ちょっとコードが複雑で、あまりお手軽じゃないですね、すみません。
ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/b ... ADME.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

Re: ピクチャのサイズは判別出来ませんか

投稿記事 by フタツギ »

yamachanさん再びありがとうございます!!こんにちは!
MV内でやり方の出ないものは素直にJavaScriptで頑張るしかない感じなのですね・・・

試してみたら出来ました。細かいところまで説明してくださりありがとうございます!

確かに、画像表示した直後に同じイベント内で高さや幅の数値を得ようとしても、「0,0」のままで反応がありませんでした。それを考慮して入力しなければならないのですね。注意しなければ・・・(ImageManagerの入力も試してみましたが、スクリプト上で動かしても高さや幅についての数値を出力してもらえなくて、調べても入力の仕方が出ないので断念しました・・・)
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: ピクチャのサイズは判別出来ませんか

投稿記事 by yamachan »

こんばんは! :D

イベントコマンドにしても、スクリプトによるものにしても、ロード時間がかかるのが問題ですね。

例えばマップに自動起動のイベントを置いておき、マップが開始したらすぐにピクチャを見えないように呼び出してしまう。
実際に使うときは用意済みなので、サイズをみて、適切な位置にあらためて表示してあげる、などでしょうか。

もしくは何らかの事前読み込みプラグインを使うか、ですかね。 (↑も結局はイベントによる事前読み込みですから)
画像の事前読み込みプラグインならば、サイズ情報を変数に自動反映させるような拡張もアリかもしれません。

ピクチャの幅や高さを使ってどうしたいか、などわかったら他にもアドバイスが得られるかもしれませんね。

あまりお役に立てずすみません。
ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/b ... ADME.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

Re: ピクチャのサイズは判別出来ませんか

投稿記事 by フタツギ »

いえいえ、yamachanさんのアドバイスすごくありがたいです!
ものすごく助かってますよ!いつもありがとうございます!

何がしたかったというと下の画像みたいな感じで・・・
WS000015.JPG
WS000015.JPG (21.6 KiB) 閲覧された回数 5338 回
WS000016.JPG
WS000016.JPG (29.57 KiB) 閲覧された回数 5338 回
WS000017.JPG
WS000017.JPG (30.79 KiB) 閲覧された回数 5338 回
「メッセージウィンドウの上に立ち絵が表示されており、ウィンドウの中には3行分の文章を表示し文字が流れていく」状態になってます(「動的文字列ピクチャ生成プラグイン」を使用しています)。

前回文字列の質問をしたのも、文字列をいじって文章が流れるように見せたかったからです。
今回のピクチャの幅と高さを調べたかったのは、
・ゲーム内のピクチャの大きさをそのまま当たり判定に置き換えてゲームに使おうとした
・サイズが違う立ち絵を次々メッセージウィンドウの上に表示したいのに、ピクチャ表示の起点が左上か中央しか無くて、常にウィンドウのY座標に合わせて表示させたいが出来なかった
・・・といった具合です。また文章ピクチャの横幅を調べ、ウィンドウよりはみ出していたら文章内を改行してウィンドウ内に収める・・・ということもしたかったのですが、文章ピクチャの横幅はそもそも調べられませんでした。

変数に反映するまでのラグはありましたが、ご覧のとおりやりたかったことは出来ているので全然問題無いです!ありがとうございました!
良ければまた分からないところがあったらよろしくお願いします・・・!
返信する

“MV:質問”に戻る