设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4732|回复: 3
打印 上一主题 下一主题

[已发主站] 【VA】一个菜单滑动的美化类脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3954
在线时间
132 小时
注册时间
2012-1-7
帖子
208
跳转到指定楼层
1
发表于 2012-6-15 20:51:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 Sion 于 2013-12-17 15:50 编辑

我是新手刚写的脚本求指点
*注意注释*
  1. #---------------------------------------------------------------------------
  2. #
  3. #     VA菜单滑动
  4. #
  5. #   制作:百页书香
  6. #   注意:本脚本和其他对菜单有修改脚本有一点点冲突。
  7. #         如:VA图书馆的“任务”和“称号”脚本,会发生无法点选的问题。
  8. #         但只要把此脚本放在他们的前面就没事了。
  9. #   
  10. #特别感谢 6R论坛 铅笔描绘的思念 的指点
  11. #---------------------------------------------------------------------------
  12. class Scene_Menu < Scene_MenuBase    #主菜单的移动
  13.   #--------------------------------------------------------------------------
  14.   # ● 生成指令窗口
  15.   #--------------------------------------------------------------------------
  16.   def create_command_window
  17.     @command_window = Window_MenuCommand.new
  18.     @command_window.set_handler(:item,      method(:command_item))
  19.     @command_window.set_handler(:skill,     method(:command_personal))
  20.     @command_window.set_handler(:equip,     method(:command_personal))
  21.     @command_window.set_handler(:status,    method(:command_personal))
  22.     @command_window.set_handler(:formation, method(:command_formation))
  23.     @command_window.set_handler(:save,      method(:command_save))
  24.     @command_window.set_handler(:game_end,  method(:command_game_end))
  25.     @command_window.set_handler(:cancel,    method(:return_scene))
  26.    
  27.     @command_window.x = -100
  28.    
  29.   end
  30.   
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成金钱窗口
  33.   #--------------------------------------------------------------------------
  34.   def create_gold_window
  35.     @gold_window = Window_Gold.new
  36.     @gold_window.x = 0
  37.     @gold_window.y = Graphics.height - @gold_window.height
  38.    
  39.     @gold_window.x = -100
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 生成状态窗口
  43.   #--------------------------------------------------------------------------
  44.   def create_status_window
  45.     @status_window = Window_MenuStatus.new(@command_window.width, 0)
  46.     @status_window.y = -200
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   #   窗口移动
  50.   #--------------------------------------------------------------------------
  51.   def update
  52.     super
  53.     @command_window.x += 5 if @command_window.x < 0
  54.     @gold_window.x += 5 if @gold_window.x < 0
  55.     @status_window.y += 10 if @status_window.y < 0
  56.   end
  57. end

  58. class Scene_Item < Scene_ItemBase    #物品栏的移动
  59.   #--------------------------------------------------------------------------
  60.   # ● 生成分类窗口
  61.   #--------------------------------------------------------------------------
  62.   def create_category_window
  63.     @category_window = Window_ItemCategory.new
  64.     @category_window.viewport = @viewport
  65.     @category_window.help_window = @help_window
  66.     @category_window.y = @help_window.height
  67.     @category_window.set_handler(:ok,     method(:on_category_ok))
  68.     @category_window.set_handler(:cancel, method(:return_scene))
  69.     @category_window.x = -200 #初始位置
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 生成物品窗口
  73.   #--------------------------------------------------------------------------
  74.   def create_item_window
  75.     wy = @category_window.y + @category_window.height
  76.     wh = Graphics.height - wy
  77.     @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
  78.     @item_window.viewport = @viewport
  79.     @item_window.help_window = @help_window
  80.     @item_window.set_handler(:ok,     method(:on_item_ok))
  81.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  82.     @category_window.item_window = @item_window
  83.     @item_window.y += 100
  84.     @help_window.x += 100
  85.     @help_window.y -= 60
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 窗口移动
  89.   #--------------------------------------------------------------------------
  90.   def update
  91.     super
  92.     if @category_window.x >= 0
  93.     else
  94.       @category_window.x += 10
  95.       @item_window.y -= 5
  96.       @help_window.x -= 5
  97.       @help_window.y += 3
  98.     end
  99.   end
  100. end
  101. class Scene_Skill < Scene_ItemBase  #技能窗口
  102.   #--------------------------------------------------------------------------
  103.   # ● 生成指令窗口
  104.   #--------------------------------------------------------------------------
  105.   def create_command_window
  106.     wy = @help_window.height
  107.     @command_window = Window_SkillCommand.new(0, wy)
  108.     @command_window.viewport = @viewport
  109.     @command_window.help_window = @help_window
  110.     @command_window.actor = @actor
  111.     @command_window.set_handler(:skill,    method(:command_skill))
  112.     @command_window.set_handler(:cancel,   method(:return_scene))
  113.     @command_window.set_handler(:pagedown, method(:next_actor))
  114.     @command_window.set_handler(:pageup,   method(:prev_actor))
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 生成状态窗口
  118.   #--------------------------------------------------------------------------
  119.   def create_status_window
  120.     y = @help_window.height
  121.     @status_window = Window_SkillStatus.new(@command_window.width, y)
  122.     @status_window.viewport = @viewport
  123.     @status_window.actor = @actor
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 生成物品窗口
  127.   #--------------------------------------------------------------------------
  128.   def create_item_window
  129.     wx = 0
  130.     wy = @status_window.y + @status_window.height
  131.     ww = Graphics.width
  132.     wh = Graphics.height - wy
  133.     @item_window = Window_SkillList.new(wx, wy, ww, wh)
  134.     @item_window.actor = @actor
  135.     @item_window.viewport = @viewport
  136.     @item_window.help_window = @help_window
  137.     @item_window.set_handler(:ok,     method(:on_item_ok))
  138.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  139.     @command_window.skill_window = @item_window
  140.     @item_window.y += 100 #初始位置
  141.     @help_window.y -= 60 #初始位置
  142.     @status_window.y -= 60 #初始位置
  143.     @command_window.x = -100 #初始位置
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 窗口移动
  147.   #--------------------------------------------------------------------------
  148.   def update
  149.     super
  150.     if @command_window.x >=0
  151.     else
  152.       @command_window.x += 5
  153.       @status_window.y += 3
  154.       @item_window.y -= 5
  155.       @help_window.y += 3
  156.     end
  157.   end
  158. end
  159. class Scene_Equip < Scene_MenuBase    #装备窗口
  160.   #--------------------------------------------------------------------------
  161.   # ● 生成状态窗口
  162.   #--------------------------------------------------------------------------
  163.   def create_status_window
  164.     @status_window = Window_EquipStatus.new(0, @help_window.height)
  165.     @status_window.viewport = @viewport
  166.     @status_window.actor = @actor
  167.     @status_window.x -= 100
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 生成指令窗口
  171.   #--------------------------------------------------------------------------
  172.   def create_command_window
  173.     wx = @status_window.width
  174.     wy = @help_window.height
  175.     ww = Graphics.width - @status_window.width
  176.     @command_window = Window_EquipCommand.new(wx, wy, ww)
  177.     @command_window.viewport = @viewport
  178.     @command_window.help_window = @help_window
  179.     @command_window.set_handler(:equip,    method(:command_equip))
  180.     @command_window.set_handler(:optimize, method(:command_optimize))
  181.     @command_window.set_handler(:clear,    method(:command_clear))
  182.     @command_window.set_handler(:cancel,   method(:return_scene))
  183.     @command_window.set_handler(:pagedown, method(:next_actor))
  184.     @command_window.set_handler(:pageup,   method(:prev_actor))
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 生成装备栏窗口
  188.   #--------------------------------------------------------------------------
  189.   def create_slot_window
  190.     wx = @status_window.width
  191.     wy = @command_window.y + @command_window.height
  192.     ww = Graphics.width - @status_window.width
  193.     @slot_window = Window_EquipSlot.new(wx, wy, ww)
  194.     @slot_window.viewport = @viewport
  195.     @slot_window.help_window = @help_window
  196.     @slot_window.status_window = @status_window
  197.     @slot_window.actor = @actor
  198.     @slot_window.set_handler(:ok,       method(:on_slot_ok))
  199.     @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● 生成物品窗口
  203.   #--------------------------------------------------------------------------
  204.   def create_item_window
  205.     wx = 0
  206.     wy = @slot_window.y + @slot_window.height
  207.     ww = Graphics.width
  208.     wh = Graphics.height - wy
  209.     @item_window = Window_EquipItem.new(wx, wy, ww, wh)
  210.     @item_window.viewport = @viewport
  211.     @item_window.help_window = @help_window
  212.     @item_window.status_window = @status_window
  213.     @item_window.actor = @actor
  214.     @item_window.set_handler(:ok,     method(:on_item_ok))
  215.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  216.     @slot_window.item_window = @item_window
  217.     @command_window.y -= 100
  218.     @help_window.y -= 100
  219.     @slot_window.x += 100
  220.     @item_window.y += 100
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ● 窗口移动
  224.   #--------------------------------------------------------------------------
  225.   def update
  226.     super
  227.     if @status_window.x >= 0
  228.     else
  229.       @status_window.x += 5
  230.       @command_window.y += 5
  231.       @help_window.y += 5
  232.       @slot_window.x -= 5
  233.       @item_window.y -= 5
  234.     end
  235.   end
  236. end
复制代码

点评

窗口滑动这类效果最好通过Viewport来实现  发表于 2012-8-2 13:58

评分

参与人数 4星屑 +290 +6 收起 理由
Shy07 + 6 主站收录
acn00269 + 80 果断塞糖~
lsu666666 + 200 我很赞同
黑化の包子 + 10 塞糖

查看全部评分

Lv1.梦旅人

梦石
0
星屑
49
在线时间
342 小时
注册时间
2012-3-18
帖子
114
2
发表于 2012-6-16 15:30:42 | 只看该作者
好脚本无误...就是我蛋疼的脚本有的太多,没办法、另开工程试过、效果很不错...
南村群童欺我老无力、啪啪啪啪啪啪啪...
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33407
在线时间
6552 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2012-6-21 20:06:45 | 只看该作者
效果不赖!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
201 小时
注册时间
2012-4-8
帖子
466
4
发表于 2012-7-2 21:22:33 | 只看该作者
可以直接使用,而且也很方便修改,新手福利
义三国系统更改中,预计长期坑化
好游戏的标准:
创意,完整度,人性化,独立性
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 08:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表