用Aure 实现“打飞机”,骚年,来一发(上)
Math.random()函数的作用是在[0-1]区间产生一个任意数,这个用法与该函数在Java或js里都是相通的。要函数返回指定范围的随机数(m-n之间)的公式如是:Math.random()(n-m)+m;而在本文中,我们希望敌机在[0,450]区间产生随机数,因此理论上应该是Math.random()450,其中450是背景矩形的宽度,但是由于Axure认为元件的坐标就是元件从左上角顶点的坐标,而敌机自身的宽度为72px,因此正确的表达式应该为Math.random()*(450-72),本人在试验中发现疑似由于浏览器的兼容问题,这样控制范围仍然会出现飞机飞出范围外,因此将范围进行适当缩小最终设定的公式定位文中的数据。
Math.floor()是向下取整的函数,由于Math.random()产生的是多位小数。因此在取整函数里嵌套一个随机函数的目的是在一定范围内产生一个随机整数,得益于这两个函数的使用,才让敌机能在不同轨道上飞行。
2、敌机正常飞行用例中的函数
写到此我居然忘了一件重要的事情,为以后完善游戏的难度系统做准备,我们应该建立两个全局变量“level”和“fighter”通过“level”的值来控制敌机飞行速度,通过“fighter”的值来检测战斗机剩余数量,从而随时判断游戏是否结束。在点击"开始游戏"的时候给"level"赋值2,给"fighter"赋值3这是初始化数据。回到函数的话题,这个函数的值最终将成为敌机在固定时间内(用例执行的时间是1ms固定不变)飞行的距离,也就是说敌机的飞行速度成正比。在本游戏中预想设定每击落10架敌机level的值加1,这样不同level下,敌机的飞行速度是成线性增长的。我们先来回顾一下中学时期学到关于对数函数和直线函数曲线的区别:
从上图不难看出,我使用对数函数的目的是为了控制敌机飞行速度的增量。拉长用户可升级的空间,增加游戏的可玩性。在Axure里[[Math.log(x)]]函数使用数学常量e作为对数的底(e约为2.71828),因此范围的只一定为正数。但是当x比较小的时候log(x)返回的值仍然比较小这就意味着在前几个level里飞机的飞行速度非常慢,近乎龟速,用户会没耐心玩,游戏可玩性不高。这也是为什么我会在函数后面加一个常量0.5的原因。
六、写在最后
希望感兴趣的同学别心急,先按跟着本文的进展动起来,让敌机起飞,让子弹飞一会儿!后面会更精彩。
最后照旧,献上本文效果的rp源文件,需要更多沟通的童鞋,欢迎来公众号iambin找我。
作者提供源:
链接:http://pan.baidu.com/s/1hrgjWxA 密码:nco3
人人官方源:
链接:http://pan.baidu.com/s/1c1fCqCo 密码:kue6
作者:@陈滨淋,国内某知名电商公司产品总监,起点学院北京1508期优秀学员。
本文由产品经理专栏作家 @陈滨淋(微信公众号:iambin) 独家发布于产品经理 。未经产品经理许可,禁止转载。违者追究责任,谢谢合作。
关键字:Axure, Axure教程
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!