ページ 11

【解決済み】ステータス画面下部の余白設定

Posted: 2016年1月22日(金) 05:47
by 湯喜乃湯
「Window_Status」内にスクリプトを追加し、ステータス画面にアクターの立ち絵画像を表示させるようにしたのですが、下部に8ピクセルほどの余白があり、画像がその分途切れてしまいます。
この余白設定を無くし、立ち絵画像を途切れないように表示させたいのですが、どうすればいいのでしょうか?
ご教授のほど、よろしくお願いします。

以下、追加したスクリプトです。
#--------------------------------------------------------------------------
# ● ブロック 0 の描画(立ち絵を表示させるブロック0を追加)
#--------------------------------------------------------------------------
def draw_block0(y)
bitmap = Cache.picture("Actor#{@actor.id}")
self.contents.blt(x, y, bitmap, bitmap.rect)
end

Re: ステータス画面下部の余白設定

Posted: 2016年1月22日(金) 08:35
by faida
おはようございます。

手っ取り早い方法としては、標準パディングサイズを小さくすると、余白の部分まで立ち絵を表示することができます。

コード: 全て選択

class Window_Status < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 標準パディングサイズの取得
  #--------------------------------------------------------------------------
  def standard_padding
    return 4
  end
 end
ただし、文字のレイアウトが崩れてしまうので、自分で調整する必要があります。

もう一つ、立ち絵をスプライトで表示させる方法もあります。

コード: 全て選択

class Window_Status < Window_Selectable
  #--------------------------------------------------------------------------
  # ● ブロック 0 の描画(立ち絵を表示させるブロック0を追加)
  #--------------------------------------------------------------------------
  def draw_block0(y)
    @picture_sprite.dispose if @picture_sprite && !@picture_sprite.disposed?
    @picture_sprite = Sprite.new
    @picture_sprite.bitmap = Cache.picture("Actor#{@actor.id}")
    @picture_sprite.x = x
    @picture_sprite.y = y
    @picture_sprite.z = self.z
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias dispose_fai_ss dispose
  def dispose
    @picture_sprite.dispose unless disposed?
    dispose_fai_ss
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_fai_ss update
  def update
    update_fai_ss; @picture_sprite.update if @picture_sprite
  end
end
レイアウトは崩れないですが、少々重くなる可能性もあります。

Re: ステータス画面下部の余白設定

Posted: 2016年1月22日(金) 14:06
by 湯喜乃湯
>faidaさん
こんにちわ。
早速ご回答頂きありがとうございます。
毎回毎回・・・本当に感謝です!!(FSMの頃も含めると、ありえんほどお世話になっております)

標準パディングサイズサイズの調整は、各方面のレイアウト調整が自分では厳しいようなので、今回は後述の「スプライトで表示」を使わせて頂こうと思います。

ウィンドウ枠に重ねて表示出来るという事も、選ばせて頂く要因でした。
記載はしていませんでしたが、ウィンドウ枠の上に重ねるレイアウトデザインを以前からやりたかったんで、ドストライクでした。

これにて当質問は解決済みとさせて頂きます。
改めましてfaidaさん、大感謝です!!

Re: ステータス画面下部の余白設定

Posted: 2016年1月22日(金) 21:08
by 湯喜乃湯
一度解決済みとしておいてなんですが・・・捕捉です。

あれから色々とステータス画面レイアウト変更の作業を繰り返し、最終的にはfaidaさんからご回答頂いた「標準パディングサイズ変更」と「立ち絵をスプライトで表示」の2つを組み合わせる事になりました。

「Window_Status」に「標準パディングサイズ変更(0に設定)」を追加した上で各項目の位置調整をし、レイアウト背景用画像(添付画像1)を表示。
「立ち絵をスプライトで表示」にてアクターの立ち絵画像(添付画像2)を表示。
といった感じでステータス画面のレイアウトを変更してみたした(添付画像3)。
注意:添付画像はJPEGなので、透過処理はされていません。

以上、簡単ですが補足説明でした。
では、本当の解決済みという事で、失礼します。