ホコグラが表示されない!?

 2009-07-27
Window_Base#draw_actor_graphic を使って、
歩行グラを表示させようと思ったのですが、表示されません!
座標や画像ファイルなど確認してみたのですが、問題が見つかりません!

こんな経験ないですか?

私はあります。


昔のことなんで、よく覚えてませんが、
1行の小さいウィンドウにホコグラを表示させようとしたんですね。
すると、画像が表示されないんです。

座標が間違ってると思って確認してみたけど、間違いない。
画像ファイルが違うと思って確認してみるけど、間違いない。

何度も見直して、最終的に確認したのが、Window_Base#draw_actor_graphic メソッド。
 self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
なんか位置がズラしてある!?

そうか、画像のサイズで表示位置がズレないようにしてるんだね。
 

ということは、歩行グラは左上ではなく、中央下の座標を渡してあげればいいのか。

これを踏まえて実践。
メニューステータスの顔グラを歩行グラに変更するよ。

class Window_MenuStatus < Window_Selectable
  # ○ リフレッシュ
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      draw_actor_graphic(actor, 48, actor.index * 96 + 94)
      x = 104
      y = actor.index * 96 + WLH / 2
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 120, y)
      draw_actor_level(actor, x, y + WLH * 1)
      draw_actor_state(actor, x, y + WLH * 2)
      draw_actor_hp(actor, x + 120, y + WLH * 1)
      draw_actor_mp(actor, x + 120, y + WLH * 2)
    end
  end
end
今回書き換えたのは、7行目だよ。
顔グラを描画する処理を歩行グラに変更しました。
x座標は、真ん中を指定するので、96 の半分 48 です。
y座標は、下を指定するので、+96 としたいところですが、回りを 2px あけたいので、+94 とします。

でもでも、これだと歩行グラ小さすぎて偏った感じ。。。
歩行グラのサイズは、全部同じだから中央に表示したい!って時は、
y座標を +64 に変更してあげましょう。これは、サイズが 32px の時の値ですね。

歩行グラのサイズはバラバラだけど、中央に表示したい!って時は、
Window_Base#draw_actor_graphicをオーバーライドしましょう。
残念ながらここは、端折っちゃいます。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

おー!
やはり誰もがぶつかる壁なのですね。
私もお役に立てたようでうれしいです。
【2011/08/01 21:41】 | CACAO | [編集]
感謝感激雨あられ
 ちょうどその壁にぶち当たっていたところでした。
 この記事を見つけて、本当に助かったのでコメ残しておきます!
 拙作ブログでも、こちらのページをご紹介させて頂きました。
⇒`http://deepseasons.seesaa.net/article/217674465.html
【2011/07/31 18:44】 | SOLA | [編集]
トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/282-b75d914c
≪ トップページへこのページの先頭へ  ≫
カレンダー
05 << 2017/06 >> 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

カテゴリー
最近の記事
最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク