Project1
标题:
戰鬥中視窗問題
[打印本页]
作者:
ms0688987
时间:
2010-8-7 20:10
标题:
戰鬥中視窗問題
本帖最后由 ms0688987 于 2010-8-14 19:31 编辑
技能視窗+道具視窗+幫助視窗
要怎麼用圖片當skin呢???????
作者:
tree52
时间:
2010-8-7 20:18
再解释一下好么?没看明白,想做成什么样子。
作者:
ms0688987
时间:
2010-8-7 20:27
內建是用windows_skin是吧
我想把它用成圖片的取代視窗
某個RMXP範例遊戲
就是用圖片"小窗口"來當戰鬥指令的視窗
想要把戰鬥技能跟道具瀏覽的視窗改成圖片
作者:
tree52
时间:
2010-8-7 20:37
回复
ms0688987
的帖子
哦!这样子啊,我暂时无解,不好意思……也等待下大家的答复。
作者:
六祈
时间:
2010-8-7 20:41
参考Scene_Title的做法
作者:
逸豫
时间:
2010-8-7 20:42
是说背景用图片同时皮肤透明么- -
在所有的需要加背景的窗口的initialize方法最下方写:
self.opacity = 0
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new("图片地址")
@sprite.z = 999
@sprite.visible = self.visible
并在下方追加方法:
追加方法:
def visible=(v)
super
@sprite.visible = v
end
def dispose
super
@sprite.dispose
end
作者:
tree52
时间:
2010-8-7 20:47
回复
逸豫
的帖子
哦,原来是这样子呀!嗯,我试试看……
作者:
逸豫
时间:
2010-8-7 21:26
#==============================================================================
# ■ Window_Item
#------------------------------------------------------------------------------
# 物品画面、战斗画面、显示浏览物品的窗口。
#==============================================================================
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(0, 64, 640, 416)
@column_max = 2
refresh
self.index = 0
# 战斗中的情况下将窗口移至中央并将其半透明化
if $game_temp.in_battle
self.y = 64
self.height = 256
self.back_opacity = 160
end
self.opacity = 0
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new("Graphics/Pictures/BackGround_Item")
#@sprite.z = 999
end
def dispose
@sprite.dispose
super
end
def visible=(v)
@sprite.visible = v
super
end
#--------------------------------------------------------------------------
# ● 获取物品
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
# 添加报务
for i in 1...$data_items.size
if $game_party.item_number(i) > 0
@data.push($data_items[i])
end
end
# 在战斗中以外添加武器、防具
unless $game_temp.in_battle
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0
@data.push($data_weapons[i])
end
end
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0
@data.push($data_armors[i])
end
end
end
# 如果项目数不是 0 就生成位图、重新描绘全部项目
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
# ● 描绘项目
# index : 项目编号
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
#--------------------------------------------------------------------------
# ● 刷新帮助文本
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end
复制代码
这是物品窗口
貌似没必要去修改z呢- -
作者:
ms0688987
时间:
2010-8-7 21:27
逸豫大
呃...不用透明
純粹是把原本的視窗換成圖片
那個...修改位置能詳細講一下嘛
還有追加方法是...怎麼一回事
作者:
ms0688987
时间:
2010-8-7 21:34
時差4分鐘 汗...
感謝逸豫大
作者:
ms0688987
时间:
2010-8-8 15:53
出現問題了
主要是增加22~34行
因為不是在$game_temp.in_battle之內
造成Menu中的Item也會出現圖片
如果放到$game_temp.in_battle之中
Menu中的Item雖然不會出現
但是返回的時候顯示@sprite.dispose這行有問題
另一個問題
戰鬥中幫助視窗怎麼把它改成圖片呢?
應該也會跟上面問題一樣吧,變成跟Menu有關聯
作者:
逸豫
时间:
2010-8-12 17:51
@sprite.dispose if $game_temp.in_battle
其他窗口如同上面的窗口
恩……大概就是initialize方法吧,还有dispose visible方法一并追加上去
作者:
ms0688987
时间:
2010-8-12 22:26
明天試試看
作者:
ms0688987
时间:
2010-8-13 19:52
還是搞不出
命令視窗+Help改成圖片
參考了alestian_story還是不行
作者:
ms0688987
时间:
2010-8-14 13:19
本帖最后由 ms0688987 于 2010-8-14 19:21 编辑
指令欄終於改成圖片了...可是指令文字顏色怎麼改?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1