Project1
标题:
『VX』[180经验] 求支援图片标题[命令选择行]脚本 1.14更新
[打印本页]
作者:
ykoben
时间:
2012-1-13 11:08
标题:
『VX』[180经验] 求支援图片标题[命令选择行]脚本 1.14更新
本帖最后由 ykoben 于 2012-1-14 14:53 编辑
xp很多图片标题菜单什么的
VX很少见
于此才麻烦各位大大
能否支援小子一个图片做命令选择行的脚本范例?
选中时图片变化
也就是无选择框。
希望简易
方便我们新人举一反三
◆一天过去了◆
今天周六……大神们放假啦~
周末愉快
so~5555
帮忙支援一下嘛
参赛啦~教教新人啦~
善用搜索以后,发现有篇帖子说将xp脚本VX化
o>_<o~可是不会啊!
紫大人的索引贴的里面的图片标题是日文的,而且后面一堆when和if,我看不懂~我……新手……水平差……
快过年了……亲爱的大大们……
大年前行善吧
谢谢仲起秋明的奖励……
对待大大们应该尊重!!::>_<:: dsu_plus_rewardpost_czw
作者:
各种压力的猫君
时间:
2012-1-15 04:54
本帖最后由 各种压力的猫君 于 2012-1-15 06:58 编辑
mark一下……等我搞完日常版务回来写给你 =w=
#==============================================================================
# ■ 注释详细到闹心的VX图片标题菜单 by 各种压力的猫君
#------------------------------------------------------------------------------
# 置于 Scene_Title 脚本之下,不能替换原脚本!
# 本脚本仅用于学习,此结构效率极差!
# 请勿参考本脚本的这种采用大量计算的方式
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
# 给原来的start方法定义一个别名 start_original
alias start_original start
# 重定义start方法
def start
# 载入图片标题菜单图像(未选中)
bitmap = Bitmap.new("Graphics/System/MENUS")
width = bitmap.width # 获取素材图宽度
height = bitmap.height # 获取素材图高度
lines = 4 # 指定素材图行数,用于方便计算
# 检测素材图规格是否正确
if height % 4 != 0 # 若高度除以4的余数不为0
print "图片素材高度不能被行数整除,请检查素材规格"
exit # 退出
else # 除此之外的情况(能够整除)
single_height = height / 4 # 计算单个选项高度
end
# 生成一些区域(Rect)四个参数分别为 x坐标 y坐标 宽度 高度
# 新游戏
rect_new_game = Rect.new(0, 0, width, single_height)
# 继续游戏
rect_continue = Rect.new(0, single_height, width, single_height)
# 继续游戏(不可用)
rect_continue_disabled = Rect.new(0, single_height*2, width, single_height)
# 退出游戏
rect_exit = Rect.new(0, single_height*3, width, single_height)
# 生成四个选项的位图(Bitmap)这里用了局部变量方便后面调用
# 新游戏
@bitmap_new_game = Bitmap.new(width, single_height)
@bitmap_new_game.blt(0, 0, bitmap, rect_new_game)
# 继续游戏
@bitmap_continue_enabled = Bitmap.new(width, single_height)
@bitmap_continue_enabled.blt(0, 0, bitmap, rect_continue)
# 继续游戏(不可用)
@bitmap_continue_disabled = Bitmap.new(width, single_height)
@bitmap_continue_disabled.blt(0, 0, bitmap, rect_continue_disabled)
# 退出游戏
@bitmap_exit = Bitmap.new(width, single_height)
@bitmap_exit.blt(0, 0, bitmap, rect_exit)
# 载入图片标题菜单图像(已选中)
bitmap = Bitmap.new("Graphics/System/MENUS_Selected")
# 检测素材图规格是否正确
# 若素材的宽度与之前不同
if bitmap.height != height or bitmap.height != height
print "选中后图片素材与选中前规格不同,请检查素材规格"
exit # 退出
end
# 生成四个选项的位图(Bitmap)这里用了局部变量方便后面调用
# 新游戏
@bitmap_new_game2 = Bitmap.new(width, single_height)
@bitmap_new_game2.blt(0, 0, bitmap, rect_new_game)
# 继续游戏
@bitmap_continue_enabled2 = Bitmap.new(width, single_height)
@bitmap_continue_enabled2.blt(0, 0, bitmap, rect_continue)
# 继续游戏(不可用)
@bitmap_continue_disabled2 = Bitmap.new(width, single_height)
@bitmap_continue_disabled2.blt(0, 0, bitmap, rect_continue_disabled)
# 退出游戏
@bitmap_exit2 = Bitmap.new(width, single_height)
@bitmap_exit2.blt(0, 0, bitmap, rect_exit)
# 清空已经用不到的临时bitmap
bitmap.dispose
# 调用原来的开始处理定义
start_original
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super # 父类定义
# 当按下↑方向键的时候
if Input.trigger?(Input::UP)
case @menu_index
when 0
@menu_index = 2 # 这样写是循环,如果不想循环注释掉这行就好
when 1
@menu_index = 0
when 2
@menu_index = 1
end
# 更新菜单(显示)
update_menu
# 当按下↓方向键的时候
elsif Input.trigger?(Input::DOWN)
case @menu_index
when 0
@menu_index = 1
when 1
@menu_index = 2
when 2
@menu_index = 0 # 这样写是循环,如果不想循环注释掉这行就好
end
# 更新菜单(显示)
update_menu
end
# 当按下C键(确定键)的时候
if Input.trigger?(Input::C)
# 根据 @menu_index 的值判断下一步行动
case @menu_index
when 0 # 新游戏
command_new_game
when 1 # 继续
command_continue
when 2 # 关闭
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● 更新菜单(显示)
#--------------------------------------------------------------------------
def update_menu
# 冻结画面,相当于RMXP的“准备渐变”
# 如果要兼容动态标题特效则不能使用这种方式
Graphics.freeze
# 根据 @menu_index 的值判断变化
case @menu_index
when 0 # 新游戏
@sprite_new_game.bitmap = @bitmap_new_game2
@sprite_continue.bitmap = @bitmap_continue
@sprite_exit.bitmap = @bitmap_exit
when 1 # 继续
@sprite_new_game.bitmap = @bitmap_new_game
@sprite_continue.bitmap = @bitmap_continue2
@sprite_exit.bitmap = @bitmap_exit
when 2 # 关闭
@sprite_new_game.bitmap = @bitmap_new_game
@sprite_continue.bitmap = @bitmap_continue
@sprite_exit.bitmap = @bitmap_exit2
end
# 播放光标音效
Sound.play_cursor
# 执行渐变(10帧)形成菜单项淡入淡出的效果
# 如果要兼容动态标题特效则不能使用这种方式
Graphics.transition(10)
end
#--------------------------------------------------------------------------
# ● 生成命令窗口
#--------------------------------------------------------------------------
def create_command_window
# 临时变量
# x 坐标 = ( 游戏画面宽度 - 单个素材宽度 ) ÷ 2 ,这样计算结果是居中
x = (Graphics.width - @bitmap_new_game.width) / 2
# y 坐标(直接指定)
y = 300
# 选项间行距 = 单个素材高度
oy = @bitmap_new_game.height
# 生成显示菜单命令的精灵(Sprite)并指定坐标
# 新游戏
@sprite_new_game = Sprite.new
@sprite_new_game.x = x
@sprite_new_game.y = y
# 继续游戏
@sprite_continue = Sprite.new
@sprite_continue.x = x
@sprite_continue.y = y + oy
# 退出游戏
@sprite_exit = Sprite.new
@sprite_exit.x = x
@sprite_exit.y = y + oy*2
# 检测存档
# 如果「继续」有效
if @continue_enabled
# 默认激活「继续游戏」
@menu_index = 1
# 将继续游戏位图指定为可用
@bitmap_continue = @bitmap_continue_enabled
@bitmap_continue2 = @bitmap_continue_enabled2
# 并消除不可用位图
@bitmap_continue_disabled.dispose
@bitmap_continue_disabled2.dispose
else # 否则
# 默认激活「新游戏」
@menu_index = 0
# 将继续游戏位图指定为不可用
@bitmap_continue = @bitmap_continue_disabled
@bitmap_continue2 = @bitmap_continue_disabled2
# 并消除可用位图
@bitmap_continue_enabled.dispose
@bitmap_continue_enabled2.dispose
end
# 设定精灵的初始位图
# 新游戏
if @menu_index == 0 # 若默认选中新游戏
@sprite_new_game.bitmap = @bitmap_new_game2 # 加载选中位图
else # 否则
@sprite_new_game.bitmap = @bitmap_new_game # 加载未选中位图
end
# 继续游戏
if @menu_index == 1 # 若默认选中继续游戏
@sprite_continue.bitmap = @bitmap_continue2 # 加载选中位图
else # 否则
@sprite_continue.bitmap = @bitmap_continue # 加载未选中位图
end
# 退出游戏
@sprite_exit.bitmap = @bitmap_exit # 加载未选中位图
end
#--------------------------------------------------------------------------
# ● 释放命令窗口
#--------------------------------------------------------------------------
def dispose_command_window
# 清除精灵
@sprite_new_game.dispose
@sprite_continue.dispose
@sprite_exit.dispose
end
#--------------------------------------------------------------------------
# ● 开启命令窗口
#--------------------------------------------------------------------------
def open_command_window
# 清空这个定义
end
#--------------------------------------------------------------------------
# ● 关闭命令窗口
#--------------------------------------------------------------------------
def close_command_window
# 清空这个定义
end
end
复制代码
预览图.jpg
(213.22 KB, 下载次数: 20)
下载附件
保存到相册
2012-1-15 06:57 上传
范例:
图片标题菜单.zip
(284.47 KB, 下载次数: 110)
2012-1-15 06:57 上传
点击文件名下载附件
作者:
ykoben
时间:
2012-1-15 11:14
谢谢你^O^各大版主伟大!谢谢猫君,仲起秋明。打针在,回家尝试。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1