挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)找塔科夫开发,你有实力,我有渠道 年入百万+q:19213921高防服务器40核 64G 50M 249/月 高防云服务器78/月 Rx双机盒子,平替Km,无需驱动,自带轨迹,不黑屋+q:3059349426
天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 ██【我要租此广告位】██. 
查看: 13597|回复: 37

[按键辅助教程] 渐开线找怪

[复制链接]
3正式会员
142/300

142

积分

47

主题

5

听众
已帮网友解决0 个问题
好评
0
贡献
95
海币
290
交易币
0
发表于 2015-3-25 14:02:19 | 显示全部楼层 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


渐开线找



本文按键学院提供技术支持

渐开线找怪是一种高效率的找怪方法,以角色为中心点,向外扩散,找离角色最近的怪物。






渐开线
1.png


渐开线


画渐开线重要的几个点:
1、起始点坐标
2、线与线之间的距离。
3、转向。
4、线长。(上图中,渐开线并不是一口气画完的,是一段线一段线的画。)

2.jpg





游戏里的规律

咱们今天讲的例子是2D游戏《神涂》。渐开线要怎么应用到游戏找怪呢?
咱们先了解下游戏里的规律,再将渐开线套用进去。


规律1:
      在2D游戏里,角色、怪物移动的距离是固定的,就像走在棋盘里一样,移动一步就像走了一个格子。
      在今天的游戏例子中,角色、怪物横着走一步是48个像素点,竖着走一步是32个像素点。(不是所有2D游戏都是这样的规格)
3.jpg                
      那么,如何知道一步的距离是多少呢?
      我们可以获取角色血条的第一个像素点坐标,然后向上移动一步,再次获取血条第一个像素点坐标。y坐标的差值,即是竖走一步的距离,用同样的方法,横走一步即可获得横走一步的距离。


               
规律2:
      离角色越近的怪物,格子的圈数越少。
4.png       

        经过图片的分析,情况一目了然。
        以角色为中心,一圈圈往外扩散,不正是渐开线么。
  




渐开线找怪思路


1、 以角色右边一格为渐开线起始点,一圈圈往外遍历格子。(不一定要角色右边一格为起始点,上下左右都可以,不要以角色为起点即可。因为咱们的角色血条也是红的,如果从角色那一格开始遍历,那么一开始就找到角色自己的血条。)
         


2、遍历到第26个格子的时候发现怪物,角色移动过去打怪。打完怪物之后,以当前角色所在位置的右边一格为起始点,再次开始渐开线找怪。

         例如:渐开线是8圈,遍历了8圈格子,其中第三圈和第五圈都有怪物。
                  遍历到第三圈找到怪物,角色移动到怪物点打完怪。

                       剩下的五圈继续遍历扩散,但不判断有没有怪物。
                  为什么不判断呢?
                  因为,打完第一只怪物之后,角色的位置变化了,

                       我们不能肯定,第五圈的那只怪物和当前角色所在位置的距离是最近的。





步骤


1、 我们已经知道,一个格子宽48像素,高32像素。
          6.png
         第一步,以角色右边一格为渐开线起始点,也就是说x坐标要加48个像素。
       以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。往左移动x坐标递减,往右移动x坐标递增。



2、 第1个格子到第二个格子,y坐标加32个像素。现在问题来了,第2格到第3个要转弯,怎么转弯呢?
7.png   


     咱们上面提到过:
      以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。往左移动x坐标递减,往右移动x坐标递增。
      也就是说:如果我们想往上走一个格子,那么x坐标不变,y坐标减少32像素。
                     如果想往左走,那么y坐标不变,x坐标减少48像素,依此类推。




3、现在我们知道了转向的原理,那么走几格需要转向?要怎么控制?我们来看下图片分析:
       8.png

     结合代码进行理解:
  1. 步数 = 1
  2.                 For 16  //这里的数字越大,渐开线范围越大
  3.                     For 2
  4. //转向
  5.                         For 步数
  6.    
  7.                         Next
  8.                     Next
  9.                     步数 = 步数 + 1
  10.                 Next
复制代码
     初始步数为1
     for 2 循环有循环两次。
     第一次,角色转向进入for 步数循环往右走一格(上图中白色格子)。
     第二次,角色转向进入for 步数循环往下走一格
     for 2循环执行完毕,步数加1
     再次进入for 2 循环。
     第一次,角色转向进入for 步数循环往左走两格(上图中嫩绿色格子)。
     第二次,角色转向进入for 步数循环往上走两格
    for 2循环执行完毕,步数加1
     再次进入for 2 循环。
    依此类推。
      






整体代码
  1. Call 随机打怪()
  2. Function 随机打怪()
  3.     px = 497 - 9   
  4.     py = 279 - 15
  5. //497,279为角色血条的第一个像素点


  6.     '/* 渐开找怪
  7.         Do
  8.                 坐标X = 0
  9.                 坐标Y = 0
  10.                 朝向 =0         // [0=上、1=右、2=下、3=左]
  11.                 步数 = 1
  12.                 有怪 = false
  13.                 For 16
  14.                     For 2
  15.                         朝向 = 朝向 + 1
  16.                         For 步数
  17.                             Select Case Abs(朝向 mod 4)
  18.                             Case 0
  19.                                 坐标Y = 坐标Y - 1
  20.                             Case 1
  21.                                 坐标X = 坐标X + 1
  22.                             Case 2
  23.                                 坐标Y = 坐标Y + 1
  24.                             Case 3
  25.                                 坐标X = 坐标X - 1
  26.                             End Select
  27.                             If 有怪 = False Then
  28.                                     XY  = Plugin.Color.FindMultiColor(px + (坐标x * 48), py + (坐标y * 32), px + ((坐标x + 1) * 48), py + ((坐标y + 1) * 32), "FF0000", "0|1|9C0000", 1)
  29.                                                 ZB = InStr(XY, "|")   
  30.                          intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))
  31.                                                    If IntX >= 0 Then
  32.                                                          MoveTo IntX + 16, IntY + 46
  33.                                                      LeftClick 1
  34.                                                         有怪 = TRUE
  35.                                                 End If
  36.                             End If
  37.                         Next
  38.                     Next
  39.                     步数 = 步数 + 1
  40.                 Next
  41.                 Delay 1000
  42.                 // 判断是否要使用随机传送了
  43.                 If 有怪 = False Then
  44.                         KeyPress "3",1
  45.                         Delay 1000
  46.                 End If
  47.         Loop
  48. End Function
复制代码
{:5_141:}注意:

                           px = 497 - 9   
                      py = 279 - 15
                           //497,279为角色血条的第一个像素点


                      为什么在这里要减9减15呢?

                            9.png

                          

正常的思路应该是以角色血条左上角的第一个红色像素点作为格子的左上角,然后渐开找色,判断每个格子左上角的位置是不是红色的,是则说明有怪。
但是,在神涂中,怪物的身高不一样,会导致有的怪物它的血条可能不在格子左上角位置。



    所以,这里获取到角色血条第一个像素点之后,x坐标减9,y坐标减15,把角色血条移动都了格子中间位置:

10.png



   然后,使用区域多点找色,在格子范围内查找血条,这样高的怪物的血条就不会超出格子范围。



游客,如果您要查看本帖隐藏内容请回复







联系我时,请说是在 挂海论坛 上看到的,谢谢!
5.png



上一篇:XNF卡牌对对翻
下一篇:XNF六点刷新疲劳值时从第一个角色开始执行
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

2

积分

0

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
2
海币
4
交易币
0
发表于 2015-3-30 11:52:45 | 显示全部楼层
无回帖,不论坛,这才是人道。

13

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
13
海币
41
交易币
0
发表于 2015-4-21 15:19:25 | 显示全部楼层
再接再厉,一直都在支持你,加油..

7

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
7
海币
0
交易币
0
发表于 2015-4-22 08:02:12 | 显示全部楼层
謝謝大大分享 ;P
3正式会员
109/300

109

积分

61

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
48
海币
3009
交易币
0
发表于 2015-4-30 22:04:31 | 显示全部楼层
虽然不需要  可还是谢谢楼主  辛苦了

8

积分

4

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
4
海币
1026
交易币
0
发表于 2015-5-20 14:55:46 | 显示全部楼层
先感谢下,楼主辛苦了!来看看一下

1

积分

0

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
0
交易币
0
发表于 2015-8-12 15:05:05 | 显示全部楼层
我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!

37

积分

18

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
19
海币
1106
交易币
0
发表于 2015-8-18 16:02:42 | 显示全部楼层
楼主,你的高尚情.真的太让我感动~

1

积分

0

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
96
交易币
0
发表于 2015-8-18 16:56:27 | 显示全部楼层
111111111111

1

积分

0

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
5
交易币
0
发表于 2015-8-18 17:06:24 | 显示全部楼层
回帖纯属支持楼主,希望楼主多奉献好的作品。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-3-28 23:31 , Processed in 0.430029 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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