Project1

标题: 想改良一下这个“鼠标响应图片”的脚本…… [打印本页]

作者: 眼中目之瞳    时间: 2016-2-15 20:36
标题: 想改良一下这个“鼠标响应图片”的脚本……
本帖最后由 眼中目之瞳 于 2016-2-17 18:23 编辑

http://rpg.blue/thread-306819-1-1.html,我想再额外设置一种图片,这种图片在响应时不需要第二张图片作为“响应图片”(也就是一张图片同时作为响应和未响应的),新加入的相应图片和原帖子里的相应图片可以并存……怎么做?


PS:容错脚本可以用,但如果删掉响应后的图片,第一张图会不停闪烁。
作者: 眼中目之瞳    时间: 2016-2-17 15:35
有人忙一下嘛?
作者: 眼中目之瞳    时间: 2016-2-17 18:16
改了一下问题,希望有人帮忙……
作者: 眼中目之瞳    时间: 2016-2-18 09:41
求助{:2_253:}
作者: shencao    时间: 2016-2-18 13:31
没用过顶楼脚本,只看描述,就不能把响应前的图片复制一下作为响应后的吗?肯定兼容原模式还简单⋯⋯
作者: 眼中目之瞳    时间: 2016-2-18 20:41
shencao 发表于 2016-2-18 13:31
没用过顶楼脚本,只看描述,就不能把响应前的图片复制一下作为响应后的吗?肯定兼容原模式还简单⋯⋯ ...

可以是可以啊,但要作为按钮响应的图片有很多,能尽可能的减小文件的大小就尽可能的减小
作者: Vortur    时间: 2016-2-18 22:43
在下没什么想说的,但是还要水经验,怎么办?!
那就告诉楼主一个天大的秘密!表3连哟!

使用事件“显示图片”怎么样?
作者: 眼中目之瞳    时间: 2016-2-19 16:34
Vortur 发表于 2016-2-18 22:43
在下没什么想说的,但是还要水经验,怎么办?!
那就告诉楼主一个天大的秘密!表3连哟!

我是因为需要“图片响应”的脚本才来求助的啊,以前用的是你说的办法,后来想让鼠标移动到图片(按钮)上时让图片产生变化才换了这个的脚本
作者: 传说中di    时间: 2016-2-20 17:16
  1. class Game_Picture
  2.   
  3. def name=(str)
  4.    @name = str
  5.    
  6. end

  7. end

  8. class Sprite_Picture
  9.   
  10. alias update_old update
  11. def update
  12.    update_old
  13.    return if @picture.name == "" or @picture.name[/cmd/].nil?
  14.    mx,my = Mouse.x, Mouse.y
  15.    lx = self.x - self.ox
  16.    rx = lx + self.bitmap.width
  17.    ty = self.y - self.oy
  18.    by = ty + self.bitmap.height
  19.   if Mouse.trigger?(:L) && [email protected](/_/)[0].nil?
  20.     @picture.name.split(/_/)[0].sub(/cmd([0-9]+)/,"")
  21.     $game_temp.reserve_common_event($1.to_i)
  22.     end
  23. end
  24.    end
复制代码
一张图片同时作为响应和未响应的
作者: 眼中目之瞳    时间: 2016-2-20 21:46
传说中di 发表于 2016-2-20 17:16
一张图片同时作为响应和未响应的

两个脚本不能同时响应,而且即使单用这一个脚本(“鼠标本体”的脚本不动),会报错。

作者: 传说中di    时间: 2016-2-20 21:57
本帖最后由 传说中di 于 2016-2-20 23:07 编辑
眼中目之瞳 发表于 2016-2-20 21:46
两个脚本不能同时响应,而且即使单用这一个脚本(“鼠标本体”的脚本不动),会报错。
...





RUBY 代码复制
  1. class Game_Picture
  2. def name=(str)
  3.    @name = str
  4. end
  5. end
  6. class Sprite_Picture
  7. alias update_old update
  8. def update
  9.    update_old
  10.    return if @picture.name == "" or @picture.name[/cmd/].nil?
  11.    mx,my = Mouse.get_mouse_pos
  12.    lx = self.x - self.ox
  13.    rx = lx + self.bitmap.width
  14.    ty = self.y - self.oy
  15.    by = ty + self.bitmap.height
  16.    if mx < lx or mx > rx or my < ty or my > by or
  17.      self.bitmap.get_pixel(mx-lx,my-ty).alpha == 0
  18.     @picture.name = @picture.name.split(/_/)[0]
  19.     return
  20.    end
  21.       if Mouse.trigger?(Mouse::LEFT) && @picture.name.split(/_/)[0] != nil
  22.        @picture.name.split(/_/)[0].sub(/cmd([0-9]+)/,"")
  23.        $game_temp.reserve_common_event($1.to_i)
  24.      end
  25.     end
  26.   end
可以了
附上两种例子。不行下载例子看就懂了
原版.rar (1.44 MB, 下载次数: 32)
版本2.rar (1.45 MB, 下载次数: 51)

作者: 眼中目之瞳    时间: 2016-2-21 13:41
传说中di 发表于 2016-2-20 21:57
class Game_Picture
def name=(str)
   @name = str

那有办法让两种响应方式并存吗?
作者: 传说中di    时间: 2016-2-21 19:08
眼中目之瞳 发表于 2016-2-21 13:41
那有办法让两种响应方式并存吗?

这两个响应效果本来就一样,共存有什么意思吗。
作者: 眼中目之瞳    时间: 2016-2-22 21:43
传说中di 发表于 2016-2-21 19:08
这两个响应效果本来就一样,共存有什么意思吗。

效果上还是有些差别的,如果有100个按钮,前者我需要准备200张图片,修改后就只需要100张了——不过部分场景的按钮还是想要突出显示效果的,所以才希望能共存
作者: 传说中di    时间: 2016-2-23 00:11
眼中目之瞳 发表于 2016-2-22 21:43
效果上还是有些差别的,如果有100个按钮,前者我需要准备200张图片,修改后就只需要100张了——不过部分 ...

那你用版本2的就可以了,把响应换回没改过的。要显示突出效果就用响应,不用显示突出的用鼠标响应,使用方法看脚本来。




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