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

Project1

 找回密码
 注册会员
搜索

鼠标响应图片菜单时不触发自动寻径

查看数: 3742 | 评论数: 19 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-8-5 16:41

正文摘要:

本帖最后由 奶油Da蛋糕 于 2009-8-8 12:50 编辑 做了一个纯鼠标的菜单。 把原来的X的菜单删掉了。 基本上兼容的问题差不多解决了。 但是还有两个问题。 这个菜单有三态效果哟,美观度还是挺好的。 这个菜单就 ...

回复

奶油Da蛋糕 发表于 2009-8-8 12:49:43
感谢后知后觉的提示。
已经成功解决了,其实也挺简单的嘛,哈哈,只要找到了合适的地方。
后知后觉 发表于 2009-8-7 22:30:47
本帖最后由 后知后觉 于 2009-8-7 22:46 编辑

鼠标脚本我还没看过
思路就是 点击左键在地图上为走路
那你就在Scene_Map里搜索对鼠标左键按下的判断
不管你是点菜单还是点地面 最初的都是要先点 鼠标左键 这是大前提
只要找到这个判断的地方
再找到设置移动的地方  move_to之类的句子 又或者是自动寻路的方法
对这些东西进行鼠标当前坐标的判断就行了- -
现在没空看脚本- -

如果你实在是看不懂哪一行是设置移动的语句的话
有一个比较恶劣的招
把你自己写的判断鼠标左键被按下的内容和
默认的鼠标左键被按下的判断的内容融合
但是一定要把你写的内容放在最上面
在切换$scene的下面加一行 return
这样就是当鼠标左键被按下的时候
首先判断的就是你自己的坐标范围响应菜单的东西
如果条件成立 这个时候就会对$scene进行改变
改变了这个$scene之后立即用return结束这个方法
这样就拦截了鼠标被按下左键的信息
也就不会再执行后面的东西了
而且这样只有在改变了$scene之后才会拦截
意思就是说你要把自己的内容先进行是否可见的判断
在可见的情况下再进行坐标范围的判断
这样子在这些东西不可见的时候 按那个地方左键也可以正常行走
99儿时路 发表于 2009-8-7 22:18:04
提示: 作者被禁止或删除 内容自动屏蔽
奶油Da蛋糕 发表于 2009-8-7 19:59:20
if trg_x != $game_player.x or trg_y != $game_player.y #若目标不为自身则开始寻路
            if trg_x < 11 or trg_y
redant 发表于 2009-8-6 21:10



我知道为什么搬回我的游戏里就点哪里都不能生效了。
您写的是屏蔽的图块而不是屏幕坐标。
也就是把那几个地图图块屏蔽不能自动寻径。
但是当地图比较大的时候。
(比如您可以把原工程的地图换成2倍的宽和高)
初始点不同的时候。
点的位置就不同了。
我那游戏刚好整块屏幕都在屏幕范围内。
因为那个图块都超过了11格。
只有在最左上角的11格以内才可以自动寻径。

明白我的意思了吗?
所以这个方法行不通。
不能光屏蔽图块,
而是要屏蔽屏幕的具体坐标。
奶油Da蛋糕 发表于 2009-8-7 16:57:30
自顶三次
奶油Da蛋糕 发表于 2009-8-7 11:11:56
http://rpg.blue/viewthread.php?tid=116771&highlight=%E4%BA%8B%E4%BB%B6%2B%E7%8E%84%E6%9C%88
详情请参考某人第一个教程 = =
另外注意看最后的补充说明,前面基本作废
只要地图不刷新的话,就算你输入再多 ...
azuredam 发表于 2009-8-7 10:51


对不起,可能是标题误导了你吧。
这个菜单不是用事件做的。
是在SCENE_MAP里面用简单的方法显示图片。然后UPDATA里面鼠标判定图片做出来的菜单。
你那个貌似跟我这个无关的。
貌似我没看出什么关联。
azuredam 发表于 2009-8-7 10:51:45
提示: 作者被禁止或删除 内容自动屏蔽
奶油Da蛋糕 发表于 2009-8-7 10:23:47
if trg_x != $game_player.x or trg_y != $game_player.y #若目标不为自身则开始寻路
            if trg_x < 11 or trg_y
redant 发表于 2009-8-6 21:10

if trg_x < 11 or trg_y <=12
所表示的屏蔽的坐标为11*32=352 12*32=384。也就是鼠标的所在X小于352,Y小于或等于384的地方才能实现自动寻径。否则不能自动寻径吗?
为何使用后我无论点哪里。每个角落都点遍了,还是没有自动寻径??
redant 发表于 2009-8-6 21:10:45
if trg_x != $game_player.x or trg_y != $game_player.y #若目标不为自身则开始寻路
            if trg_x < 11 or trg_y <=12
             find_path = Find_Path.new
             @paths = find_path.find_player_short_path(trg_x, trg_y, @mtp_x, @mtp_y)
             end
           end

好像还差不太多

Scene_Mouse 593行左右
iam 那个方法 菜单好像就屏蔽 不管用了= =

这个每改一个数字 就是屏幕32 像素
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-1-27 19:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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