赞 | 170 |
VIP | 6 |
好人卡 | 208 |
积分 | 229 |
经验 | 137153 |
最后登录 | 2024-11-13 |
在线时间 | 8638 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 22938
- 在线时间
- 8638 小时
- 注册时间
- 2011-12-31
- 帖子
- 3367
|
本帖最后由 tseyik 于 2015-1-27 09:14 编辑
- #==============================================================================
- # RGSS3_拡張アイコン ver1.01
- # 2014/07/01作成 仮公開
- # 2014/07/02複合アイコン機能を追加
- #==============================================================================
- =begin
- 機能① 複数のアイコン画像を使用 画像を編集して繋ぎ合わせる必要なし
- 機能② アイコンの色調変更と反転
- 機能③ 複数のアイコンを重ねて表示
- 機能④ どのようなアイコンが使えるか確認する画面
- とりあえず機能②だけ使うための簡易説明(詳しい説明は設定項目の下)
- ・テストプレイでタイトル画面の「拡張アイコン」を選択
- ・上下キーでコマンドを選択して、左右キーで値を変更
- ・いいアイコンが出来たら、右下の文字をスキル等のメモ欄に入れる
- 右下の文字 例: <拡張アイコン=0,0,0,1>
- ・おしまい
- =end
- module IconEX
-
- # true にするとタイトル画面で「拡張アイコン」を最初から選択するようになる
- SELECT_SHOW = false
-
-
- # アイコン画像の設定
- # 0番はデフォルトのアイコン画像"Iconset"
- # 1番以降は使用するアイコン画像のファイル名(Graphics/Systemフォルダ内)
- ICONSET_FILE = [] # 変更しないでください
- ICONSET_FILE[0] = "Iconset" # 変更しないでください
-
- ICONSET_FILE[1] = "Iconset" # 使用したいアイコン画像のファイル名
- ICONSET_FILE[2] = "Iconset"
- ICONSET_FILE[3] = "Iconset" # 以降、使用したい数だけ追加
-
-
- # 通常アイコン番号の拡張アイコンへの置換 10001~99999の番号を指定
- #
- # 用途①複合アイコンを使う
- # 用途②「他のスクリプト素材の機能で表示するアイコン」で拡張アイコンを使う
- #
- # 説明は設定項目の下
- EX_INDEX = []
- EX_INDEX[10001] = [[0, 1, 180, 3]] # 10001番は<拡張アイコン=0,1,180,3>と同じ
- EX_INDEX[10002] = [[0, 416, 350, 1]] # ルビーロッド
- EX_INDEX[10003] = [[0, 416, 150, 1]] # エメラルドロッド
- EX_INDEX[10004] = [[0, 416, 220, 1]] # サファイアロッド
- EX_INDEX[10005] = [[0, 212, 0, 1]] # レッドポーション
- EX_INDEX[10006] = [[0, 212, 60, 1]] # イエローポーション
- EX_INDEX[10007] = [[0, 212, 120, 1]] # グリーンポーション
- EX_INDEX[10008] = [[0, 212, 220, 1]] # ブルーポーション
- EX_INDEX[10009] = [[0, 212, 270, 1]] # パープルポーション
- EX_INDEX[10010] = [[0, 281, 0, 1]] # 十字架
- EX_INDEX[10011] = [[0, 281, 320, 4]] # 逆十字
- EX_INDEX[10012] = [[0, 16, 0, 1], [0, 136, 0, 1]] # ステート:魔法強化
- EX_INDEX[10013] = [[0, 224, 0, 2], [0, 147, 0, 2], [0, 147, 0, 1]] # 二刀奥義書
- EX_INDEX[10014] = [[0, 131, 0, 1], [0, 386, 0, 2]] # スキル:二段切り
- EX_INDEX[10015] = [[0, 277, 0, 3], [0, 276, 0, 2]] # 採掘セット
- EX_INDEX[10016] = [[0, 144, 0, 2], [0, 144, 0, 1]] # 職業:狂戦士
- EX_INDEX[10017] = [[0, 393, 0, 1], [0, 389, 0, 2]] # 聖邪の双剣
- EX_INDEX[10018] = [[0, 246, 320, 1], [0, 247, 150, 1]] # 火と水の紋章
- EX_INDEX[10019] = [[0, 16, 0, 1], [0, 192, 0, 1]] # ステート:自動回復
- EX_INDEX[10020] = [[0, 270, 0, 1], [0, 240, 0, 1]] # スキル:開錠
-
- end
- =begin
- 機能① 複数のアイコン画像を使用
- 使用したいアイコン画像のファイル名を、設定項目の ICONSET_FILE で指定する
- 機能② アイコンの色調変更と反転
- 準備なし
- 機能③ 複合アイコン
- 後述
- 機能④ どのようなアイコンが使えるか確認する画面
- テストプレイ中のみ、タイトル画面に「拡張アイコン」のコマンドが出る
- これを選択すると確認画面を開始する
- 画面説明
- 左上のウインドウ :セットで選択した「アイコン画像」のファイル名を表示
- 左のウインドウ :操作コマンドを表示
- 左下のウインドウ :複合アイコンを表示
- 右のウインドウ 上 :セットとページで選択した「表示中のアイコン画像」
- に色調変更を加えたものを表示 反転はなし
- 横列と縦列で選択した「選択中のアイコン」上に白枠を表示
- 右のウインドウ 左下:横列と縦列で選択した「選択中のアイコン」に
- 色調変更と反転を加えた「完全な拡張アイコン」を表示
- 右のウインドウ 下 :左下に表示しているアイコンのメモ欄設定用の文字を表示
- 操作コマンド説明
- セット :アイコン画像の番号 ICONSET_FILEの設定に対応
- ページ :右ウインドウのアイコン画像は16段を1ページで表示する そのページ数
- 横列 :ページ内のアイコンを選択する 1~16
- 縦列 :ページ内のアイコンを選択する 1~16
- 色調 :アイコンの色調を変更する 0~35
- 反転 :「1 反転なし」「2 左右反転」「3 上下反転」「4 上下左右反転」
- アイコン複合 :左下のウインドウに複合をセットする
- 操作方法① Shiftキーを押していない時 フル操作
- 決定キー :選択中の項目を1増やす アイコン複合:複合アイコンを追加
- →キー :選択中の項目を1増やす アイコン複合:何もしない
- ←キー :選択中の項目を1減らす アイコン複合:何もしない
- キャンセルキー:選択中の項目を0にする アイコン複合:複合アイコンをリセット
- ↑キー :項目を移動する
- ↓キー :項目を移動する
- 操作方法② Shiftキーを押している時 移動操作
- Lキー :ページを1減らす
- Rキー :ページを1増やす
- →キー :横列を1増やす
- ←キー :横列を1減らす
- ↑キー :縦列を1増やす
- ↓キー :縦列を1減らす
- 「右のウインドウ 下」にあるメモ欄設定用の文字を、
- スキル・アイテム・ステートなどのメモ欄に書けばそのアイコンになる
- 機能③ 設定項目EX_INDEX ①複合アイコン
- <拡張アイコン=0,16,0,1> の上に <拡張アイコン=0,136,0,1> を重ねて表示したい場合
- EX_INDEX[10001] = [[0, 16, 0, 1], [0, 136, 0, 1]]
- のように設定する。
- この設定は、確認画面で「アイコン複合」の操作をするたび、コンソールに表示される
- コンソール:ツクールのエディタ上部のメニューバー(「ファイル(F)」などの部分)
- の「ゲーム(G)」をクリックして
- 出てきた中の「コンソールの表示(C)」にチェックを入れる
- これをスキル等のアイコンにするならメモ欄に
- <拡張アイコン=10001>
- と書く。
- 「他のスクリプト素材の機能で表示するアイコン」にするなら、下の説明を参照。
- 設定項目EX_INDEX ②「他のスクリプト素材の機能で表示するアイコン」で拡張アイコン
- 例① メモ欄
- C Winterの「FF風 画面上部にスキル名表示」では
- スキル使用時に上部ウインドウに表示するアイコンをメモ欄で
- <表示アイコン=1>
- のように設定する。
- ここで
- <表示アイコン=10001>
- とすると「このスクリプトの EX_INDEX[10001] で設定した拡張アイコン」を表示する。
- 例② スクリプト
- C Winterの「戦闘コマンドカスタム」では
- 戦闘コマンドの [通常攻撃, 防御, アイテム, 逃走] のアイコンをスクリプトで
- ACTOR_ICON_OTHER = [116, 160, 260, 467]
- のように設定する。
- ここで防御のアイコンを拡張アイコンにしたい場合
- ACTOR_ICON_OTHER = [116, [[0, 160, 180, 1]], 260, 467]
- とすることができる。基本的にこれで問題ない。
- ただしスクリプトの仕様によってはこれで不具合になるものがあるかもしれないので、
- その場合は例①と同じように
- ACTOR_ICON_OTHER = [116, 10001, 260, 467]
- とする。
- 例③ 色調変更と反転を使用しない(複数のアイコン画像のみ使用)場合
- この場合は EX_INDEX の設定は不要
- 例①と例②の「10001を指定している部分」で100000以上の番号を指定すると
- 『「番号 ÷ 100000」番目のアイコン画像で「番号の下5桁」番目のアイコン番号』
- のアイコンを表示する。
- 説明ここまで
- =end
- #==============================================================================
- # ■ Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # ● アイコンの描画
- # enabled : 有効フラグ。false のとき半透明で描画
- #--------------------------------------------------------------------------
- def draw_icon(icon_index, x, y, enabled = true)
- return if icon_index == nil
- unless icon_index.is_a?(Array)
- if IconEX::EX_INDEX[icon_index]
- icon_index = IconEX::EX_INDEX[icon_index]
- else
- icon_index = [[icon_index / 100000, icon_index % 100000, 0, 1]]
- end
- end
- for par in icon_index
- filename = IconEX::ICONSET_FILE[par[0]]
- bitmap = Cache.load_bitmap("Graphics/System/", filename, par[2])
- rx = par[1] % 16 * 24
- ry = par[1] / 16 * 24
- rw = 24
- rh = 24
- case par[3]
- when 1; rect = Rect.new(rx, ry, rw, rh)
- when 2; rect = Rect.new(rx + rw, ry, -rw, rh)
- when 3; rect = Rect.new(rx, ry + rh, rw, -rh)
- when 4; rect = Rect.new(rx + rw, ry + rh, -rw, -rh)
- end
- contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
- end
- end
- #--------------------------------------------------------------------------
- # ● アイコンの描画
- # 軽量化のためテスト時のみエラー表示判定を追加
- #--------------------------------------------------------------------------
- if $TEST
- def draw_icon(icon_index, x, y, enabled = true)
- return if icon_index == nil
- unless icon_index.is_a?(Array)
- if IconEX::EX_INDEX[icon_index]
- icon_index = IconEX::EX_INDEX[icon_index]
- else
- icon_index = [[icon_index / 100000, icon_index % 100000, 0, 1]]
- end
- end
- for par in icon_index
- filename = IconEX::ICONSET_FILE[par[0]]
- unless par.is_a?(Array)
- text = "「拡張アイコン」エラー ①二重配列になっていない\n\n"
- text += sprintf("%p の表示でエラーが発生しました\n\n", icon_index)
- text += "ver1.01からは、スクリプト内(EX_INDEXなど)で拡張アイコンを記述する場合\n"
- text += sprintf("%p ではなく [%p]\n", icon_index, icon_index)
- text += "のように [[]] で囲って記述してください"
- msgbox text
- end
- unless filename
- text = "「拡張アイコン」エラー ②アイコン画像が設定されていない\n\n"
- text += sprintf("%p の表示でエラーが発生しました\n\n", icon_index)
- text += sprintf("アイコン画像 %d 番は", par[0])
- text += "ICONSET_FILE に設定されていません\n"
- text += sprintf("ICONSET_FILE[%d] のファイル名を設定してください", par[0])
- msgbox text
- end
- bitmap = Cache.load_bitmap("Graphics/System/", filename, par[2])
- rx = par[1] % 16 * 24
- ry = par[1] / 16 * 24
- rw = 24
- rh = 24
- case par[3]
- when 1; rect = Rect.new(rx, ry, rw, rh)
- when 2; rect = Rect.new(rx + rw, ry, -rw, rh)
- when 3; rect = Rect.new(rx, ry + rh, rw, -rh)
- when 4; rect = Rect.new(rx + rw, ry + rh, -rw, -rh)
- end
- contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
- end
- end
- end
- end
- #==============================================================================
- # ■ RPG::BaseItem
- #==============================================================================
- class RPG::BaseItem
- def icon_index
- unless @ex_icon_index
- if @note =~ /<拡張アイコン\s*=\s*(\d+),\s*(\d+),\s*(\d+),\s*(\d+)>/
- @ex_icon_index = [[$1.to_i, $2.to_i, $3.to_i, $4.to_i]]
- elsif @note =~ /<拡張アイコン\s*=\s*(\d+)>/
- @ex_icon_index = $1.to_i
- else
- @ex_icon_index = @icon_index
- end
- end
- return @ex_icon_index
- end
- end
- #==============================================================================
- # ■ Cache
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # ● システム グラフィックの取得
- #--------------------------------------------------------------------------
- def self.system(filename, hue = 0)
- load_bitmap("Graphics/System/", filename, hue)
- end
- end
- # 実動作ここまで 以下アイコン確認シーン
- #==============================================================================
- # ■ Scene_Title
- #==============================================================================
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------
- # ● コマンドウィンドウの作成
- #--------------------------------------------------------------------------
- alias :icon_ex_show_create_command_window :create_command_window
- def create_command_window
- icon_ex_show_create_command_window
- @command_window.set_handler(:icon_show, method(:command_icon_show))
- end
- #--------------------------------------------------------------------------
- # ● コマンド[拡張アイコン]
- #--------------------------------------------------------------------------
- def command_icon_show
- close_command_window
- SceneManager.call(Scene_IconShow)
- end
- end
- #==============================================================================
- # ■ Window_TitleCommand
- #==============================================================================
- class Window_TitleCommand < Window_Command
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias :icon_ex_initialize :initialize
- def initialize
- icon_ex_initialize
- select_symbol(:icon_show) if $TEST and IconEX::SELECT_SHOW
- end
- #--------------------------------------------------------------------------
- # ● コマンドリストの作成
- #--------------------------------------------------------------------------
- alias :icon_ex_show_make_command_list :make_command_list
- def make_command_list
- icon_ex_show_make_command_list
- add_command("拡張アイコン", :icon_show) if $TEST
- end
- end
- #==============================================================================
- # ■ Scene_IconShow
- #==============================================================================
- class Scene_IconShow < Scene_Base
- #--------------------------------------------------------------------------
- # ● 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_reader :icon_file_max
- attr_reader :icon_file_index
- attr_reader :icon_page_max
- attr_reader :icon_page_index
- attr_reader :icon_pos_index
- attr_reader :icon_color
- attr_reader :icon_angle
- attr_reader :icon_plus_info
- attr_reader :multi_icon
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- def start
- super
- create_iconshow_window
- make_icon_show_data
- make_new_iconset
- refresh_window
- end
- def create_iconshow_window
- @iconshow_result_window = Window_IconShowResult.new
- @iconshow_set_window = Window_IconShowSet.new
- @iconshow_command_window = Window_IconShowCommand.new
- @iconshow_flame_window = Window_IconShowFlame.new
- @iconshow_multi_window = Window_IconShowMulti.new
- end
- def make_icon_show_data
- @icon_file_max = IconEX::ICONSET_FILE.size
- @icon_file_index = 0
- @icon_page_max = 1
- @icon_page_index = 0
- @icon_pos_index = 0
- @icon_color = 0
- @icon_angle = 0
- @multi_icon = []
- end
- def make_new_iconset
- filename = IconEX::ICONSET_FILE[@icon_file_index]
- bitmap = Cache.load_bitmap("Graphics/System/", filename, @icon_color)
- @icon_page_max = (bitmap.height / 384.0).ceil - 1
- @iconshow_result_window.iconset = bitmap
- end
- def refresh_window
- @iconshow_set_window.refresh
- @iconshow_result_window.refresh
- @iconshow_flame_window.refresh
- @iconshow_command_window.refresh
- @iconshow_multi_window.refresh
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新
- #--------------------------------------------------------------------------
- def update
- super
- if Input.press?(:A)
- last_index = icon_parameter[1]
- dir_refresh
- refresh_window if last_index != icon_parameter[1]
- elsif move = move_number
- case @iconshow_command_window.index
- when 0; file_refresh(move)
- when 1; page_refresh(move)
- when 2; pos_refresh(true, move)
- when 3; pos_refresh(false, move)
- when 4; color_refresh(move)
- when 5; angle_refresh(move)
- end
- refresh_window
- end
- if Input.trigger?(:C) and @iconshow_command_window.index == 6
- if multi_enable
- Sound.play_ok
- @multi_icon.push(icon_parameter)
- refresh_window
- else
- Sound.play_buzzer
- end
- end
- if Input.trigger?(:B) and @iconshow_command_window.index == 6
- Sound.play_cancel
- @multi_icon = []
- refresh_window
- end
- if Input.trigger?(:C) and @iconshow_command_window.index == 7
- Sound.play_ok
- SceneManager.return
- end
- end
- def move_number
- return false if @iconshow_command_window.index > 5
- return 0 if Input.trigger?(:B)
- return 1 if Input.repeat?(:C)
- return 1 if Input.repeat?(:RIGHT)
- return -1 if Input.repeat?(:LEFT)
- return false
- end
- #--------------------------------------------------------------------------
- # ○ リフレッシュ
- #--------------------------------------------------------------------------
- def file_refresh(plus)
- return Sound.play_buzzer if @icon_file_max == 0
- Sound.play_cursor
- @icon_file_index += plus
- @icon_file_index %= @icon_file_max
- @icon_file_index = 0 if plus == 0
- make_new_iconset
- @icon_page_index = 0
- end
- def page_refresh(plus)
- return Sound.play_buzzer if @icon_page_max == 0
- Sound.play_cursor
- @icon_page_index += plus
- @icon_page_index = 0 if @icon_page_index > @icon_page_max
- @icon_page_index = @icon_page_max if @icon_page_index < 0
- @icon_page_index = 0 if plus == 0
- end
- def pos_refresh(x, plus)
- Sound.play_cursor
- if x
- @icon_pos_index += plus
- @icon_pos_index -= 16 if plus == 1 and @icon_pos_index % 16 == 0
- @icon_pos_index += 16 if plus == -1 and @icon_pos_index % 16 == 15
- @icon_pos_index = @icon_pos_index / 16 * 16 if plus == 0
- else
- @icon_pos_index += plus * 16
- @icon_pos_index -= 256 if plus == 1 and @icon_pos_index > 255
- @icon_pos_index += 256 if plus == -1 and @icon_pos_index < 0
- @icon_pos_index %= 16 if plus == 0
- end
- end
- def dir_refresh
- page_refresh(-1) if Input.trigger?(:L)
- page_refresh( 1) if Input.trigger?(:R)
- pos_refresh(false, -1) if Input.repeat?(:UP)
- pos_refresh(false, 1) if Input.repeat?(:DOWN)
- pos_refresh( true, -1) if Input.repeat?(:LEFT)
- pos_refresh( true, 1) if Input.repeat?(:RIGHT)
- end
- def color_refresh(plus)
- Sound.play_cursor
- @icon_color = (@icon_color + plus * 10) % 360
- @icon_color = 0 if plus == 0
- make_new_iconset
- end
- def angle_refresh(plus)
- Sound.play_cursor
- @icon_angle = (@icon_angle + plus) % 4
- @icon_angle = 0 if plus == 0
- end
- def icon_parameter
- file = @icon_file_index
- index = @icon_page_index * 256 + @icon_pos_index
- color = @icon_color
- angle = @icon_angle + 1
- return [file, index, color, angle]
- end
- def multi_enable
- !(@multi_icon[-1] == icon_parameter)
- end
- end
- #==============================================================================
- # ■ Window_IconShowSet
- #==============================================================================
- class Window_IconShowSet < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 126 + 16, line_height * 3 + 24)
- self.back_opacity = 0
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- index = SceneManager.scene.icon_file_index
- text = sprintf("セット:%d番", index)
- self.contents.draw_text(0, line_height * 0, 500, line_height, text)
- text = sprintf("ファイル名:", index)
- self.contents.draw_text(0, line_height * 1, 500, line_height, text)
- text = IconEX::ICONSET_FILE[index]
- self.contents.draw_text(0, line_height * 2, 500, line_height, text)
- end
- end
- #==============================================================================
- # ■ Window_IconShowCommand
- #==============================================================================
- class Window_IconShowCommand < Window_Selectable
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(0, line_height * 3 + 24, 126 + 16, line_height * 8 + 24)
- self.contents.draw_text(0, line_height * 7, width - 32, line_height, "タイトル")
- activate
- select(0)
- self.back_opacity = 0
- end
- #--------------------------------------------------------------------------
- # ● カーソルの移動可能判定
- #--------------------------------------------------------------------------
- def cursor_movable?
- return false if Input.press?(:A)
- return super
- end
- #--------------------------------------------------------------------------
- # ● 項目数の取得
- #--------------------------------------------------------------------------
- def item_max
- return 8
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- file_refresh
- page_refresh
- pos_refresh
- color_refresh
- angle_refresh
- multi_refresh
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def file_refresh
- file = (SceneManager.scene.icon_file_index).to_s
- max = (SceneManager.scene.icon_file_max - 1).to_s
- self.contents.font.color.alpha = 128 if SceneManager.scene.icon_file_max == 0
- self.contents.clear_rect(0, line_height * 0, width - 32, line_height)
- self.contents.draw_text(0, line_height * 0, width - 32, line_height, "セット")
- text = file + " / " + max
- self.contents.draw_text(0, line_height * 0, width - 32, line_height, text, 2)
- self.contents.font.color.alpha = 255
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def page_refresh
- max = (SceneManager.scene.icon_page_max + 1).to_s
- page = (SceneManager.scene.icon_page_index + 1).to_s
- self.contents.clear_rect(0, line_height * 1, width - 32, line_height)
- self.contents.font.color.alpha = 128 if max == 0
- if max.to_i >= 10
- self.contents.draw_text(0, line_height * 1, 36, line_height, "ページ")
- else
- self.contents.draw_text(0, line_height * 1, width - 32, line_height, "ページ")
- end
- text = page + " / " + max
- self.contents.draw_text(0, line_height * 1, width - 32, line_height, text, 2)
- self.contents.font.color.alpha = 255
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def pos_refresh
- index = SceneManager.scene.icon_pos_index
- self.contents.clear_rect(0, line_height * 2, width, line_height * 2)
- self.contents.draw_text(0, line_height * 2, width - 32, line_height, "横列")
- self.contents.draw_text(0, line_height * 3, width - 32, line_height, "縦列")
- text = (index % 16 + 1).to_s + " / " + "16"
- self.contents.draw_text(0, line_height * 2, width - 32, line_height, text, 2)
- text = (index / 16 + 1).to_s + " / " + "16"
- self.contents.draw_text(0, line_height * 3, width - 32, line_height, text, 2)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def color_refresh
- self.contents.clear_rect(0, line_height * 4, width, line_height)
- self.contents.draw_text(0, line_height * 4, width - 32, line_height, "色調")
- text = (SceneManager.scene.icon_color / 10).to_s + " / 35"
- self.contents.draw_text(0, line_height * 4, width - 32, line_height, text, 2)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def angle_refresh
- self.contents.clear_rect(0, line_height * 5, width, line_height)
- self.contents.draw_text(0, line_height * 5, width - 32, line_height, "反転")
- text = (SceneManager.scene.icon_angle + 1).to_s + " "
- self.contents.draw_text(0, line_height * 5, width - 32, line_height, text, 2)
- case SceneManager.scene.icon_angle
- when 0; text = "なし"
- when 1; text = "左右"
- when 2; text = "上下"
- when 3; text = " 両方"
- end
- self.contents.draw_text(0, line_height * 5, width - 32, line_height, text, 2)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def multi_refresh
- self.contents.clear_rect(0, line_height * 6, width, line_height)
- change_color(normal_color, SceneManager.scene.multi_enable)
- self.contents.draw_text(0, line_height * 6, width - 32, line_height, "アイコン複合")
- change_color(normal_color)
- end
- #--------------------------------------------------------------------------
- # ● カーソルを下に移動
- #--------------------------------------------------------------------------
- def cursor_down(wrap = false)
- select((index + col_max) % item_max)
- end
- #--------------------------------------------------------------------------
- # ● カーソルを上に移動
- #--------------------------------------------------------------------------
- def cursor_up(wrap = false)
- select((index - col_max + item_max) % item_max)
- end
- end
- #==============================================================================
- # ■ Window_IconShowResult
- #==============================================================================
- class Window_IconShowResult < Window_Base
- #--------------------------------------------------------------------------
- # ● 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_accessor :iconset
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(0 - 10, 0 - 10, Graphics.width + 20, Graphics.height + 20)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear_rect(0, 0, self.width, self.height)
- iconset_rect = Rect.new(0, SceneManager.scene.icon_page_index * 384, 384, 384)
- self.contents.stretch_blt(Rect.new(146, 0, 384, 384), @iconset, iconset_rect)
- par = SceneManager.scene.icon_parameter
- draw_icon([par], 146, 384)
- text = sprintf(" メモ欄: <拡張アイコン=%d,%d,%d,%d>",
- par[0], par[1], par[2], par[3])
- self.contents.draw_text(146 + 24, 384, self.width, line_height, text)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh_result
- end
- end
- #==============================================================================
- # ■ Window_IconShowFlame
- #==============================================================================
- class Window_IconShowFlame < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(128 - 1 + 8, -1 - 10, 384 + 32 + 2, 384 + 32 + 2)
- self.opacity = 0
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- x = SceneManager.scene.icon_pos_index % 16
- y = SceneManager.scene.icon_pos_index / 16
- self.contents.fill_rect(x * 24, y * 24, 24 + 2, 24 + 2, Color.new(255, 255, 255))
- self.contents.clear_rect(x * 24 + 1, y * 24 + 1, 24, 24)
- end
- end
- #==============================================================================
- # ■ Window_IconShowMulti
- #==============================================================================
- class Window_IconShowMulti < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- wy = line_height * 11 + 48
- super(0, wy, 126 + 16, Graphics.height - wy)
- self.back_opacity = 0
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- size = SceneManager.scene.multi_icon.size
- size += 1 if SceneManager.scene.multi_enable
- text = sprintf("複合:%d個", size)
- self.contents.draw_text(0, 0, self.width, line_height, text)
- text = " + = "
- self.contents.draw_text(0, line_height * 1, self.width, line_height, text)
- if SceneManager.scene.multi_icon.size >= 1
- draw_icon(SceneManager.scene.multi_icon, 4, line_height * 1)
- draw_icon(SceneManager.scene.multi_icon, 84, line_height * 1)
- end
- if SceneManager.scene.multi_enable
- draw_icon([SceneManager.scene.icon_parameter], 42, line_height * 1)
- draw_icon([SceneManager.scene.icon_parameter], 84, line_height * 1)
- end
- if SceneManager.scene.multi_icon.size >= 1
- p "「アイコン複合」にカーソルを合わせてキャンセルキーを押すとリセットされます"
- p "複合アイコン EX_INDEX設定"
- multi = SceneManager.scene.multi_icon
- multi += [SceneManager.scene.icon_parameter] if SceneManager.scene.multi_enable
- index = 99999
- for i in 10001..99999
- unless IconEX::EX_INDEX[i]
- index = i
- break
- end
- end
- puts sprintf("EX_INDEX[%d] = %p", index, multi)
- puts ""
- else
- 25.times {|t| puts "" }
- end
- end
- end
复制代码 |
|