- 副管理员
- 742060
- 2274
- 5
- 823 朵
- 10765 个
- 561 个
- 48300
- 2011-08-18
|
1#
t
T
发表于 2015-11-05 17:14
|
|只看楼主
红包游戏第二弹【航海喵】 
本文由按键学院提供技术支持 按键学院交流①群(1群已满):376122403 按键学院交流②群(2群):372671254 按键学院交流③群(3群):170084238 【按键学院】安卓课程(115768679)
在上一期的院刊中给大家带来了抢红包游戏中的【连连看】游戏的源码分析思路。大家对于这种抢红包的小游戏都比较刚兴趣,所以那今天给大家带来的是另外一款游戏的源码和分析思路——【航海喵】 | 游戏玩法我们还是先来熟悉下这个游戏的玩法  - 您所在的用户组无法下载或查看附件
游戏规则其实很简单,就是在猫不断下滑的过程中移动小猫的位置来躲避两旁出现的障碍物。这游戏里出现的障碍主要有一下几种: 鲨鱼:  - 您所在的用户组无法下载或查看附件
 - 您所在的用户组无法下载或查看附件
铁矛:  - 您所在的用户组无法下载或查看附件
 - 您所在的用户组无法下载或查看附件
漩涡:  - 您所在的用户组无法下载或查看附件
思路分析这游戏的障碍物出现的位置相对来说比较固定,所以我们可以把这河道划分成三段区域,把小猫的移动简化成三段区域的移动  - 您所在的用户组无法下载或查看附件
根据这种情况,我们的思路就可以有了 先定义下初始的位置为1号位置,对于铁矛的判断,左边出现了铁矛,就移动到2号位置,右边出现铁矛,就移动到1号位置。 对于鲨鱼的判断,有两种朝向的鲨鱼,判断如果是朝左游的鲨鱼,则移动到2号位置,反之就移动到0号位置 对于漩涡的判断,漩涡可能会出现在这三个位置,所以需要判断它的X坐标区间,从而移动小猫的位置避开 |
为了方便我们控制小猫的移动,我们需要编写一个移动的函数,用来快速的移动小猫到指定的位置上 - Function 移位(定位)
- If 定位 = 1 Then
- If 位置 = 0 Then
- Swipe 169, 429, 321, 424
- 位置 = 1
- ElseIf 位置 = 2 Then
- Swipe 468, 423, 321, 424
- 位置 = 1
- End If
- ElseIf 定位 = 0 Then
- If 位置 = 1 Then
- Swipe 321, 424, 169, 429
- 位置 = 0
- ElseIf 位置 = 2 Then
- Swipe 468, 423, 169, 429
- 位置 = 0
- End If
- ElseIf 定位 = 2 Then
- If 位置 = 0 Then
- Swipe 169, 429, 468, 423
- 位置 = 2
- ElseIf 位置 = 1 Then
- Swipe 321, 424, 468, 423
- 位置 = 2
- End If
- End If
- End Function
复制代码有了这样的函数,就可以快速的判断当前的位置进行相应的移动 完整代码- Dim intx,inty
- Dim 位置 = 1 '定位初始位置
- Function 航海喵
- Dim 右矛 = Array(252,1100,810,1500,"A38369","2|21|836A56,92|8|A38369,16|-17|5C2E16")
- Dim 左矛 = Array(252,1100,810,1500,"A38369","-3|14|836A56,-18|-20|5C2E16,-144|6|A7866C")
- Dim 左鲨鱼 = Array(252,1100,810,1500,"938D88","34|4|1D27A5,-5|10|1D27A5,-18|5|FFFFFF")
- Dim 右鲨鱼 = Array(252,1100,810,1500,"938D88","-32|1|1D27A5,12|7|1D27A5,24|4|FFFFFF")
- Dim 漩涡 = Array(252,1100,810,1500,"C5A126","-8|-42|C5A126,-37|-8|C5A126,3|12|C5A126")
- Do
- KeepCapture
- If FindColorEx(右矛) Then
- Call 移位(0)
- ElseIf FindColorEx(左矛) Then
- Call 移位(2)
- ElseIf FindColorEx(左鲨鱼) Then
- Call 移位(2) '鲨鱼朝左游,小猫移动到右边
- ElseIf FindColorEx(右鲨鱼) Then
- Call 移位(0) '鲨鱼朝右游,小猫移动到左边
- ElseIf FindColorEx(漩涡) Then
- If intx < 257 Then
- Call 移位(2) '漩涡在左边,小猫移动到右边
- ElseIf intx > 392
- Call 移位(0) '漩涡在右边,小猫移动到左边
- Else
- Call 移位(0) '漩涡在中间,小猫移动到右边
- End If
- End If
- Delay 100
- Loop
- End Function
- Function 移位(定位)
- If 定位 = 1 Then
- If 位置 = 0 Then
- Swipe 169, 429, 321, 424
- 位置 = 1
- ElseIf 位置 = 2 Then
- Swipe 468, 423, 321, 424
- 位置 = 1
- End If
- ElseIf 定位 = 0 Then
- If 位置 = 1 Then
- Swipe 321, 424, 169, 429
- 位置 = 0
- ElseIf 位置 = 2 Then
- Swipe 468, 423, 169, 429
- 位置 = 0
- End If
- ElseIf 定位 = 2 Then
- If 位置 = 0 Then
- Swipe 169, 429, 468, 423
- 位置 = 2
- ElseIf 位置 = 1 Then
- Swipe 321, 424, 468, 423
- 位置 = 2
- End If
- End If
- End Function
- Function FindColorEx(ColorArr)
- FindMultiColor ColorArr(0), ColorArr(1), ColorArr(2), ColorArr(3), ColorArr(4), ColorArr(5), 0, 0.9, intX, intY
- If intX > -1 Then
- FindColorEx = True
- Else
- FindColorEx = False
- End If
- End Function
复制代码 - 您所在的用户组无法下载或查看附件
学院院刊总目录:http://bbs.anjian.com/showtopic-584228-1.aspx
|