Project1
标题:
[結帖]求能同時用兩張iconset.png的方法
[打印本页]
作者:
david_ng223
时间:
2015-1-26 07:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
tan12345
时间:
2015-1-26 09:56
首先,你看看脚本里原来的draw_icon方法是怎么写的
def draw_icon(icon_index, x, y, enabled = true)
bitmap = Cache.system("Iconset")
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
end
复制代码
然后我们来看看这条语句:bitmap = Cache.system("Iconset")
这条语句的意思是告诉系统,bitmap要使用system下的Iconset这张图片,为什么这么说?我们可以去Cache这个脚本下找到system这个方法:
#--------------------------------------------------------------------------
# ● 获取系统图像
#--------------------------------------------------------------------------
def self.system(filename)
load_bitmap("Graphics/System/", filename)
end
复制代码
那么,很明显,这里就是指定文件路径和文件名的方法,那么接下来就好办了,你自己写一个方法,使用的是你指定的iconset_two这张图片,然后在你需要显示这张图片的地方,调用你写的方法,完毕。
作者:
david_ng223
时间:
2015-1-26 10:20
提示:
作者被禁止或删除 内容自动屏蔽
作者:
tan12345
时间:
2015-1-26 12:08
david_ng223 发表于 2015-1-26 10:20
不要这样就完毕
大大能否幫我把这個腳本寫出來
報酬:幫大大開通3個月的qq會員(我要當個乖乖的伸 ...
我以为你是想学脚本,所以才这样回复你,如果你只是为了实现你想要的那个效果的话,我记得,论坛里有个在备注里标明使用哪个图片就可以用哪个做图标的脚本,具体关键字不记得了,你找找?年前我有点忙,都没什么时间写代码……要不你@别人看看咯……
作者:
david_ng223
时间:
2015-1-27 07:32
提示:
作者被禁止或删除 内容自动屏蔽
作者:
tseyik
时间:
2015-1-27 09:06
本帖最后由 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
复制代码
作者:
喵呜喵5
时间:
2015-1-27 09:37
https://rpg.blue/thread-375287-1-1.html
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1