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

Project1

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

添加slider控件的rm窗体

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2008-4-19 17:59:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-4-19 18:44:30 | 只看该作者
可以拿来当血条。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
3
发表于 2008-4-19 18:56:20 | 只看该作者
以下引用越前リョーマ于2008-4-19 10:44:30的发言:

可以拿来当血条。

对.......
我的战斗系统的赵云的血条有冲突.....
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2008-4-19 20:17:20 | 只看该作者
但是就一条可能不够。
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

5
发表于 2008-4-19 20:45:27 | 只看该作者
本来想写一个的,被LZ抢先了

发个范例吧,不然有些人不会调用吧?
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-6
帖子
58
6
发表于 2008-4-20 05:50:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

7
发表于 2008-4-20 12:46:27 | 只看该作者
提两个建议
把slider的窗口直接设为
XY座标(0,0)宽高(544,416)透明度0  
在initialize里面取得参数直接并调用setup
还有Window_Slider直接命名为Slider

这样生成slider时只要一句
@slider = Slider.new(各项参数)

再来就是可以在多加两个颜色的参数
这样就可以一个style多个用处了

这是我改过的,LZ看看吧
  1. #==============================================================================
  2. # 添加slider控件的rm窗体 by 沉影不器
  3. #------------------------------------------------------------------------------
  4. # 功能描述:   ① 一个可使用类似C++的slider控件的窗体
  5. #             ② 通过slider控件的value输出与指定变量绑定
  6. #             ③ 方便脚本用户自定义样式,可在[● 样式1]之后随意添加新样式
  7. #
  8. # 输入与输出: ① 允许自定义的项目包括:
  9. #                 名称、坐标、宽高、数据最大值、每次改变量、
  10. #                 初始化时显示的值(value)、样式
  11. #             ② 控件输出包括:
  12. #                 数据最大值、每次改变量、当前变量值(value)
  13. #------------------------------------------------------------------------------
  14. class Slider < Window_Base
  15.   #--------------------------------------------------------------------------
  16.   # ● 定义实例变量
  17.   #--------------------------------------------------------------------------
  18.   attr_reader   :name                     # 名称
  19.   attr_reader   :max                      # 最大值
  20.   attr_reader   :change                   # 改变量
  21.   attr_reader   :value                    # 当前值
  22.   
  23.   def initialize(name, x, y, w, h = 10, max = 100, change = 1, value = 0, style = 0)
  24.     super(0, 0, 544, 416)
  25.     self.opacity = 0
  26.     setup(name, x, y, w, h, max, change, value, style)
  27.   end
  28.   
  29.   #--------------------------------------------------------------------------
  30.   # ● 设置 保存参数
  31.   #     name   : 名称
  32.   #     x      : X 坐标
  33.   #     y      : Y 坐标
  34.   #     w      : 宽
  35.   #     h      : 高
  36.   #     max    : 最大值
  37.   #     change : 改变量
  38.   #     value  : 当前值
  39.   #     style  : 样式
  40.   #--------------------------------------------------------------------------
  41.   def setup(name, x, y, w, h, max, change, value, style)
  42.     @name   = name
  43.     @x      = x
  44.     @y      = y
  45.     @w      = w
  46.     @h      = h
  47.     @max    = max
  48.     @value  = value
  49.     @style  = style
  50.     @change = change > 0 ? change : 1
  51.     @color1 = Color.new(255, 255, 255, 255)
  52.     @color2 = Color.new(64, 128, 64, 255)
  53.     draw_slider(value)
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 描绘 slider
  57.   #     value  : 当前值
  58.   #--------------------------------------------------------------------------
  59.   def draw_slider(value)
  60.     case @style
  61.     when 0
  62.       style_0(value)
  63.     when 1
  64.       style_1(value)
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● slider颜色
  69.   #     color  : 颜色
  70.   #--------------------------------------------------------------------------
  71.   def color1=(color)
  72.     @color1 =  color
  73.     draw_slider(@value)
  74.   end
  75.   def color2=(color)
  76.     @color2 = color
  77.     draw_slider(@value)
  78.   end  
  79.   #--------------------------------------------------------------------------
  80.   # ● 样式0
  81.   #     value  : 当前值
  82.   #--------------------------------------------------------------------------
  83.   def style_0(value)
  84.     slide_x = (@w - @h/2) * value / @max
  85.     # 清理
  86.     self.contents.clear
  87.     # 描绘名称
  88.     self.contents.draw_text(@x, @y, @w, 24, @name)
  89.     # 描绘当前值
  90.     self.contents.draw_text(@x+@w-64, @y, 64, 24, value.to_s, 2)
  91.     # 填充
  92.     self.contents.fill_rect(@x, @y+23+@h/2, @w, 2, @color1)
  93.     self.contents.fill_rect(@x+slide_x, @y+24, @h/2, @h, @color2)
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 样式1
  97.   #     value  : 当前值
  98.   #--------------------------------------------------------------------------
  99.   def style_1(value)
  100.     width   = @w * value / @max
  101.     # 清理
  102.     self.contents.clear
  103.     # 描绘名称
  104.     self.contents.draw_text(@x, @y, @w, 24, @name)
  105.     # 描绘当前值
  106.     self.contents.draw_text(@x+@w-64, @y, 64, 24, value.to_s, 2)
  107.     # 填充
  108.     self.contents.fill_rect(@x-1, @y+23, @w+2, @h+2, @color1)
  109.     self.contents.fill_rect(@x, @y+24, width, @h, @color2)
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 更改当前值
  113.   #     value  : 当前值
  114.   #--------------------------------------------------------------------------
  115.   def value=(value)
  116.     @value = value
  117.     draw_slider(value)
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 输入刷新
  121.   #--------------------------------------------------------------------------
  122.   def update
  123.     if Input.repeat?(Input::RIGHT)
  124.       if @value < @max - @change
  125.         @value += @change
  126.       else
  127.         @value = @max
  128.       end
  129.       draw_slider(@value)
  130.     end
  131.     if Input.repeat?(Input::LEFT)
  132.       if @value > @change
  133.         @value -= @change
  134.       else
  135.         @value = 0
  136.       end
  137.       draw_slider(@value)
  138.     end
  139.   end
  140. end
复制代码

VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

8
发表于 2008-4-20 16:35:45 | 只看该作者
以下引用鸿剑于2008-4-20 8:10:48的发言:
雪流星你用的是標楷體??


你又不是不知道我的是繁体机子
当然用标楷体
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

9
 楼主| 发表于 2008-4-20 19:37:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

10
发表于 2008-4-22 15:54:57 | 只看该作者
又改了一下,改成横竖皆可,
再加上刻度
效果图:

VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 14:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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