嗨玩手游网

【3.使用脚本开发游戏】1的设计

1的设计

本章我们通过一个简单的游戏开发来介绍游戏的开发方法。

3.1游戏的策划

对于游戏来说,不像应用程序那样显示响应的界面然后做逻辑处理就可以了。游戏,至少其画面是根据玩家的输入而发送变化的。本章我们实现一个“大转盘”游戏,很简单,当玩家单击大转盘后,让大转盘转动起来,并随着时间的推移,旋转速度越来越慢直到停止。

3.2游戏的制作步骤

游戏的一般制作步骤:

列出游戏画面中的所有对象;确定游戏对象运行时需要哪些控制器脚本;确定自动生成游戏对象需要哪些生成器脚本;准备用于更新 UI 的调度器脚本;思考脚本的编写流程。

对于上面的“大转盘”游戏,设计如下:

第一步:列出画面中的所有对象:

这个游戏比较简单,游戏中需要用到“转盘”和“指针”,如下图所示:

指针:

转盘:

第二步:确定游戏对象运行时需要哪些控制器脚本

用来控制游戏对象的行为的脚本称为控制器脚本。很显然,对于这个游戏来说,需要控制转盘旋转的脚本。

第三步:确定自动生成游戏对象需要哪些生成器脚本

在游戏中,有些对象是在玩家玩游戏的过程中生成的,比如:当玩家足够强大的时候出现一个足够强大的敌人等,这个敌人就是游戏过程中被生成的对象。在游戏过程中用来创建各个游戏的脚本称为生成器脚本。

很明显,对于这个游戏来说,不需要生成器脚本。

第四步:准备用于更新 UI 的调度器脚本

在游戏中,一般都会有通过游戏 UI 来操作游戏并能够及时了解游戏进度,也就是能够“总览全局”的脚本,我们称为调度器脚本。

很明显,对于这个游戏来说,不需要调度器脚本,因为这个游戏太简单了。

第五步:思考脚本的编写流程

一般情况下,我们可以按照 "控制器脚本" -> "生成器脚本" -> "调度器脚本" 的顺序来编写脚本。

对于本章的“大转盘”游戏来说,只需要一个控制器脚本。

3.3游戏的制作流程创建工程配置对象编写脚本挂载脚本

关于“合成类”游戏脚本的编写思路

大家好,我是公众号3分钟学堂的郭立员~

合成类游戏基本玩法就是同样游戏角色拖动到一起,就可以合成一个高一级别的新角色。

对于我们写脚本来说,首要解决的问题就是如何准确识别角色的级别,以上图为例,每个人物左侧有一个编号,这个数字就是角色的等级。

针对于这个游戏,人物虽然在不停的颤动,但是级别的数字是固定不动的。所以这个对于我们识别是比较容易的。

在识别的过程中,为了提高识别效率,我们只识别12个人物所在的位置区域,当然别的游戏可能16格或者更多,暂时不考虑无格子的类型啊。

识别完第一个人物等级,再识别第二个人物等级,这个识别范围的变化是有规律的,先横向依次移动4个格子,然后在第二行、第三行执行同样的操作。这种代码表示就是双重循环。

For j = 0 To 2 For i = 0 To 3 //要循环的内容 NextNext

假定我们初始位置是x0,y0,也就是下图中红框左上角的点坐标。

红框的大小是每个人物占的位置,宽度x,高度是y,这个距离一定要测量准确,不能瞎填。

得到上面的数据以后,我们的找图范围就可以定下来了。

x0+i*x,y0+j*y,x0+(i+1)*x,y0+(j+1)*y

For j = 0 To 2 For i = 0 To 3 //找图范围是 x0+i*x,y0+j*y,x0+(i+1)*x,y0+(j+1)*y NextNext

这个范围是随着循环而有规律变化的,保证每次循环找不同区域。

下面是识别数字,我的思路是从小到大,原因是小的人物合成会变成大一级别的人物。这样识别操作会友好一些,不过也不唯一看个人习惯。

接下来要解决的拖动合成问题了,拖动合成分两个步骤:

①确定有两个一样等级(数字相同)的人物,获取他们的坐标。

②把第一个人物拖动到第二个人物上。

我解决这个问题的思路是,用一个数组存储坐标。

比如,我获取到等级为11的人物坐标,当获取到第一个以后,我会先存入数组中备用,之后我会继续往后识别看看还有没有等级11的人物。

到这里有两种可能性:一是还有1个或多个等级11的人物,二是没有等级11的人物。

先说第一种情况:还有等级11的人物,把获取到第二个等级11人物的坐标再次存入到之前的数组中。这时数组里面就有两组坐标。之后加个判断当数组里面有两个内容以后,执行拖动人物的操作(滑动)。下面的操作很关键,拖动完以后,原有的坐标已经没用了,清空数组里面的坐标,开始新的识别操作,以上操作重复执行。

第二种情况:也就是没有识别到等级11的人物,那么此时说明整个画面上就只有一个11级的人物,那么11级的识别结束到此为止。开始识别等级12的人物。这个时候一定要注意,也要清空数组的坐标,否则会出现这种情况:就是数组中存在等级11的坐标,又再得到一个等级12的坐标,误以为两个是同等级人物的坐标,而执行了拖动人物合成的操作。

关于拖动人物合成这一步就比较简单,一个滑动命令解决了,每次拖动成功以后,点一下购买新的人物,补充因合成后造成的空缺。

在识别的时候,我是用的找图命令,每个数字截一个图,之后每张图用数字命名,目的是把循环的计次变量作为找图的名称。

比如像找等级6-10,就可以这样写,n作为图片名称的变量。

For n = 6 To 10 FindPic 0, 0, 0, 0, "Attachment:"&n&".png","000000", 0, 0.9, intX, intY If intX > -1 And intY > -1 Then End IfNext

关于合成基本思路就是这样的,这类有固定格子的都可以用这个思路。当然也会有一些“意外情况”,比如金币不足,出现飞过去的宝箱等等,遇到这种情况加上对应的判断。

好了内容就这些,最后还是老规矩点赞、转发、留言、在看一条龙服务

更多攻略
游戏推荐
更多+