按键精灵游戏开发教程

按键精灵游戏开发教程

ID:14730192

大小:4.07 MB

页数:10页

时间:2018-07-30

按键精灵游戏开发教程_第1页
按键精灵游戏开发教程_第2页
按键精灵游戏开发教程_第3页
按键精灵游戏开发教程_第4页
按键精灵游戏开发教程_第5页
资源描述:

《按键精灵游戏开发教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、的游戏例子中,角色、怪物横着走一步是48个像素点,竖着走一步是32个像素点。(不是所有2D游戏都是这样的规格)那么,如何知道一步的距离是多少呢?    我们可以获取角色血条的第一个像素点坐标,然后向上移动一步,再次获取血条第一个像素点坐标。y坐标的差值,即是竖走一步的距离,用同样的方法,横走一步即可获得横走一步的距离规律2:     离角色越近的怪物,格子的圈数越少。经过图片的分析,情况一目了然。   以角色为中心,一圈圈往外扩散,不正是渐开线么。渐开线找怪思路1、 以角色右边一格为渐开线起始点,一圈圈往外遍

3、历格子。(不一定要角色右边一格为起始点,上下左右都可以,不要以角色为起点即可。因为咱们的角色血条也是红的,如果从角色那一格开始遍历,那么一开始就找到角色自己的血条。)2、遍历到第26个格子的时候发现怪物,角色移动过去打怪。打完怪物之后,以当前角色所在位置的右边一格为起始点,再次开始渐开线找怪。      例如:渐开线是8圈,遍历了8圈格子,其中第三圈和第五圈都有怪物。            遍历到第三圈找到怪物,角色移动到怪物点打完怪。         剩下的五圈继续遍历扩散,但不判断有没有怪物。      

4、      为什么不判断呢?            因为,打完第一只怪物之后,角色的位置变化了,           我们不能肯定,第五圈的那只怪物和当前角色所在位置的距离是最近的。步骤1、 我们已经知道,一个格子宽48像素,高32像素。第一步,以角色右边一格为渐开线起始点,也就是说x坐标要加48个像素。      以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。往左移动x坐标递减,往右移动x坐标递增。2、 第1个格子到第二个格子,y坐标加32个像素。现在问题来了,第2格到第3个要转弯,怎么转弯呢? 

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

6、,    for2 循环有循环两次。    第一次,角色转向进入for步数循环往右走一格(上图中白色格子)。    第二次,角色转向进入for步数循环往下走一格。    for2循环执行完毕,步数加1    再次进入for2 循环。    第一次,角色转向进入for步数循环往左走两格(上图中嫩绿色格子)。    第二次,角色转向进入for步数循环往上走两格。   for2循环执行完毕,步数加1    再次进入for2 循环。   依此类推。整体代码Call随机打怪()Function随机打怪()px=497-

7、9py=279-15//497,279为角色血条的第一个像素点'/*渐开找怪Do坐标X=0坐标Y=0朝向=0//[0=上、1=右、2=下、3=左]步数=1有怪=falseFor16For2朝向=朝向+1For步数SelectCaseAbs(朝向mod4)Case0坐标Y=坐标Y-1Case1坐标X=坐标X+1Case2坐标Y=坐标Y+1Case3坐标X=坐标X-1EndSelectIf有怪=FalseThenXY=Plugin.Color.FindMultiColor(px+(坐标x*48),py+(坐标y*

8、32),px+((坐标x+1)*48),py+((坐标y+1)*32),"FF0000","0

9、1

10、9C0000",1)ZB=InStr(XY,"

11、")intX=Clng(Left(XY,ZB-1)):intY=Clng(Right(XY,Len(XY)-ZB))IfIntX>=0ThenMoveToIntX+16,IntY+46LeftClick1有怪=TRUEEndIfEndIfNextNext

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。