关于游戏坐标完美漂移小游戏的问题

1205人阅读
Unity 3D(60)
因为没有看到网络上有完整的漂移算法,如果自己去按力学常识写,是很难写出漂移效果的,多次失败的尝试后总结出一些失败的结论:
1.现实中的车不是那么好漂移的,漂移需要轮胎与地面的低摩擦和良好的悬挂系统配合。
2.游戏里完全模拟力学引擎也是不现实的,因为漂移在现实中需要高超的技能,你不能指望玩家能有专业的技能水平去操控或者改装你的车吧,万一拐弯忘拉手刹,或者拉太久=.= 。而且完全的物理模拟,不仅费人脑去设计,也费电脑资源去运算。再说了,开发的不是微软模拟飞行这样的专业级模拟游戏。
3.在无数次失败的代码后发现,高速移动的赛车忽然间的转弯是会侧翻的,这个不是游戏引擎问题,我查了很多的汽车侧翻事故,这个东西是客观存在的,也就是说能漂移的汽车,需要有稳定精确的汽车架构,很低的底盘(我试过这个,但是在u3d里不管用,重心和底盘都快贴到地上了,依然高速运动下转弯会侧翻),专业级的悬挂系统(这很重要,这也是游戏里模拟不出来的),每个部件精确的调试,还有一大堆的汽车辅助系统(这个后面说)。
4.侧翻不可避免,但游戏里不允许玩家稍微操控失误就侧翻,这会大大影响游戏性。我试过用加大重力的方法来防止侧翻,但是加大重力也就加大了摩擦力,使用物理引擎去模拟漂移就更加的困难。
5.自动稳定杆系统(ASBS)能有效防止侧翻,但是为了一款游戏有必要这么麻烦么?
经过几天的研究,我研究出几套漂移的解决方案(我开发采用的是最后一种,重点介绍最后一种)
方案1.整个赛车干脆都用translate做坐标移动,这个就是无视wheelcollider物理引擎的做法,新手适用,简单方便,但之后的开发上会有很多问题需要解决(如果你想解决这些问题的话)。
方案2.用wheelcollider的悬挂设置和摩擦力设置做。这个应该是最标准的,但是我一直没研究出来他的Forward Friction和Sideways Friction怎么设置,并且这些设置有什么效果=.=(我是用极值法来试验他怎么用的,但感觉这个东西很鸡肋,没啥效果,官方的例子也没有用到这个做开发,外带说下,官方的赛车例子根本不会漂移)。当然这个做法的移动是使用wheelcollider的motorTorque做移动的(这应该是官方希望的)。
方案3.轮子一样还用wheelCollider,但汽车移动的动力不使用轮子的motorTorque,而是在汽车的rigidbody上施加Force来传动(官方的例子是这样的,这也是令我匪夷所思的,只能说明官方也知道他的wheelcollider引擎还有问题)。用Force有个好处,你可以在拐弯的时候做受力分析,计算出最后侧滑的合力方向和大小,实时计算赛车动力方向和侧滑判定。这个唯一的问题就是汽车稳定性问题,在高速运动的汽车中很难保证他的稳定,自己开发ASBS系统也不太可能吧-.-。
方案4.这个是我的方法,用wheelcollider和translate混合处理。首先一点重要的,所有汽车移动,转弯都必须使用wheelcollider提供的函数(至于为什么参看我关于wheelcollider的日志),用wheelcollider方法可以保证车子正常运动,但不会漂移(要么过快车速侧翻,要么就直接转弯过去了),判断漂移只需要判断玩家点击手刹的时候,计算车子拉手刹一瞬间的转弯角和惯性方向,使用transform.translate来实现甩尾,有效规避掉不必要的摩擦判断和物理判断。我画个图示意下漂移大致原理(云姐要是看到肯定很高兴^^):
由于手刹后前后轮抱死产生的摩擦和离心力的作用改变了整辆车合力的方向,所以导致汽车运动方向的改变,产生漂移。那我们假设他拉得不是手刹,而只是普通的制动闸,只有制动减速效果,所以先用wheelcollider做正常的拐弯减速运动,然后单独写一个traslate按预计漂移方向做物体移动,并判断当手刹按钮按下后再进行强行物体移动加以模拟减速移动来产生漂移的摩擦衰减效果(transform的坐标移动是不受物理引擎影响的,所以写起来就很简单。)
&& & & & & & & & & & & &&
这样最后综合起来的效果就能产生漂移效果的最初框架了。玩家操作简单,开发者开发也简单,何乐而不为。最后剩下的工作就是要去慢慢调试一些数据来改变用户体验了。
欢迎大家提出宝贵意见或者建议,我会慢慢完善赛车引擎脚本的。
本文来自:http://www.meebe.net/blog/article/unity3d/u3d_car21.html
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:408872次
积分:5658
积分:5658
排名:第3822名
原创:153篇
转载:89篇
评论:68条
(1)(1)(2)(1)(1)(4)(4)(3)(2)(6)(3)(3)(1)(19)(2)(12)(5)(2)(10)(16)(6)(18)(23)(16)(12)(2)(19)(21)(9)(18)
邮箱:xiaoyang_您的当前位置: > 正文
全民漂移新手入门必看 实用问题解答
来源:作者:爱旅行的猫
全民漂移新手入门必看,实用问题解答。全民漂移这款游戏小编等了好长时间,终于盼到他上线了。关于这款游戏的所有问题小编都整理出来了,感兴趣的玩家可以来看看下面的详细介绍。看完之后对游戏会有更好的了解,一起来看吧。
Q1:《全民漂移》是一款什么样的游戏?
A:《全民漂移》是要玩娱乐出品的首款能够实时在线竞速的赛车类手游。先进的USD为玩家打造出华丽炫酷的赛车,以及美轮美奂的赛道风景。
Q2:《全民漂移》是否收费?
A:《全民漂移》是一款完全免费的竞速休闲网络游戏。
Q3:《全民漂移》对机器的配置要求高吗?
A:尽管《全民漂移》的画面效果在同类产品中已经出类拔萃,但是封测版本的专项优化,使游戏对机器的要求并不高。800*600的分辨率下,低配置的机器也可以跑的很流畅。
在后面的版本中会进一步加强优化,将来公测时,即使是配置较低的手机,也可以没有障碍的进行游戏。
Q4: 金币有什么用?该任何获取金币。
A: 金币可以用来车辆改装,车辆购买,升级技能,提升自己车队的综合战斗力。
金币的获取途径非常之多,可以通过完成任务、参与比赛、达成成就等方式获得。
想知道更多的金币获取途径,可以点击查看帖子《全民漂移》金币获取途径方法
Q5:《全民漂移》游戏内有哪些高级技巧?如何才能施展?
A:漂移:当赛车在转弯时,按下刹车键就可以产生漂移,在漂移过程中朝反方向转弯可以停止漂移。漂移技巧可以让你通过非常急促的弯道。
喷火:点击&喷火&键,可以让赛车进入2s的加速状态,当赛车达到一定速度,点击&喷火&键,还可继续增加赛车加速度和极限速度。
以上都是游戏中的技巧,通过勤加练习,熟练掌握它们,可以帮助你取得更好的成绩。
Q6:如何切换账号?如何查看自己的ID和个人信息?
A: 玩家进入游戏主界面,点击游戏右上角&齿轮&,即可在弹出界面点击&切换账号&进行
账号切换选择。
玩家进入游戏主页面,左上角点击自己的&用户名&,即可在弹出界面查看自己的ID和已获
得的奖杯数量、目前身价和已获得车辆。
Q7: 如何购买金币、钻石、强化材料、女郎等道具?
A: 在游戏主界面,点击游戏上方的钻石/金币选项,或者点击游戏下方&商店&即可进入购买界面,进行各类道具购买。
Q8: 体力多久恢复一次或如何获得?
A:每10分钟恢复一点体力。当前体力上限为20。
Q9:如何添加好友?好友数量有上限吗?
A:《全民漂移》。点击游戏主界面右方&赛事&选项,进入&赛事&界面,点击玩家角色名,会再次弹出一个玩家信息介绍界面,点击该界面中的&关注&即可成为好友。目前版本最多可添加50个好友。
Q10: 如何获得成就奖励?
A: 在游戏主界面,点击游戏左上角&徽章&,即可进入 奖杯/技能/贵族 等选项的界面;&成就&:可以查看当前玩家角色所获得的奖杯数、身价、头衔以及勋章馆等个人信息;
(&勋章馆&:进入该选项可以查看游戏过程当中可以通过赛事获得相应的成就,达到要求即可获得金币奖励);
&技能&:通过强化五种不同类型的技能等级,可以让自己的赛车在比赛中获得更高的优势,技能分别有&反应&、&操控&、&漂移&、&连喷&、&三喷&等;
&贵族&:贵族头衔需要通过充值钻石,获得充值经验提高贵族等级,不同贵族等级可以获得不同的特权以及金币数量(贵族特权于当前版本暂不开放)。目前贵族等级一共有12个等级。
Q11: 游戏一共有几种赛事?
A: 目前游戏内一共6种,分别为:生涯模式、在线对战、积分模式、车队赛、接力赛、大奖赛;
生涯模式:完成各个关卡要求,达成度越高奖励越高;
在线对战:实时在线,分两人对战或多人随机匹配对战,也可以与好友进行PK;
积分模式:积分模式分四类:分别为喷射赛、漂移赛、距离赛和追击赛。
喷射赛:限定时间喷射次数越多,获得积分越高;
漂移赛:限定时间内漂移出越长距离,获得积分越高;
距离赛:限定时间跑出的距离越长,获得积分越高;
追击赛:击毁boss车辆的时间花费越短,获得的积分越高。
车队赛:加入车队进行比赛,每一轮有6站比赛,按照成绩获得积分,总积分越高,车队奖励越丰富;
大奖赛:每日0&23点为当日赛季比赛时间,每个赛季,系统将会刷新6条赛道,每参加一站比赛,都会获得该分站的一个积分(积分根据比赛时间来换算),玩家可以重复参加同一站比赛来刷新积分,积分取本赛季历史最高值,每参加一次比赛会扣除1点体力;
接力赛:必须拥有三辆赛车才能参加赛事,在同一赛道上行驶三圈,速度越快,成绩越好;
Q12: 除了好友车队以外,如何加入非好友车队?
A: 在世界车队界面,会显示全服的世界车队,系统从队员未满的队伍中,随机抽出20个队伍显示,在未加入过任何车队前,也可以在世界车队界面进行创建或加入。
Q13: 如何知道好友到达生涯赛的哪一关卡?
A: 当玩家在游戏中添加好友后,即可在生涯模式中看到目前好友达到的关卡位置。
Q14: 低级赛车能否晋升为高级赛车?
A: 不能,游戏中只能选择对应等级的赛车进行改造。通过点击游戏主界面右方的&改装&进行相应的改造。
Q15:《全民漂移》游戏中的奖杯有什么作用?
A:奖杯主要作用是解锁赛车的购买,同时也是好友之间排名的依据标准。
Q16:《全民漂移》游戏中的身价是如何评定?
A:玩家当前所拥有的车辆、组件等级、配件等级、勋章数量以及女郎的总价值进行的评定。
Q17:《全民漂移》勋章馆有什么用?
A:成就满足条件就能获得,可以通过玩家信息-勋章馆查看到,已达成的成就及可领的丰富奖励(当上一阶段的成就达成后才会开启下一阶段的成就)。
Q18:《全民漂移》女郎的作用有哪些,是否属于永久获得?
A:女郎都是有时效性的,即使用一定的天数之后,就会失效(剩余的有效天数会在原来女郎价格的地方显示),需要重新激活;目前有7位女郎,不同的女郎有不同的效用,比如可以在比赛中增加赛车初始氮气值,比赛中赛车漂移产生氮气值等等诸如此类(实际效果以游戏为准)。
Q19:《全民漂移》好友间是否可以互赠钻石?
A:目前版本中,好友之间可以互赠钻石,每天有一次互赠机会,每次赠送为2钻石。在游戏主页面内点击排行榜进入好友列表即可赠送钻石。每日赠送次数,将于0点刷新。
Q20:《全民漂移》赛车组件和配件如何获得?
A:游戏中的组件是每辆赛车自带的,需要消耗金币或者钻石进行升级;而配件则需要玩家通过赛事、商店或者夺宝奖励才能获得,每次打开配件礼包所获得的配件都是随机的。获得的配件,将会放进背包内。多余的配件,可以通过背包点击配件,进行出售获得相应的金币。
Q21:《全民漂移》夺宝次数如何获得,每天是否会刷新?几点刷新?
A:夺宝次数需要通关一个章节赛事才能获得一次免费夺宝机会,并且每天会刷新夺宝次数。每天0点进行刷新。
Q22:《全民漂移》的&漂移大师&、&完美驾驶&、&完美漂移&等称号如何获得?
A:漂移大师:需要在赛事中持续漂移出1200M才能获得称号;
完美漂移:需要在赛事中持续漂移出800M才能获得称号;
完美驾驶:15秒内不碰撞任何车辆和道具、护栏。出现完美行驶后,20秒内不再出现。查看: 6731|回复: 15
[按键辅助教程]
你一定想不到的解决鼠标飘移方法!!!
阅读权限30
在线时间10 小时
积分主题听众
技法精湛来自于日积月累
论坛严禁灌水,一律永久封禁!</
解决鼠标飘移~~SO EASY!!
本文由按键学院提供技术支持
按键学院交流群(1群已满):零基础学按键精灵群(2群):
小编最近想要写个问道游戏的脚本,但是遇到了一个很令人抓狂并且头疼的问题
就是诡异的——鼠标飘移现象。& &
据小编的了解,这个鼠标飘移现象并不仅仅在问道游戏中会出现,像是梦幻西游、桃花源记等等游戏都有存在鼠标飘移的情况。
那具体什么是鼠标飘移呢?接下来就由小编带大家了解什么是鼠标飘移,并且解决鼠标飘移。
什么是鼠标飘移现象?
鼠标飘移就是使用 MoveTo 命令想要在游戏中把鼠标移动到指定的坐标点的时候,游戏中的鼠标却诡异的随机移动到该坐标周围的点。
接着给大家举个“栗子”看看到底神马是鼠标飘移& &
比如想要移动到图中红框的部分点击,关闭掉这个窗口
QQ截图09.jpg (167.01 KB, 下载次数: 3)
18:09 上传
使用抓抓工具获得这个关闭按钮的坐标是 (394,100),那正常情况下的代码该如何写呢?MoveTo 394, 100
LeftClick 1复制代码但是!!如果直接按照这个代码执行的话就会下面的现象
QQ截图46.jpg (22.55 KB, 下载次数: 0)
18:09 上传
QQ截图03.jpg (5.92 KB, 下载次数: 0)
18:09 上传
QQ截图14.jpg (20.31 KB, 下载次数: 0)
18:09 上传
QQ截图33.jpg (21.18 KB, 下载次数: 0)
18:09 上传
童鞋们注意到了么?不管执行代码多少次,结果游戏中的鼠标就是一直在坐标点周围 “晃悠” 就是不点击我们指定的那个点。
小编当时遇到这个问题的时候简直是抓狂了!&&
如果鼠标移动的位置都不准确的话,那整个脚本之后的操作基本上都无法继续下去了,难道就要放弃这个脚本么
No!!!俗话说的好 “道高一尺,魔高一丈” 经过咱们的按键工程师07 大大的研究,成功的解决了鼠标飘移的问题!
下面就让我们来看看如何处理鼠标飘移~~
1、先用MoveTo 移动到指定坐标
2、在游戏中利用找图或者找色命令,找到游戏鼠标特征,从而得出鼠标当前位置
3、计算指定坐标和鼠标当前位置的差值
4、使用相对移动命令MoveR移动鼠标
1、先使用移动命令移动到指定的坐标moveto x, y复制代码2、这时候游戏中实际的鼠标位置和目标点其实是有偏移的,我们需要先找到游戏鼠标的实际所在的位置
游戏中鼠标的样子是一把剑的形状
QQ截图25.jpg (7.11 KB, 下载次数: 0)
18:09 上传
我们就是要通过找到这把剑的位置来确定游戏中鼠标的实际位置
但是这把剑是会一直转动的,这该如何去找呢?
其实细心的童鞋可以发现这把剑的剑柄的部分是不动的
QQ截图17.jpg (2.64 KB, 下载次数: 2)
18:09 上传
&&那我们就可以通过多点找色的方式去找到这个剑柄了。XY = FindMultiColor(0, 0, , &886020&, &5|3|e0d078,6|5|c09c68,3|4||2|584028&, 1.0, 1)
& && &&&ZB = InStr(XY, &|&)& &
& && &&&//下面这句将字符串转换成数值& &
& && &&&intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))复制代码注意:这里得到的坐标是剑柄的位置,游戏中鼠标是根据剑尖来判定位置的,所以在实际的使用中还需要减去一些距离才能得到剑尖的坐标点。
3、接着计算指定的坐标和鼠标当前坐标的差值。x轴的坐标差是:x - (intX-22)
y轴的坐标差是:y - (intY-22)复制代码代码里的22就是剑柄的坐标和剑尖的距离,intX-22 的结果就是剑尖的x坐标。intY-22 就是剑尖的y坐标。
4、之后用相对移动命令去移动即可MoveR x - (intX-22),y - (intY-22)复制代码完整代码
我们可以把这个计算过程定义成一个函数,这样可以在之后的脚本中很方便的去调用他
Function 移动(x, y)
& & //加入最大循环次数判断是否鼠标跑出画面
& & Dim tmp1& && &&&'计数变量
& & moveto x, y
& & Delay 100
& & //定位鼠标
& & Do
& && &&&//多点找色,找鼠标剑柄,加偏色
& && &&&XY = FindMultiColor(0, 0, , &886020&, &5|3|e0d078,6|5|c09c68,3|4||2|584028&, 1.0, 1)
& && &&&ZB = InStr(XY, &|&)& &
& && &&&//下面这句将字符串转换成数值& &
& && &&&intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))& &
& && &&&If intX &= 0 and intY &= 0 Then
& && && && &TracePrint &找到& & intX & &,& & intY
& && && && &Exit Do
& && &&&Else
& && && && &TracePrint &未找到&
& && && && &tmp1 = tmp1 + 1
& && &&&End If
& && &&&Delay 10
& && &&&If tmp1 &= 20 Then
& && && && &TracePrint &无法定位鼠标位置,重置鼠标位置&
& && && && &moveto 400, 300
& && && && &Delay 300
& && && && &//重置计数变量
& && && && &tmp1 = 0
& && &&&End If
& & Loop
& & TracePrint &次数&&tmp1
& & Delay 50
& & TracePrint &坐标差:& & x - (intX-22) & &,& & y - (intY-22)
& & MoveR x - (intX-22),y - (intY-22)
End Function复制代码除了这个通过计算差值的方法外,还有没有其他的方法用来解决鼠标飘移呢?{:4_92:}
答案当然是有啦!!
而且方法比这个上面的方法要 简单粗暴!{:4_89:}
后台移动鼠标解决飘移
后台命令的话直接就可以准确的移动操作,不需要单独的去计算差值
Call register()&&//注册大漠
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd,&dx&,&windows2&,&dx&,1) //大漠绑定窗口
dm.moveto x,y
dm.leftclick
Sub register()&&//注册大漠
& & Set ws = createobject(&Wscript.Shell&)
& & ws.run &regsvr32 atl.dll /s&
& & Set ws = nothing
& & PutAttachment &G:\test&, &dm.dll&
& & PutAttachment &.\Plugin& ,&RegDll.dll&
& & call Plugin.RegDll.Reg ( &G:\test\dm.dll&)
& & Set dm = createobject(&dm.dmsoft&)
& & ver = dm.ver()
& & If len(ver) = 0 Then
& && &&&MessageBox &插件注册失败,检查系统是否禁用了vbs脚本权限&
& && &&&EndScript
& & End If
End Sub复制代码
这里还需要补充一点:这个后台的方法并不是所有游戏都能适用的,只有部分游戏使用后台方式可以避免出现鼠标飘移。
具体是哪些游戏,那就只能童鞋们自己测试了。
联系我时,请说是在 外挂海论坛 上看到的,谢谢!
上一篇:下一篇:
阅读权限20
在线时间4 小时
积分主题听众
謝謝無私分享:)
阅读权限30
在线时间2 小时
积分主题听众
看帖回帖,楼主辛苦了!& & & &
阅读权限20
在线时间2 小时
积分主题听众
高手云集 马上来看看
阅读权限10
在线时间6 小时
积分主题听众
支持,外挂海 强烈支持楼主ing……
阅读权限30
在线时间8 小时
积分主题听众
楼主天天快乐,吉祥如意!
阅读权限10
在线时间1 小时
积分主题听众
今日小生得以一见楼主大贴实在是惶恐至急,何否,楼主此贴实在妙哉!
阅读权限20
在线时间3 小时
积分主题听众
帮你顶,人还是厚道点好
阅读权限30
在线时间6 小时
积分主题听众
超級精彩,我非常喜歡
阅读权限10
在线时间0 小时
积分主题听众
我飘过一下
Powered by Discuz! X3.2
Comsenz Inc.小地图坐标问题 _ 综合讨论 - 按键精灵论坛
腾讯微博:
软件版本:2014.05软件大小:76.8M更新时间:2-21
软件版本:3.1.8软件大小:52.1M更新时间:03-07
软件版本:1.2.4软件大小:29.2M更新时间:10-28
软件版本:1.1.0软件大小:12.3M更新时间:12-29
查看: 3089|回复: 30
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
本帖最后由 along001 于
22:33 编辑 (15.01 K) 22:22:08如此图,让角色走到这个坐标点上,坐标要求X+Y的坐标误差不能超过1比如任务的要求是让角色站在253,154,。用小地图如何才能走到这个坐标点上,大地图也行,求师傅指点。。谢谢。。。鲜花朵朵。只求高手指点。。识别鼠标后面的坐标没问题,问题是如何才能让鼠标移动到,鼠标后面的坐标值和任务的一样,我做出来的两次移动后坐标总差1到3个坐标值。。。。郁闷我没技术,只有通过小地图的值和窗口鼠标的位置比例值来计算鼠标移动到哪里后,鼠标后面的坐标值是多少,在通过2次计算消除误差,但还是误差1到3个坐标点。。。好像他的比例不是固定的,算不准的。。。。
努力学习中,学习在学习
中国地图看过吧,地图上会有个比例尺,而游戏也一样,你自己看看你的游戏,小图中的1个像素点相当于大图中的多少个坐标点比如:你小图的x坐标要移动3,加入比例是1:10,那大图就移动30
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
本帖最后由 along001 于
22:38 编辑 lstar 发表于
22:33 中国地图看过吧,地图上会有个比例尺,而游戏也一样,你自己看看你的游戏,小图中的1个像素点相当于大图中的 ...首先谢谢你,游戏小地图和窗口的坐标比例好像不固定,比如我用的是窗口中间的值算的,我算的1:1.554,但是我测试窗口左上角的坐标他就小了2-3个坐标,我用中间的就刚好,用右下的就大了2-3个坐标。。这样怎么计算。。。而且通过二次补充还是误差。。。。
努力学习中,学习在学习
本帖最后由 lstar 于
22:42 编辑 鼠标在小地图上移动就会有数字出现吗?如果会,就直接让脚本执行在小地图上移动坐标的命令,直到旁边的数字是任务的数字,然后点击,就去到目的地了
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
lstar 发表于
22:42 鼠标在小地图上移动就会有数字出现吗?如果会,就直接让脚本执行在小地图上移动坐标的命令,直到旁边的数 ...鼠标移动后后面的数字会跟着变动,能看的见,可让鼠标移动的让后面的数字变成我需要的坐标数字,我不知道怎么写,能教教我,谢谢。。
努力学习中,学习在学习
龙年勋章(360天)龙年纪念勋章(360天)发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章十周年勋章(360天)十周年纪念勋章按键精灵开发者6级可通过提升认证等级来升级勋章:兔年勋章(360天)兔年纪念勋章(360天)
这不是很好办么,你先到附近,鼠标上不是会显示坐标数值么?用大漠做成字库,如果小于,就自己算好比例,让鼠标相对移动多少。。。
人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。
骊山语罢清宵半,泪雨霖铃终不怨。何如薄幸锦衣郎,比翼连枝当日愿。
文字识别的插件会用不,就是大漠插件之类的,都会有如果不想用大漠插件,也可以直接查看特征点,判断那个是什么数字
everlasting
盒子会员盒子会员专属勋章龙年勋章(360天)龙年纪念勋章(360天)按键精灵开发者6级可通过提升认证等级来升级勋章:
&&&&// 函数作用:获取在地图上鼠标指向的坐标,返回值放在 X,Y 中(引用传递)
&&&&Function GetPosMousePoint(x, y)
&&&&&&&&// 怎么实现自己填
&&&&End Function
// 函数作用:在地图上指向目标点,最大修正次数为10
Function MoveToPos(x, y)
&&&&Dim flag, returnValue
&&&&Dim counter, MAX
&&&&flag = true
&&&&returnValue = false
&&&&counter = 0
&&&&MAX = 10
&&&&While flag
&&&&&&&&Call GetPosMousePoint(cx, cy)
&&&&&&&&If cx
x And cy 游戏自带小地图寻路的情况下 可以这样用
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
mikechs 发表于
22:46 这不是很好办么,你先到附近,鼠标上不是会显示坐标数值么?用大漠做成字库,如果小于,就自己算好比例, ...我太悲剧了,像你说的那样,我已经通过二次判断误差,继续追加移动了可还是误差2-3个坐标点,郁闷中。。。
努力学习中,学习在学习
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
along001 发表于
22:54 我太悲剧了,像你说的那样,我已经通过二次判断误差,继续追加移动了可还是误差2-3个坐标点,郁闷中。。。 ...
ax = inx - xx
ay = iny - yy
xxx = CLng((xx + ax * cx)*cx)
yyy = CLng((yy + ay * cy)*cy)
Delay 1000
dm.MoveTo xxx, yyy
努力学习中,学习在学习
龙年勋章(360天)龙年纪念勋章(360天)发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章十周年勋章(360天)十周年纪念勋章按键精灵开发者6级可通过提升认证等级来升级勋章:兔年勋章(360天)兔年纪念勋章(360天)
本帖最后由 mikechs 于
08:50 编辑 嗯,可能鼠标本身就有偏差的。如果还差二三点,你就把这二三点加上去。可能是游戏本身设置的。实在不行,就弄个鼠标漂移,接到弹出相应的对话框就停止漂移,否则继续漂移function 鼠标漂移(aa,bb)randomizemoveto aa+int(3*rnd),yy+int(3*rnd)delay 50leftclick,1delay 50end function
人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。
骊山语罢清宵半,泪雨霖铃终不怨。何如薄幸锦衣郎,比翼连枝当日愿。
everlasting
盒子会员盒子会员专属勋章龙年勋章(360天)龙年纪念勋章(360天)按键精灵开发者6级可通过提升认证等级来升级勋章:
噢,对了,在打开地图后面还有一步要做Call 打开地图()Call 初始化鼠标位置()之后才是移动鼠标刚刚写的,没考虑到初始化鼠标位置的问题一般我都是开着游戏边写边调的,没有游戏直接写问题可能会多一点,思路就那样
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
everlasting 发表于
23:27 噢,对了,在打开地图后面还有一步要做Call 打开地图()Call 初始化鼠标位置()非常感谢你。还得好好向你学习,看看,刚我自己写的,虽然能实现还是太繁琐了,你帮我看看。。Sub ceshi()
Dim x, y, sx, sy, cx, cy
//inx,iny为角色需要去的坐标点
cx = 2.2857143
cy = 1.8926554
x = CLng(inx * cx)
y = CLng(iny * cy)
Delay 1000
dm.MoveTo x, y
Delay 1000
s = dm.Ocr(0, 0,, "fff7ce-000000", 1.0)
xy = Split(s, ",")
xx = Clng(xy(0))
yy = Clng(xy(1))
If inx < xx Then
dm.MoveTo x, y
ElseIf inx > xx Then
dm.MoveTo x, y
s = dm.Ocr(0, 0,, "fff7ce-000000", 1.0)
xy = Split(s, ",")
xx = Clng(xy(0))
yy = Clng(xy(1))
If iny < yy Then
dm.MoveTo x, y
ElseIf iny > yy Then
dm.MoveTo x, y
Delay 50000End Sub怎么找字判断要是鼠标移动到窗体边上的时候就会出现找不到数字呢,可数字明显在窗体里面的啊,
努力学习中,学习在学习
everlasting
盒子会员盒子会员专属勋章龙年勋章(360天)龙年纪念勋章(360天)按键精灵开发者6级可通过提升认证等级来升级勋章:
本帖最后由 everlasting 于
23:45 编辑 along001 发表于
23:34 非常感谢你。还得好好向你学习,看看,刚我自己写的,虽然能实现还是太繁琐了,你帮我看看。。Sub cesh ...你写的这个 原理和我写的差不多只是这样写的话,如果要寻路的地图跟你取数据的那个地图相差比较大那么,你这样写有可能达不到你的要求首先,你这样写,修正值在 -20 - 20 之间假如目标是 400, 200,而你第一次移鼠标在 370, 200 那么加上修正值,你最多只能达到 390, 200这样你的这种写法就失效了其次,你的这种写法每次修正2个像素,要是刚好跟目标是1个像素的误差呢?这样你的修正就左右地跳 跳够十次就结束了 最后还是存在误差大概就说到这里吧 要睡觉了 你好好思考一下我的那个例子我只是随手写一下,要用的话还要根据自己的实际情况做一些修改呢
星际飞翔Flash
按键精灵开发者6级可通过提升认证等级来升级勋章:
耐心算比例,我做一个游戏,坐标系统还是斜的呢,X和Y的变化,都是斜着搞的,非常麻烦耐心点,算好比例,没有任何误差,至少我是这样做的,搞了2天
发帖高手鼓励积极回复,但注意不要灌水哦学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者2级可通过提升认证等级来升级勋章:
everlasting 发表于
23:44 你写的这个 原理和我写的差不多只是这样写的话,如果要寻路的地图跟你取数据的那个地图相差比较大那么 ...多谢师父指点,早点休息,今天辛苦你了。谢谢。。
努力学习中,学习在学习
学有所成学有所成勋章,新手步入按键学堂的第一枚勋章发帖高手鼓励积极回复,但注意不要灌水哦
一旦LZ能够识别出屏幕里的数字可以考虑这个思路,对比当前坐标和目的地坐标,让鼠标相对于屏幕中心(一般是角色所在位置)移动且点击一小段距离。
If East < MoveEast and South = MoveSouth Then '如果目的地的东方坐标大于或小于角色所在的东方坐标
ElseIf East > MoveEast and
South = MoveSouth
ElseIf South < MoveSouth and East = MoveEast Then'如果目的地的南方坐标大于或小于角色地图南方坐标
ElseIf South > MoveSouth and East = MoveEast Then
ElseIf MoveEast > East and MoveSouth > South Then'
ElseIf MoveEast < East and MoveSouth < South Then
ElseIf MoveEast > East and MoveSouth < South Then
ElseIf MoveEast
South Then
Plugin.Bkgnd.MoveTo Hwnd,320
+ X+radLoog, 240 + Y+radLoog
Delay raddelay
Plugin.Bkgnd.LeftClick Hwnd, 320 + X + radLoog, 240 + Y + radLoog
Delay raddelay+250事例
&---哥并不是在低头,而是在找砖头╮(╯▽╰)╭
按键会员(月)按键会员绑定账号后自动赠送按键精灵开发者2级可通过提升认证等级来升级勋章:
和楼主一样,同求这个问题,但游戏不一样,我本来的思路是让鼠标在大地图上移动,识别鼠标所在点的坐标值,如是设定的挂机点就点击,让人物跑过去但由于大漠识别问题,总是不能准确识别由是到现在还没有找到好的解决方法
(情人小店)皇冠信用,诚寻角本销售合作。
合作商谈,请加 QQ:2355392
龙年勋章(360天)龙年纪念勋章(360天)按键精灵开发者1级可通过提升认证等级来升级勋章:
学习了~~·
学有所成学有所成勋章,新手步入按键学堂的第一枚勋章论坛GG按键论坛男性用户勋章论坛MM按键论坛女性用户勋章兔年勋章(360天)兔年纪念勋章(360天)园丁勋章(90天)参加论坛暖春活动获得十周年勋章(360天)十周年纪念勋章龙年勋章(360天)龙年纪念勋章(360天)按键精灵开发者6级可通过提升认证等级来升级勋章:创业榜样(30天)参加暑期创业征文活动,成为创业榜样!黄金之翼黄金之翼勋章按键明星按键明星勋章潜水员按键潜水员勋章天使勋章天使一样的用户按键图书勋章尊贵的按键图书用户图灵勋章参与按键精灵验证码识别大赛奖励黄瓜勋章(永久)体验商业小精灵活动的奖励鹰眼勋章鹰眼注册用户专属勋章认证考霸(90天)参加考霸活动,对认证考了十次以上用户的鼓励马年勋章(360天) 马年纪念勋章(360天)单身汪勋章单身贵族的专属勋章双十一绝版纪念勋章双十一绝版纪念勋章
QQ 7288400 在线为你解答

我要回帖

更多关于 过滤坐标漂移 的文章

 

随机推荐