赞 | 0 |
VIP | 5 |
好人卡 | 14 |
积分 | 15 |
经验 | 110639 |
最后登录 | 2015-10-15 |
在线时间 | 1157 小时 |
Lv3.寻梦者 小柯的徒弟
- 梦石
- 0
- 星屑
- 1515
- 在线时间
- 1157 小时
- 注册时间
- 2008-5-24
- 帖子
- 3085
|
本帖最后由 「旅」 于 2011-2-8 00:25 编辑
- class Window_Command2
- def initialize(x,y,pictures,plus_x,plus_y)
- @sprite = []
- for i in 0...pictures.size
- @sprite[i] = Sprite.new
- @sprite[i].bitmap = RPG::Cache.picture(pictures[i])
- @sprite[i].x = x + plus_x * i
- @sprite[i].y = y + plus_y * i
- end
- @x = x
- @y = y
- @plus_x = plus_x
- @plus_y = plus_y
- @pictures = pictures
-
- # @2:这里可以设置初始化图标,把nil改为0~n试试吧。p.s后面有一个设置,如果
- # 你选择点击左键才更新的话,这里建议不要用nil,nil的话一开始是没有选中项目的。
- @index = nil
-
- if @index != nil
- name = @pictures[@index] + "_Command"
- x,y = @sprite[@index].x,@sprite[i].y
- @sprite[@index].dispose
- @sprite[@index] = Sprite.new
- @sprite[@index].bitmap = RPG::Cache.picture(name)
- @sprite[@index].x = x
- @sprite[@index].y = y
- end
- end
- def update
-
- for i in [email protected]
- @sprite[i].update
- end
-
- # @2:下面可以修改c的数值,1为需要点击左键才可以更新,2是随时更新
- c = 2
-
- case c
- when 1
- bool = Mouse.trigger?(Mouse::LEFT)
- when 2
- bool = true
- end
-
- if bool
-
- if true # 如果这里出现错误,把true改为false试试。(兼容多款鼠标脚本)
- x,y = Mouse.get_mouse_pos
- else
- x,y = Mouse.pos
- end
-
-
- #——这下面都是选中的效果
- #——这里可以调整点击后的坐标
- x2 = 30
- y2 = 30
- #——调整点击后的放大倍数,1.0为原本大小
- zoom_x = 1.0
- zoom_y = 1.0
-
- b = false
- for i in [email protected]
- if x > @sprite[i].x and y > @sprite[i].y and x <= (@sprite[i].x + @sprite[i].bitmap.width) and y <= (@sprite[i].y + @sprite[i].bitmap.height) or
- (@index == i and x > @sprite[i].x - x2 and y > @sprite[i].y - y2 and x <= (@sprite[i].x + @sprite[i].bitmap.width - x2) and y <= (@sprite[i].y + @sprite[i].bitmap.height - y2))
- b = true
- return if @index == i
- name = @pictures[i] + "_Command"
- @sprite[i].dispose
- @sprite[i] = Sprite.new
- @sprite[i].bitmap = RPG::Cache.picture(name)
-
- @sprite[i].x = @x + @plus_x * i + x2
- @sprite[i].y = @y + @plus_y * i + y2
- @sprite[i].zoom_x = zoom_x
- @sprite[i].zoom_y = zoom_y
- #——选中瞬间的效果:下面两个参数分别是颜色和时长
- #——颜色的四个参数分别为红色值、绿色值、绿色值、透明度
- @sprite[i].flash(Color.new(255,0,0,100), 5)
-
- if @index != nil
- @sprite[@index].dispose
- @sprite[@index] = Sprite.new
- @sprite[@index].bitmap = RPG::Cache.picture(@pictures[@index])
- @sprite[@index].x = @x + @plus_x * @index
- @sprite[@index].y = @y + @plus_y * @index
- end
- @index = i
- end
- end
- if b == false and c == 2
- if @index != nil
- @sprite[@index].dispose
- @sprite[@index] = Sprite.new
- @sprite[@index].bitmap = RPG::Cache.picture(@pictures[@index])
- @sprite[@index].x = @x + @plus_x * @index
- @sprite[@index].y = @y + @plus_y * @index
- end
- @index = nil
- end
- end
- end
- def index
- return @index
- end
- def dispose
- for s in @sprite
- s.dispose
- end
- end
- end
复制代码 呵呵以前做某个电子书的时候写过类似的东西~~~现在重新拿出来修改了下,另外添加了许多的功能~~~
生成方式如下~前两个是x和y坐标,第三数组是图片名的集合~~最后两个是图片之间的间隙,width宽度和height高度~~
window = Window_Command2.new(100,80,["新手入门","常见问题","疑点难点","其他内容"],180,0)
p.s这里另外添加了两种选择方式~~~里面可以设置~~~
p.s.2里面有一个"_Command"的字符串,这个是生成选中图片的附加后缀名~~~你可以把它改为空字符"",那样的话就是保留为原本的图片~~~
以上是华丽的测试图~~各位有兴趣的同学可以拿去用哟~~~
p.s.3这个脚本使用起来特别简单的哦~~~
「旅」于2011-2-8 11:52补充以下内容:
菜单里不是有一个:
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
把这一句改掉~~
@command_window = Window_Command2.new(100,80,[s1, s2, s3, s4, s5, s6],180,0)
这样就可以了~~~ |
|