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) && !@picture.name.split(/_/)[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
一张图片同时作为响应和未响应的

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





[pre lang="ruby"]
class Game_Picture
def name=(str)
   @name = str
end
end
class Sprite_Picture
alias update_old update
def update
   update_old
   return if @picture.name == "" or @picture.name[/cmd/].nil?
   mx,my = Mouse.get_mouse_pos
   lx = self.x - self.ox
   rx = lx + self.bitmap.width
   ty = self.y - self.oy
   by = ty + self.bitmap.height
   if mx < lx or mx > rx or my < ty or my > by or
     self.bitmap.get_pixel(mx-lx,my-ty).alpha == 0
    @picture.name = @picture.name.split(/_/)[0]
    return
   end
      if Mouse.trigger?(Mouse::LEFT) && @picture.name.split(/_/)[0] != nil
       @picture.name.split(/_/)[0].sub(/cmd([0-9]+)/,"")
       $game_temp.reserve_common_event($1.to_i)
     end
    end
  end[/pre]可以了
附上两种例子。不行下载例子看就懂了
(, 下载次数: 32)
(, 下载次数: 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! X5.0