Project1
标题:
「菜单改版」
[打印本页]
作者:
天地有正气
时间:
2014-3-1 16:18
标题:
「菜单改版」
本帖最后由 天地有正气 于 2014-3-1 16:20 编辑
实现了改版的菜单。
效果图:
搜狗截图 2年01月01日0623_1.png
(84.66 KB, 下载次数: 31)
下载附件
保存到相册
2014-3-1 16:17 上传
拥有滑动效果等。本来是用在我的游戏里的,因为我的游戏估计只有一个人,而且省去了部分内容,例如状态,特技等,以后会有相应的扩展版。
左边空着的地方是状态栏,但是还没有实现,过一会儿就可以了。
@Index
@map
@Person
class Window_MenuCommand < Window_Selectable
def initialize
super(650-240+240,60,160,32+84)
self.contents = Bitmap.new(width - 32, height - 32)
@item_max = 4
@column_max = 2
self.index = 0
self.contents.draw_text(8,4,44,22,"物品")
self.contents.draw_text(68,4,44,22,"装备")
self.contents.draw_text(8,40,44,22,"记录")
self.contents.draw_text(68,40,44,22,"存档")
end
def update_cursor_rect
# 计算光标的宽
cursor_width = 160/ @column_max - 32
# 计算光标坐标
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy
# 更新光标矩形
if @index == 0
self.cursor_rect.set(x+4, y, cursor_width+8, 32)
end
if @index == 1
self.cursor_rect.set(x-16, y, cursor_width+8, 32)
end
if @index == 2
self.cursor_rect.set(x+4, y+4, cursor_width+8, 32)
end
if @index == 3
self.cursor_rect.set(x-16, y+4, cursor_width+8, 32)
end
end
end
class Window_MapName < Window_Base
def initialize
super(0,0,160,64+32)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
text = $game_map.map_id
case text
when 3 # 主角的家 外观
text = "山村上段"
when 4 # 主角的家 内部
text = "自己的家"
when 5 # 山路
text = "山路"
when 6 # 山村
text = "山村中段"
when 7 # 村名家
text = "村民家"
when 8 # 山脚
text = "山村脚下"
when 9 # 村长家
text = "村长的家"
else
text = ""
end
cx = contents.text_size("你在").width
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 120-cx-2, 32, "你在:")
self.contents.font.color = text_color(6)
cw = contents.text_size(text).width
self.contents.draw_text(22, 0, cw, 85, text, 2)
end
end
class Scene_Menu
def main
# 生成命令窗口
@command_window = Window_MenuCommand.new
@command_window.opacity = 160
# 生成金钱窗口
@gold_window = Window_Gold.new
@gold_window.x = @command_window.x
@gold_window.y = @command_window.height + 100
@gold_window.opacity = 160
# 生成所在地窗口
@name_window = Window_MapName.new
@name_window.x = @gold_window.x
@name_window.y = @gold_window.y + 100
@name_window.opacity = 160
# 生成地图图形
@map = Spriteset_Map.new
# 执行过渡
Graphics.transition
# 移动窗口
for i in 1..3
@command_window.x -= 80
@gold_window.x -= 80
@name_window.x -= 80
Graphics.update
end
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果切换画面就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放窗口
@command_window.dispose
@gold_window.dispose
@name_window.dispose
# 释放地图
@map.dispose
end
def update
@command_window.update
if @command_window.active == true
command_update
end
end
def command_update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_window.index
when 0
$scene = Scene_Item.new
when 1
$scene = Scene_Equip.new
when 2
$scene = Scene_Map.new
when 3
$scene = Scene_Save.new
end
end
end
end
复制代码
作者:
紫英晓狼1130
时间:
2014-3-1 18:16
支持一下,推荐直接定义地图名,就不用在脚本里设置了
作者:
chd114
时间:
2014-3-16 02:48
如果是宇宙之类的背景,你的半透明菜单上的字就看不到了
作者:
abc伱好
时间:
2014-3-18 13:45
大大,你有没有仙剑菜单或者轩辕剑的?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1