Axure野路子之打地鼠游戏
老板,你听我解释,我真的没在玩小游戏
突发奇想的一个主意,就是想利用Axure自带的功能实现基本的打地鼠效果,理了一下思路,感觉可行,就捣鼓了一下午,用网上的图片素材做了第一个版本,后来实现方法换了一个,也将全部素材自行绘制,非常匠(jian)心(lou)。工程文件附在最后,包含图片内容。

简单的先说一下实现的思路,核心原理就是每个地鼠洞有两个状态,利用动态面板切换状态,打中有地鼠洞状态得一分,打到空的地洞扣一分,每次对洞打击后,更新分数。
在第一个版本中,我试了一下利用每次鼠标点击触发地洞的两个状态切换,一共9个地洞,每个地洞具有一个独立的随机值函数,互相不影响,这样的效果就是随机性非常大,手快分数可以打很高,但也会出现同时9个地洞都没有地鼠出现的情况,所以这个方案被弃用了,虽然自己觉得这个玩法会更加有趣一点。
下面具体的讲解第二个方案,也是比较符合主流玩法的实现思路。
准备工作,步骤比较多,一步步来,其中数值作为参考。
导入背景图片,等比例调整大小,宽度1000就可以,并锁定。
创建一个动态面板(200*120),在状态1中导入没地鼠的地洞素材图,然后复制状态1为状态2,将状态2中的图片直接双击换成有地鼠的地洞。这样此动态面板就包含了有/无地鼠的两个状态。
将这个动态面板复制8个,也就是一共9个,分别命名m1~m9,方便后面管理,命名方式自己看明白就行。并3*3排列好,放在页面中间位置。(为了美感,9个地洞可以在开始隐藏,在点击“开始”后再显示出来)

4.接下来就是锤子的效果。导入锤子的png素材后,勾选隐藏。接下来点击页面空白处,在“页面鼠标移动时”添加用例:1).显示锤子;2).移动锤子到鼠标实时位置,这里使用了Cursor.x和Cursor.y,为了不让锤子的图片挡住真鼠标,所以在x和y上,我都偏移了一定位置(看起来稍微有点奇怪)

5.开始让锤子挥舞起来!同样还是在空白页面点击,在“页面鼠标单击时”添加用例:一个简单的旋转动画,然后再反方向旋转回来归位。记得旋转锚点一定要选择右下角,也就是锤子柄的末尾位置。这样做完后,鼠标在页面上点击的时候,锤子会有一个击打的效果。

6.拖入几个文本,用来显示得分,倒计时等,不多赘述。
放入“开始”按钮,添加鼠标点击后的效果,比如:隐藏按钮本身,让地洞显示,开始倒计时显示,显示积分等。除了这些视觉上的显示/隐藏外,还有一个非常关键但是看不见的部件:就是整个系统的的时钟。
时钟本身就是一个包含两个状态的动态面板,两个状态里面其实什么都不需要放,主要是利用动态面板定时切换的功能实现时钟功能。在“开始”按钮点击后,“时钟”动态面板开始循环,这里循环的时间决定了地洞里面地鼠出现消失的速度,这里定的是0.6S,感觉还是有点小快的。
7.接下来就是这个案例最核心的部分,即通过时钟产生随机数,并影响9个地洞的状态。在“时钟”动态面板的“状态改变时”里面共包含10个用例,最上面的用例不添加任何条件判断,只产生随机数。并将产生的随机数放入全局变量“N”中。
这里使用了random(随机)和floor(取整)两个函数:[[Math.floor(Math.random()*9)]],这样就可以取得9以内的随机整数(0~8)。

8.依然在“时钟”的“面板状态改变时”里面继续新建用例,添加条件,当放随机数的全局变量“N”=1时,9个地洞的动态面板中的m1切换为状态1(有地鼠),其他8个地洞状态为状态2(没地鼠)。然后将这个用例复制一个,设置条件,当“N”=2时,设置m2的状态为1,其他8个地洞状态为2。以此类推,一共需要9个这样的用例,与9个地洞一一对应。
注意,第9个地洞对应的随机数是0,而不是9。
所有用例添加完毕后,需要全部选中,鼠标右键,将这里的9个用例切换为“if”模式(不包括产生随机数的用例)


准备工作到现在就算完毕了(手动狗头),后面就比较容易。
接下来在每个地洞上添加用例,当锤子砸到地洞的时候,没有有地鼠时,往积分上减1:添加条件当前面板状态为“2”时,先将得分的文本“score”放入局部函数LVAR1中,并将LVAR1-1后放入全局变量“S”。再将“S”当前的数值赋予给“score”,实现得分数据的实时更新。
加分效果只需要判断面板状态为“1”时,将LVAR1+1即可,并且将这个面板的状态立即切换为“2”。
为了效果真实,在对地洞的点击时,需要将锤子的旋转效果复制过来。

其他进度条,总结面板等效果可以自行发挥~
源文件已上传,有兴趣可以下载。











































































