按键精灵游戏开发教程

上传人:lisu****2020 文档编号:137687576 上传时间:2022-08-18 格式:DOCX 页数:10 大小:97.67KB
收藏 版权申诉 举报 下载
按键精灵游戏开发教程_第1页
第1页 / 共10页
按键精灵游戏开发教程_第2页
第2页 / 共10页
按键精灵游戏开发教程_第3页
第3页 / 共10页
资源描述:

《按键精灵游戏开发教程》由会员分享,可在线阅读,更多相关《按键精灵游戏开发教程(10页珍藏版)》请在装配图网上搜索。

1、按键精灵游戏开发教程来源:按键学院 【按键精灵】渐开线找怪是一种高效率的找怪方法,以角色为中心点,向外扩散,找离角色最近的怪物。渐开线画渐开线重要的几个点:1、起始点坐标2、线与线之间的距离。3、转向。4、线长。(上图中,渐开线并不是一口气画完的,是一段线一段线的画。)游戏里的规律咱们今天讲的例子是2D游戏神涂。渐开线要怎么应用到游戏找怪呢?咱们先了解下游戏里的规律,再将渐开线套用进去。规律1: 在2D游戏里,角色、怪物移动的距离是固定的,就像走在棋盘里一样,移动一步就像走了一个格子。 在今天的游戏例子中,角色、怪物横着走一步是48个像素点,竖着走一步是32个像素点。(不是所有2D游戏都是这样

2、的规格)那么,如何知道一步的距离是多少呢? 我们可以获取角色血条的第一个像素点坐标,然后向上移动一步,再次获取血条第一个像素点坐标。y坐标的差值,即是竖走一步的距离,用同样的方法,横走一步即可获得横走一步的距离规律2: 离角色越近的怪物,格子的圈数越少。经过图片的分析,情况一目了然。 以角色为中心,一圈圈往外扩散,不正是渐开线么。渐开线找怪思路1、 以角色右边一格为渐开线起始点,一圈圈往外遍历格子。(不一定要角色右边一格为起始点,上下左右都可以,不要以角色为起点即可。因为咱们的角色血条也是红的,如果从角色那一格开始遍历,那么一开始就找到角色自己的血条。)2、 遍历到第26个格子的时候发现怪物,

3、角色移动过去打怪。打完怪物之后,以当前角色所在位置的右边一格为起始点,再次开始渐开线找怪。 例如:渐开线是8圈,遍历了8圈格子,其中第三圈和第五圈都有怪物。 遍历到第三圈找到怪物,角色移动到怪物点打完怪。 剩下的五圈继续遍历扩散,但不判断有没有怪物。 为什么不判断呢? 因为,打完第一只怪物之后,角色的位置变化了, 我们不能肯定,第五圈的那只怪物和当前角色所在位置的距离是最近的。步骤1、 我们已经知道,一个格子宽48像素,高32像素。 第一步,以角色右边一格为渐开线起始点,也就是说x坐标要加48个像素。 以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。往左移动x坐标递减,往右移动x坐标递

4、增。 2、第1个格子到第二个格子,y坐标加32个像素。现在问题来了,第2格到第3个要转弯,怎么转弯呢?咱们上面提到过: 以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。往左移动x坐标递减,往右移动x坐标递增。 也就是说:如果我们想往上走一个格子,那么x坐标不变,y坐标减少32像素。 如果想往左走,那么y坐标不变,x坐标减少48像素,依此类推。3、现在我们知道了转向的原理,那么走几格需要转向?要怎么控制?我们来看下图片分析:结合代码进行理解:步数 = 1 For 16 /这里的数字越大,渐开线范围越大For 2/转向For 步数 NextNext步数 = 步数 + 1Next初始步数为1

5、, for 2循环有循环两次。 第一次,角色转向进入for 步数循环往右走一格(上图中白色格子)。 第二次,角色转向进入for 步数循环往下走一格。 for 2循环执行完毕,步数加1 再次进入for 2循环。 第一次,角色转向进入for 步数循环往左走两格(上图中嫩绿色格子)。 第二次,角色转向进入for 步数循环往上走两格。 for 2循环执行完毕,步数加1 再次进入for 2循环。 依此类推。整体代码Call 随机打怪()Function 随机打怪() px = 497 - 9 py = 279 - 15 /497,279为角色血条的第一个像素点 /* 渐开找怪 Do 坐标X = 0 坐标

6、Y = 0 朝向 =0 / 0=上、1=右、2=下、3=左 步数 = 1 有怪 = false For 16 For 2 朝向 = 朝向 + 1 For 步数 Select Case Abs(朝向 mod 4) Case 0 坐标Y = 坐标Y - 1 Case 1 坐标X = 坐标X + 1 Case 2 坐标Y = 坐标Y + 1 Case 3 坐标X = 坐标X - 1 End Select If 有怪 = False Then XY = Plugin.Color.FindMultiColor(px + (坐标x * 48), py + (坐标y * 32), px + (坐标x + 1

7、) * 48), py + (坐标y + 1) * 32), FF0000, 0|1|9C0000, 1) ZB = InStr(XY, |) intX = Clng(Left(XY, ZB - 1): intY = Clng(Right(XY, Len(XY) - ZB) If IntX = 0 Then MoveTo IntX + 16, IntY + 46 LeftClick 1 有怪 = TRUE End If End If Next Next 步数 = 步数 + 1 Next Delay 1000 / 判断是否要使用随机传送了 If 有怪 = False Then KeyPress

8、3,1 Delay 1000 End If LoopEnd Function注意: px = 497 - 9 py = 279 - 15 /497,279为角色血条的第一个像素点 为什么在这里要减9减15呢?正常的思路应该是以角色血条左上角的第一个红色像素点作为格子的左上角,然后渐开找色,判断每个格子左上角的位置是不是红色的,是则说明有怪。但是,在神涂中,怪物的身高不一样,会导致有的怪物它的血条可能不在格子左上角位置。 所以,这里获取到角色血条第一个像素点之后,x坐标减9,y坐标减15,把角色血条移动都了格子中间位置: 然后,使用区域多点找色,在格子范围内查找血条,这样高的怪物的血条就不会超出格子范围。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!