上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
もっとドラクエっぽくしたかったので、こんな感じでちょいとインターフェースを変えてみました。

無題

バーがあるんだから最大値の表示必要なくね?と思って取っ払いました。まぁ、スペース的に入らなかったってのが一番の理由ですがw
ドラクエみたいにレベルも表示させようと思ったんですが、縦方向のスペースがただでさえいっぱいいっぱいなのでカット。

こんなスペースだと、ステートの表示をさせる余裕がねえ!と思ってどうしようかと。
Shiftキーを押してる間はHP/MPでなく、現在のステートを表示させる、と言う風にしようかと思ったんですがなんか操作が煩雑になりそうでやめ。やっぱ一目で分かるのが一番いい。

と言うわけでこんな感じ。
無題

見難いけど、無いよりマシかなあ・・・

この辺りは、ウィンドウの表示の仕組みさえ分かればさほど難しい内容ではありませんでした。
むしろ、文字の大きさや行間や、ウィンドウの位置を調整するために一々戦闘テストで確認するほうがはるかにめんどかったです。


以下、個人的メモ。

・ウィンドウの生成方法

やはりなんらかのウィンドウをベースに作るのが一番手っ取り早いです。
今回は、Window_BattleStatusをベースにこんな感じで作りました。

Window_BattleStatus2.txt

あとは必要に応じて作ったり呼んだり。

Scene_Battle > def create_info_viewport

#キャラクターのステータスの表示
@Cstatus_window = Window_BattleStatus2.new
@Cstatus_window.viewport = Viewport.new(120, 0, 544, 120)
@Cstatus_window.back_opacity = 128


これを追加。

また、下記クラスに解放やらリフレッシュやらを追加。他のウィンドウと同じです。

def dispose_info_viewport > @Cstatus_window.dispose
update_info_viewport > @Cstatus_window.update
start_party_command_selection > @Cstatus_window.refresh




あと、ポイントとしてはダメージ等を受けたときにウィンドウ内容を更新する必要があるので、下記の通り1行追加。


#--------------------------------------------------------------------------
# ● ダメージの表示
# target : 対象者
# obj : スキルまたはアイテム
#--------------------------------------------------------------------------
 def display_damage(target, obj = nil)
  if target.missed
  display_miss(target, obj)
  elsif target.evaded
  display_evasion(target, obj)
  else
   display_hp_damage(target, obj)
   display_mp_damage(target, obj)
  end
  @Cstatus_window.refresh #追加
end



これだけでオッケーのハズ。ウィンドウさえ上手く作れれば、この辺りは右にならえで良いので簡単ですね。

ただ、戦闘テストの開始を押してから実際始まるまでがスゲー長いのだけが厄介です。確認がめんどくさくってしょうがない。

あと、戦闘テストで確認をおこなうためには、スクリプトを変更したらプロジェクト自体を一旦保存してから戦闘テストに入らないと、スクリプト変更しても有効にならない、ってのは案外盲点でしたね。

そういえばステート表示のために、半透明時の透明度を128から64にしたりしたなあ・・・
この辺は個人の好みですね。


そうそう、漸く最初のボスを倒すイベントまで完成しましたよ。
ようやく主人公がLv5になりました。

先が見えん・・・
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメントの投稿

URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
powered by
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。