liqunsz 发表于 2010-6-13 09:26:56

引用第7楼secondsen于2010-06-13 08:58发表的:
$ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
$GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
$ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
$GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
$Window_HWND = $GetActiveWindow.call
....... images/back.gif


那如果改换成使用DLL的版本会有什么改善吗??

secondsen 发表于 2010-6-13 14:02:32

DLL也就调用这些API能有什么不同。。。

liqunsz 发表于 2010-6-13 14:34:58

啊呀呀,偏离主题了…………
版大没有办法解决么??
我不想做一个使用鼠标的游戏但是开始界面又要用键盘额

secondsen 发表于 2010-6-13 14:40:28

需要做测试啊。。。我晚上给你试验试验,先自己忙去吧,我午睡的时间到了啊陪GF真是累人的活。。。偏偏每次我都屁颠屁颠的跟过去

secondsen 发表于 2010-6-13 16:28:29

$mapname你有没有注意到这个变量。。。实干什么的?这个是自己定义的的变量,非默认脚本的。

secondsen 发表于 2010-6-13 16:37:28

我似乎有点明白了。。。你这个是直接复制的别人的工程中的脚本。。。所以出了问题是吧?

secondsen 发表于 2010-6-13 16:41:30

下次不要再无脑复制了。。OTZ。。。我给你去掉了一些没用的东西,另外把脚本格式改得好看一点。。你用这个吧

另外:我激情测试。。这个脚本我没改之前就是好用的。。。。

这是注释   # cmd调用公共事件编号_名字_02 # 此为鼠标经过的图片

注意上面写的是 02你是不是写成了 2 了?我测试这个脚本没有问题的。。。。可能就是你文件名少了一个0。。我第一次测试就出现了这个问题才没有转变的。。。
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#格式:显示的cmd图片的命名格式为:
#    cmd调用公共事件编号_名字
#    cmd调用公共事件编号_名字_02 # 此为鼠标经过的图片
#
#即,带有cmd的为可以点击的图片,点击后执行相应的公共事件.....
#不带cmd的图片没任何影响。。。
#==============================================================================
class Game_Picture
def name=(str)
    @name = str
end
end

class Sprite_Picture
alias update_old update
def update
    update_old
    begin
      return if@picture_name.nil? or @picture_name == ""
    rescue
      return
    end
    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(/_/)+"_"+@picture.name.split(/_/)
      return
    end
    if @picture.name.split(/_/).nil?
      picname = @picture.name + "_02"
      #第2张图片不存在的时候不显示
      if FileTest.exist?("Graphics/Pictures/#{picname}.png")
      @picture.name = picname
      end
    end
    #对话框存在的时候不启动事件
    if Mouse.trigger?(Mouse::LEFT) and !$game_system.map_interpreter.running?
      @picture.name.split(/_/).sub(/cmd(+)/,"")
      $game_temp.common_event_id = $1.to_i
    end
end
end

liqunsz 发表于 2010-6-13 16:49:37

很感谢版大的帮助
但是【这才是主要部分】
还是没有效果啊啊啊啊!!麻烦版大这么久但……
实在是不知道为什么……
确实是从别的工程里面复制的,但是那个工程好好地,为什么我的就不行捏

画外音:刚才打不开幻森额……咋了捏



这是我的工程,鼠标运作还是正确的,但是那几个按钮都点不下去……
至于图片质量啥的就不要说啦~羞射~

secondsen 发表于 2010-6-13 16:58:10

另外:我激情测试。。这个脚本我没改之前就是好用的。。。。

这是注释   # cmd调用公共事件编号_名字_02 # 此为鼠标经过的图片

注意上面写的是 02你是不是写成了 2 了?我测试这个脚本没有问题的

你确定你的文件名没有错。。。而且点在了有颜色的地方么??

这样。。我把工程传上来你看看吧。。我测试真的没问题

里面有一个 name.png的图片。。。这个图片一点用都没有。。我只是做个试验而已

先跟 地图上的NPC说话。。图片就显示出来了

liqunsz 发表于 2010-6-13 17:05:04

引用第18楼secondsen于2010-06-13 16:58发表的:
另外:我激情测试。。这个脚本我没改之前就是好用的。。。。

这是注释   # cmd调用公共事件编号_名字_02 # 此为鼠标经过的图片

注意上面写的是 02你是不是写成了 2 了?我测试这个脚本没有问题的
....... images/back.gif

我的意思是鼠标经过正常……公共事件打不开……
我在第一页说过了…………
确实很激情测试…………
忽然发现已经变成了热门主题了……
页: 1 [2] 3 4
查看完整版本: 关于【鼠标响应图片】的使用问题~