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

Project1

 找回密码
 注册会员
搜索
123
返回列表 发新帖
楼主: zxc3824
打印 上一主题 下一主题

[已经解决] 请问如何制作图标选项菜单

 关闭 [复制链接]

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

21
发表于 2011-2-7 23:30:25 | 只看该作者
参考明尼以前发的范例:
http://www.diyrpg.net/bbs/viewthread.php?tid=4655
文件应该还能下载的说.

点评

需要加入鼠标脚本,嗯.  发表于 2011-2-7 23:30
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1530
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

22
发表于 2011-2-7 23:41:20 | 只看该作者
本帖最后由 「旅」 于 2011-2-8 00:25 编辑
  1. class Window_Command2
  2.   def initialize(x,y,pictures,plus_x,plus_y)
  3.     @sprite = []
  4.     for i in 0...pictures.size
  5.       @sprite[i] = Sprite.new
  6.       @sprite[i].bitmap = RPG::Cache.picture(pictures[i])
  7.       @sprite[i].x = x + plus_x * i
  8.       @sprite[i].y = y + plus_y * i
  9.     end
  10.     @x = x
  11.     @y = y
  12.     @plus_x = plus_x
  13.     @plus_y = plus_y
  14.     @pictures = pictures
  15.    
  16.     # @2:这里可以设置初始化图标,把nil改为0~n试试吧。p.s后面有一个设置,如果
  17.     # 你选择点击左键才更新的话,这里建议不要用nil,nil的话一开始是没有选中项目的。
  18.     @index = nil
  19.    
  20.     if @index != nil
  21.       name = @pictures[@index] + "_Command"
  22.       x,y = @sprite[@index].x,@sprite[i].y
  23.       @sprite[@index].dispose
  24.       @sprite[@index] = Sprite.new
  25.       @sprite[@index].bitmap = RPG::Cache.picture(name)
  26.       @sprite[@index].x = x
  27.       @sprite[@index].y = y
  28.     end
  29.   end
  30.   def update
  31.    
  32.     for i in [email protected]
  33.       @sprite[i].update
  34.     end
  35.    
  36.     # @2:下面可以修改c的数值,1为需要点击左键才可以更新,2是随时更新
  37.     c = 2
  38.    
  39.     case c
  40.     when 1
  41.       bool = Mouse.trigger?(Mouse::LEFT)
  42.     when 2
  43.       bool = true
  44.     end
  45.    
  46.     if bool
  47.       
  48.       if true # 如果这里出现错误,把true改为false试试。(兼容多款鼠标脚本)
  49.         x,y = Mouse.get_mouse_pos
  50.       else
  51.         x,y = Mouse.pos
  52.       end
  53.       
  54.       
  55.           #——这下面都是选中的效果
  56.           #——这里可以调整点击后的坐标
  57.           x2 = 30
  58.           y2 = 30
  59.           #——调整点击后的放大倍数,1.0为原本大小
  60.           zoom_x = 1.0
  61.           zoom_y = 1.0
  62.          
  63.       b = false
  64.       for i in [email protected]
  65.         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
  66.           (@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))
  67.           b = true
  68.           return if @index == i
  69.           name = @pictures[i] + "_Command"
  70.           @sprite[i].dispose
  71.           @sprite[i] = Sprite.new
  72.           @sprite[i].bitmap = RPG::Cache.picture(name)
  73.          
  74.           @sprite[i].x = @x + @plus_x * i + x2
  75.           @sprite[i].y = @y + @plus_y * i + y2
  76.           @sprite[i].zoom_x = zoom_x
  77.           @sprite[i].zoom_y = zoom_y
  78.           #——选中瞬间的效果:下面两个参数分别是颜色和时长
  79.           #——颜色的四个参数分别为红色值、绿色值、绿色值、透明度
  80.           @sprite[i].flash(Color.new(255,0,0,100), 5)
  81.          
  82.           if @index != nil
  83.             @sprite[@index].dispose
  84.             @sprite[@index] = Sprite.new
  85.             @sprite[@index].bitmap = RPG::Cache.picture(@pictures[@index])
  86.             @sprite[@index].x = @x + @plus_x * @index
  87.             @sprite[@index].y = @y + @plus_y * @index
  88.           end
  89.           @index = i
  90.         end
  91.       end
  92.       if b == false and c == 2
  93.         if @index != nil
  94.           @sprite[@index].dispose
  95.           @sprite[@index] = Sprite.new
  96.           @sprite[@index].bitmap = RPG::Cache.picture(@pictures[@index])
  97.           @sprite[@index].x = @x + @plus_x * @index
  98.           @sprite[@index].y = @y + @plus_y * @index
  99.         end
  100.         @index = nil
  101.       end
  102.     end
  103.   end
  104.   def index
  105.     return @index
  106.   end
  107.   def dispose
  108.     for s in @sprite
  109.       s.dispose
  110.     end
  111.   end
  112. 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)
这样就可以了~~~

点评

0.0啊列我有空发布一个不需要鼠标的好了喵~~~  发表于 2011-2-10 18:06
竟然是个必须用鼠标的脚本真是无语  发表于 2011-2-10 18:01
这个有点像图片标题的脚本,但我还是看不明白,给个范例我,可能我才明白  发表于 2011-2-8 11:40
啊,好东西,早发布就好了。  发表于 2011-2-8 11:26
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
23
 楼主| 发表于 2011-2-10 17:54:05 | 只看该作者
回复 「旅」 的帖子

晕啊,发布脚本也不告诉我哪里是插入图片选项的。

点评

啊列上楼最下面有补充~~~  发表于 2011-2-10 17:58
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 01:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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