- ツクールVX Ace 初心者救済、質問スレ Part.4
17 :名無しさん@お腹いっぱい。[sage]:2021/05/27(木) 00:51:21.15 ID:jA0TPAQy - 全身画像はメニュー画面の完全改造になるけどbltコマンド使ってcontentsにコピーとか
テキストの縦書きはデフォじゃ用意されてない そのくらいならあらかじめ画像で用意して上と同じ方法でbltした方が良い Pictureフォルダに画像を用意して class Window_Test < Window_Base def initialize super(0, 0, 200, 200) contents.clear bitmap = Cache.picture("Bustup") contents.blt(0, 0, bitmap, bitmap.rect) end end とか実行すればウィンドウのcontents内に画像が転送される
| - ツクールVX Ace 初心者救済、質問スレ Part.4
19 :名無しさん@お腹いっぱい。[sage]:2021/05/27(木) 01:23:39.60 ID:jA0TPAQy - ただのサンプルコードだからな
顔グラフィックを全身画像にするって事はもうパーティ4人分の情報を描画するのではなくほぼ一人用のメニューに改造するって事だろ? この辺は正確な画面UIに応じて細かい調整しなきゃいけないから具体的な事は言えないが、あくまでサンプルとして class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh contents.clear bitmap = Cache.picture("Bustup") contents.blt(0, 0, bitmap, bitmap.rect) end end とか書けば既存のメニューのステータス情報は全て無くなって全身画像だけ表示される 表示原点は0, 0(左上) contentsっていうのは言わばキャンバスだから好きな情報を書き込めば良い
| - ツクールVX Ace 初心者救済、質問スレ Part.4
21 :名無しさん@お腹いっぱい。[sage]:2021/05/27(木) 20:19:17.46 ID:jA0TPAQy - デフォルトのウィンドウサイズ(544*416)を基準にすると
その内のメニューステータスウィンドウのサイズが(384 * 416) padding(枠の太さ)は基本12だからcontentsのサイズは一回り小さい(360 * 392) それを横に四分割すると(360 * 98) 顔グラフィックのサイズは一辺96だから本当にデフォルトだと高さがギリギリなんだよ これを4人分の表示領域のまま顔グラフィックを全身画像に変えたいって画面UIが想像出来ない どう考えてもはみ出るだろう 96*96に収まる全身画像なら顔グラフィック規格に当て嵌めろって話だし これ以上アドバイス欲しいなら画面配置図でも描いて上げてくれ
| - ツクールVX Ace 初心者救済、質問スレ Part.4
24 :名無しさん@お腹いっぱい。[sage]:2021/05/27(木) 23:37:06.77 ID:jA0TPAQy - そっちを先に言ってくれ。つまり縦表示から横表示に変えると
Window_MenuCommandやWindow_MenuStatusのサイズや位置調整方法は簡単だからとりあえず省くけど まず縦から横に変える方法は class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 桁数の取得 #-------------------------------------------------------------------------- def col_max return 4 end end 詳しい説明は省くけどデフォルトでは桁数1になってるから桁数4に変更 で、表示領域あたりの描画は class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 項目の描画 #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled) draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2) end end この部分でやっている。下二つのdraw_actor_XXって部分を消せば白紙になる とりあえず対応ピクチャファイル名はBustup_(アクターID).pngとか(例:Bustup_1.png)で保存しておいて class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● アクターのバストアップグラフィックの描画 #-------------------------------------------------------------------------- def draw_actor_bustup(actor, rect, enabled) dst_center_x = rect.x + rect.width / 2 dst_center_y = rect.y + rect.height bitmap = Cache.picture("Bustup_#{actor.id}") x = dst_center_x - (bitmap.rect.width / 2) y = dst_center_y - bitmap.height contents.blt(x, y, bitmap, bitmap.rect, enabled ? 255 : translucent_alpha) end end をdraw_actor_faceの代わりに入れれば反映されるはず 引数をx, yからrect引き渡しに変更している点に注意
|
|