上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
タイトルをつけてみました。(最上部)
最近?こういう章毎にタイトルをつけてるのをあんまり見かけない気がしたので、敢えて付けてみました。

無題2


セーブ/ロード画面にも反映してみました。

無題

この辺りはさほど難しくなく、わざわざ解説するまでも無い・・・気がしたんですが、まだ初心者なので確認の意味合いもこめて詳しい記事も書いてみようと思います。 1.メニュー画面にタイトルをつける

まず、ウィンドウを作成します。
空の状態から新しくスクリプトを1から作ります。
ただ、空の状態から作るとめんどい&ミスしやすいということで、WindowGoldをベースに作成しました。


★Window_Title


#==============================================================================
# ■ Window_Title
#------------------------------------------------------------------------------
#  チャプタータイトルの表示をします。
#==============================================================================

ChapterTbl = ["序章 王子の旅立ち",
"第1章 誰か代わりにシナリオ書いてよ"]

class Window_Title < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 544, 54)
refresh
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_title(ChapterTbl[$game_variables[2]],
$game_variables[2], $game_variables[3], 4, 0, 544)
end
end



・ChapterTblで、チャプター毎のタイトルを設定。一番上が0章なのに注意。
・”super(x, y, 544, 54)”で、幅と高さを設定。
・draw_titleでテキストの表示。ゲーム内の変数2番にチャプター番号を、3番にステップ数(書くチャプターをもっと細かく分けた単位)としていますので、ChapterTblの変数2番目の文字列を取得し、それをそのまま描画する。


次に、draw_titleを定義する。

Window_Base内の好きな位置に下記を記載。

def draw_title(title, chapter, step, x, y, width)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, width, WLH, title)
self.contents.font.color = system_color
x = 370
self.contents.draw_text(x, y, width, WLH, "Chapter #{chapter} - #{step}")
end



仕上げに、メニュー画面からこの作ったWindow_Titleを呼びます。閉じるのも忘れずに。
(終了処理をしないと、メニューを閉じてもタイトルが残ったままになります。これはこれで面白いですがw)

Scene_Menu

#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(160, 54)
@title_window = Window_Title.new(0,0) #タイトルの表示  ←追加
end

#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@title_window.dispose #タイトルの表示 ←追加
@status_window.dispose
end




2.セーブ画面にタイトルの表示

基本的には上と同じなので詳細は割愛。


Window_SaveFile

#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
name = Vocab::File + " #{@file_index + 1}"
self.contents.draw_text(4, 0, 200, WLH, name)
@name_width = contents.text_size(name).width
if @file_exist
draw_party_characters(152, 58)
draw_playtime(0, 34, contents.width - 4, 2)
draw_title(96,0,470,100)   ←追加
end
end



同スクリプト、適当な位置に書きも追加。

def draw_title(x, y, width, align)
title = ChapterTbl[@game_variables[2]]
chapter = @game_variables[2]
step = @game_variables[3]

self.contents.font.color = normal_color
self.contents.draw_text(x, y, width, WLH, "『#{title}』" )
self.contents.font.color = system_color
self.contents.draw_text(x + 300, y, 96, WLH, "Chapter #{chapter} - #{step}")
end


あちこち、微妙にソースが汚い箇所がありますが気にしたら負けです・・・
この辺りは割りと素直に作成できました。


ホントは、セーブ画面に各キャラのLvも併記したかったんですが、どうやってもうまくいかず諦めました・・・_| ̄|○
actorの情報をよみとる
”@game_actors = Marshal.load(file)”
を追加すればいいのかな?と思ったんですが・・・

2日考えても分からず、取り敢えず妥協しました。あまり凝ってると先に進めん・・・

で、未だ2つ目のダンジョンすらマトモに出来てないのでいい加減本筋に戻らなくては、って感じです。
スポンサーサイト

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

コメントの投稿

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

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