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=
  1. #==============================================================================
  2. # ■ 注释详细到闹心的VX图片标题菜单 by 各种压力的猫君
  3. #------------------------------------------------------------------------------
  4. #  置于 Scene_Title 脚本之下,不能替换原脚本!
  5. #   本脚本仅用于学习,此结构效率极差!
  6. #   请勿参考本脚本的这种采用大量计算的方式
  7. #==============================================================================

  8. class Scene_Title < Scene_Base
  9.   #--------------------------------------------------------------------------
  10.   # ● 开始处理
  11.   #--------------------------------------------------------------------------
  12.   
  13.   # 给原来的start方法定义一个别名 start_original
  14.   alias start_original start
  15.   
  16.   # 重定义start方法
  17.   def start
  18.    
  19.     # 载入图片标题菜单图像(未选中)
  20.    
  21.     bitmap = Bitmap.new("Graphics/System/MENUS")
  22.     width  = bitmap.width     # 获取素材图宽度
  23.     height = bitmap.height    # 获取素材图高度
  24.     lines  = 4                # 指定素材图行数,用于方便计算
  25.    
  26.     # 检测素材图规格是否正确
  27.    
  28.     if height % 4 != 0 # 若高度除以4的余数不为0
  29.       print "图片素材高度不能被行数整除,请检查素材规格"
  30.       exit # 退出
  31.     else # 除此之外的情况(能够整除)
  32.       single_height = height / 4 # 计算单个选项高度
  33.     end
  34.    
  35.     # 生成一些区域(Rect)四个参数分别为 x坐标 y坐标 宽度 高度
  36.    
  37.     # 新游戏
  38.     rect_new_game = Rect.new(0, 0, width, single_height)
  39.     # 继续游戏
  40.     rect_continue = Rect.new(0, single_height, width, single_height)
  41.     # 继续游戏(不可用)
  42.     rect_continue_disabled = Rect.new(0, single_height*2, width, single_height)
  43.     # 退出游戏
  44.     rect_exit = Rect.new(0, single_height*3, width, single_height)
  45.    
  46.     # 生成四个选项的位图(Bitmap)这里用了局部变量方便后面调用
  47.    
  48.     # 新游戏
  49.     @bitmap_new_game = Bitmap.new(width, single_height)
  50.     @bitmap_new_game.blt(0, 0, bitmap, rect_new_game)
  51.     # 继续游戏
  52.     @bitmap_continue_enabled = Bitmap.new(width, single_height)
  53.     @bitmap_continue_enabled.blt(0, 0, bitmap, rect_continue)
  54.     # 继续游戏(不可用)
  55.     @bitmap_continue_disabled = Bitmap.new(width, single_height)
  56.     @bitmap_continue_disabled.blt(0, 0, bitmap, rect_continue_disabled)
  57.     # 退出游戏
  58.     @bitmap_exit = Bitmap.new(width, single_height)
  59.     @bitmap_exit.blt(0, 0, bitmap, rect_exit)

  60.     # 载入图片标题菜单图像(已选中)
  61.    
  62.     bitmap = Bitmap.new("Graphics/System/MENUS_Selected")
  63.    
  64.     # 检测素材图规格是否正确
  65.    
  66.     # 若素材的宽度与之前不同
  67.     if bitmap.height != height or bitmap.height != height
  68.       print "选中后图片素材与选中前规格不同,请检查素材规格"
  69.       exit # 退出
  70.     end
  71.    
  72.     # 生成四个选项的位图(Bitmap)这里用了局部变量方便后面调用
  73.    
  74.     # 新游戏
  75.     @bitmap_new_game2 = Bitmap.new(width, single_height)
  76.     @bitmap_new_game2.blt(0, 0, bitmap, rect_new_game)
  77.     # 继续游戏
  78.     @bitmap_continue_enabled2 = Bitmap.new(width, single_height)
  79.     @bitmap_continue_enabled2.blt(0, 0, bitmap, rect_continue)
  80.     # 继续游戏(不可用)
  81.     @bitmap_continue_disabled2 = Bitmap.new(width, single_height)
  82.     @bitmap_continue_disabled2.blt(0, 0, bitmap, rect_continue_disabled)
  83.     # 退出游戏
  84.     @bitmap_exit2 = Bitmap.new(width, single_height)
  85.     @bitmap_exit2.blt(0, 0, bitmap, rect_exit)
  86.    
  87.     # 清空已经用不到的临时bitmap
  88.    
  89.     bitmap.dispose
  90.    
  91.    
  92.     # 调用原来的开始处理定义
  93.    
  94.     start_original
  95.    
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 更新画面
  99.   #--------------------------------------------------------------------------
  100.   def update
  101.    
  102.     super # 父类定义

  103.     # 当按下↑方向键的时候
  104.     if Input.trigger?(Input::UP)
  105.       case @menu_index
  106.       when 0
  107.         @menu_index = 2 # 这样写是循环,如果不想循环注释掉这行就好
  108.       when 1
  109.         @menu_index = 0
  110.       when 2
  111.         @menu_index = 1
  112.       end
  113.       # 更新菜单(显示)
  114.       update_menu
  115.     # 当按下↓方向键的时候
  116.     elsif Input.trigger?(Input::DOWN)
  117.       case @menu_index
  118.       when 0
  119.         @menu_index = 1
  120.       when 1
  121.         @menu_index = 2
  122.       when 2
  123.         @menu_index = 0 # 这样写是循环,如果不想循环注释掉这行就好
  124.       end
  125.       # 更新菜单(显示)
  126.       update_menu
  127.     end  
  128.    
  129.     # 当按下C键(确定键)的时候
  130.     if Input.trigger?(Input::C)
  131.       # 根据 @menu_index 的值判断下一步行动
  132.       case @menu_index
  133.       when 0    # 新游戏
  134.         command_new_game
  135.       when 1    # 继续
  136.         command_continue
  137.       when 2    # 关闭
  138.         command_shutdown
  139.       end
  140.     end
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 更新菜单(显示)
  144.   #--------------------------------------------------------------------------
  145.   def update_menu
  146.     # 冻结画面,相当于RMXP的“准备渐变”
  147.     # 如果要兼容动态标题特效则不能使用这种方式
  148.     Graphics.freeze
  149.     # 根据 @menu_index 的值判断变化
  150.     case @menu_index
  151.     when 0    # 新游戏
  152.       @sprite_new_game.bitmap = @bitmap_new_game2
  153.       @sprite_continue.bitmap = @bitmap_continue
  154.       @sprite_exit.bitmap     = @bitmap_exit
  155.     when 1    # 继续
  156.       @sprite_new_game.bitmap = @bitmap_new_game
  157.       @sprite_continue.bitmap = @bitmap_continue2
  158.       @sprite_exit.bitmap     = @bitmap_exit
  159.     when 2    # 关闭
  160.       @sprite_new_game.bitmap = @bitmap_new_game
  161.       @sprite_continue.bitmap = @bitmap_continue
  162.       @sprite_exit.bitmap     = @bitmap_exit2
  163.     end
  164.     # 播放光标音效
  165.     Sound.play_cursor
  166.     # 执行渐变(10帧)形成菜单项淡入淡出的效果
  167.     # 如果要兼容动态标题特效则不能使用这种方式
  168.     Graphics.transition(10)
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 生成命令窗口
  172.   #--------------------------------------------------------------------------
  173.   def create_command_window

  174.     # 临时变量
  175.    
  176.     # x 坐标 = ( 游戏画面宽度 - 单个素材宽度 ) ÷ 2 ,这样计算结果是居中
  177.     x = (Graphics.width - @bitmap_new_game.width) / 2
  178.     # y 坐标(直接指定)
  179.     y = 300
  180.     # 选项间行距 = 单个素材高度
  181.     oy = @bitmap_new_game.height
  182.    
  183.     # 生成显示菜单命令的精灵(Sprite)并指定坐标
  184.    
  185.     # 新游戏
  186.     @sprite_new_game   = Sprite.new
  187.     @sprite_new_game.x = x
  188.     @sprite_new_game.y = y
  189.     # 继续游戏
  190.     @sprite_continue   = Sprite.new
  191.     @sprite_continue.x = x
  192.     @sprite_continue.y = y + oy
  193.     # 退出游戏
  194.     @sprite_exit       = Sprite.new
  195.     @sprite_exit.x     = x
  196.     @sprite_exit.y     = y + oy*2
  197.    
  198.     # 检测存档
  199.    
  200.     # 如果「继续」有效
  201.     if @continue_enabled
  202.       # 默认激活「继续游戏」
  203.       @menu_index = 1
  204.       # 将继续游戏位图指定为可用
  205.       @bitmap_continue  = @bitmap_continue_enabled
  206.       @bitmap_continue2 = @bitmap_continue_enabled2
  207.       # 并消除不可用位图
  208.       @bitmap_continue_disabled.dispose
  209.       @bitmap_continue_disabled2.dispose
  210.     else # 否则
  211.       # 默认激活「新游戏」
  212.       @menu_index = 0
  213.       # 将继续游戏位图指定为不可用
  214.       @bitmap_continue  = @bitmap_continue_disabled
  215.       @bitmap_continue2 = @bitmap_continue_disabled2
  216.       # 并消除可用位图
  217.       @bitmap_continue_enabled.dispose
  218.       @bitmap_continue_enabled2.dispose
  219.     end
  220.    
  221.     # 设定精灵的初始位图
  222.    
  223.     # 新游戏
  224.     if @menu_index == 0 # 若默认选中新游戏
  225.       @sprite_new_game.bitmap = @bitmap_new_game2 # 加载选中位图
  226.     else # 否则
  227.       @sprite_new_game.bitmap = @bitmap_new_game  # 加载未选中位图
  228.     end
  229.     # 继续游戏
  230.     if @menu_index == 1 # 若默认选中继续游戏
  231.       @sprite_continue.bitmap = @bitmap_continue2 # 加载选中位图
  232.     else # 否则
  233.       @sprite_continue.bitmap = @bitmap_continue  # 加载未选中位图
  234.     end
  235.     # 退出游戏
  236.     @sprite_exit.bitmap = @bitmap_exit # 加载未选中位图
  237.    
  238.   end
  239.   #--------------------------------------------------------------------------
  240.   # ● 释放命令窗口
  241.   #--------------------------------------------------------------------------
  242.   def dispose_command_window
  243.    
  244.     # 清除精灵
  245.    
  246.     @sprite_new_game.dispose
  247.     @sprite_continue.dispose
  248.     @sprite_exit.dispose
  249.    
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 开启命令窗口
  253.   #--------------------------------------------------------------------------
  254.   def open_command_window
  255.    
  256.     # 清空这个定义
  257.    
  258.   end
  259.   #--------------------------------------------------------------------------
  260.   # ● 关闭命令窗口
  261.   #--------------------------------------------------------------------------
  262.   def close_command_window
  263.    
  264.     # 清空这个定义
  265.    
  266.   end
  267. end
复制代码

范例: 图片标题菜单.zip (284.47 KB, 下载次数: 110)
作者: ykoben    时间: 2012-1-15 11:14
谢谢你^O^各大版主伟大!谢谢猫君,仲起秋明。打针在,回家尝试。





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1