百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

用Axure 实现“打飞机”,骚年,来一发(上)

wuantov 2025-07-21 18:19 6 浏览

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。

看到标题想歪的,请先面壁三秒钟,我向来是一位严肃正经有节操的人。

话说,前段时间忽然怀念微信5.0的黑白版的飞机大战,进微信游戏大厅寻了个遍,好像找不到了,有种物是人非的赶脚。突发奇想利用业余时间用Axure打造了一个飞机大战,在空虚寂寞冷的时候可以撸一把。效果如下方左图

一、功能描述

  1. 有无限多的敌机无耻地向你扑面而来;
  2. 你用键盘的方向键控制战斗机参加战斗(被敌机撞击算报废,你一共有3架战斗机);
  3. 战斗机可以源源不断地向敌机发射子弹;
  4. 计分系统(打掉一架敌机得100分);
  5. 难度等级系统(打10架敌机增加一个难度等级,敌机飞行速度加快);

因为涉及知识点比较多,又希望将他们描述清楚,所以本文只实现上方右图的效果。①让敌机循环飞行②让子弹连续发射。请基础较好的童鞋见谅。

二、素材准备

敌机.png、战斗机.png、子弹.png(为了效果好,老老实实用PS抠出2个透明背景的飞机,此处省略N个字)、拉出四个矩形用途和尺寸分别为:450*530px作为背景、2个450*42px分别作为地面和天花板、开始按钮。将敌机.png、战斗机.png、子弹.png按照下图方式打包成“战斗机+子弹”、“敌机-壳”两个动态面板。

三、构建敌机循环飞行效果

实现方法:

用一个空的动态面板命名为“循环”,协助敌机实现循环飞行。流程开始后,设置动态面板“循环”显示→“循环”显示后触发:“敌机-壳”复位:移动敌机到界面顶部绝对位置(范围内随机,0)的位置and启动飞机:相对位置移动敌机(0,1),“敌机-壳”在移动的情况下设置用例→如果“敌机-壳”撞击到地面,隐藏“循环”“循环”隐藏后触发显示“循环”的用例→“敌机-壳”未接触到地面,则继续向下飞行,从而达到敌机飞行的循环。具体流程图如下所示:

在上述流程图中,红色的闭环促进敌机不断地继续向前飞行,蓝色的闭环促进敌机不断重现。

下面贴出“循环”“敌机-壳”的交互用例

四、构建子弹连续射击效果

根据同样的原理,我们可以做出子弹循环向上飞行的样子。区别在于①子弹飞行的方向在纵坐标的负方向。②子弹飞行速度较快。③子弹在“子弹轨道”这个动态面板里飞行。因此子弹在移动时触发每一个移动单位是(0,-20),子弹撞击天花板之后复位的位置是绝对位置(0,390)。具体用例不在此复述。

五、函数讲解

在上述用例中出现两处函数,在此进行简单讲解

1、敌机撞击地面后,触发“循环”对敌机进行复位的用例

[[Math.floor(Math.random()*300+80)]]

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、敌机正常飞行用例中的函数

[[Math.log(level)+0.5]]

写到此我居然忘了一件重要的事情,为以后完善游戏的难度系统做准备,我们应该建立两个全局变量“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找我。

作者提供源:

人人官方源:

作者:@陈滨淋,国内某知名电商公司产品总监,起点学院北京1508期优秀学员。

本文由人人都是产品经理专栏作家 @陈滨淋(微信公众号:iambin) 独家发布于人人都是产品经理 。未经人人都是产品经理许可,禁止转载。违者追究责任,谢谢合作。

相关推荐

SQL关联各种JOIN傻傻分不清楚,读这一篇就够了

在关系型数据库中支持多表关联,不同场景下通过不同join方式让分布在不同表中的数据呈现在同一个结果里。熟练使用sql联合查询是日常开发的基础工作。为了方便演示讲解,假设有两个表,一张是保存学生踢足球的...

MyBatis的SQL执行流程不清楚?看完这一篇就够了

推荐学习真香警告!Alibaba珍藏版mybatis手写文档,刷起来全网独家的“MySQL高级知识”集合,骨灰级收藏,手慢则无前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行...

SQL优化这十条,面试的时候你都答对了吗?

尽量不要在要给在SQL语句的where子句中使用函数,这样会使索引失效。如果已经确定查询结果只有一条数据(当表中数据的该字段是唯一的),在查询SQL末尾增加limit1,这样MySQL的查询执行引...

SQL查询Excel结果数据还可这样输出到窗体控件ListBox和ListView

上一期作品,我们分享了通过SQL查询Excel的结果数据输出到Excel自身的工作表区域。大家估计应该感觉到了SQL查询的强大功能,它对精确或模糊查询均无畏惧,优点是查询检索效率高,将查询结果输出的形...

数据库|SQLServer数据库:模糊查询的三种情况

哈喽,你好啊,我是雷工!就是字面意思,当数据库的查询条件并不是十分具体时就用到模糊查询,比如查询姓氏为雷的人名,就需要从姓名列模糊查询。01like关键字查询当使用like关键字进行查询时,字段中的...

数据库教程-SQL Server多条件模糊查询

表单查询是以数据存储管理为基础的信息管理系统各业务功能实现的基础,也是数据库CRUD操作的重点与难点,尤其是多表连接查询、条件查询、分组查询、聚合函数等的综合应用。本文以某一比赛样式要求为基础,对数据...

如何利用教育网站源码成功搭建在线教育网站

如今是一个信息化时代,人们都想接受各种各样的教育,在线教育也就因此发展了起来,并且逐渐成为了一种趋势。而成熟的在线教育网站皆是由高质量的教育网站源码搭建而成的。如何利用教育网站源码成功搭建在线教育网站...

宝塔搭建WordPress跨境电商外贸商城模板汉化woodmart7.5.1源码

大家好啊,欢迎来到web测评。本期给大家带来一套php开发的WoodmartV7.5.1汉化主题|跨境电商|外贸商城|产品展示网站模板WordPress主题,是wordpress开发的。上次是谁要的系...

小狐狸ChatGPT付费创作系统V2.4.7全开源版 (vue全开源端)

测试环境:Nginx1.20+PHP7.4+MySQL5.7本版本为官方的最新开源包对应V2.4.7版本,包含了前后端所有开源包,是目前最新全开源版本,需要二开的这部分朋友也有选择了,如果不需要二...

php宝塔搭建部署thinkphp红色大气装修公司官网php源码

大家好啊,欢迎来到web测评。本期给大家带来一套php开发的thinkphp红色大气装修公司官网源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测...

php宝塔搭建免登录积分商城系统php源码

大家好啊,欢迎来到web测评。本期给大家带来一套php开发的免登录积分商城系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...

零代码搭建接口收费平台——接口大师YesApi

主流的API接口收费模式目前各大API接口平台,采用的收费模式主可以分为:免费接口、免费试用、接口流量套餐、先充值后按量计费的模式。例如,聚合数据的API收费模式是:按接口流量套餐。例如身份证二要素...

php宝塔搭建部署实战抽奖系统开源php源码

大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套抽奖系统开源php源码。感兴趣的朋友可以自行下载学习。技术架构PHP5.4+nginx+mysql5.7+JS+CSS+...

【推荐】一款开源个人与企业私有化部署使用的在线知识库管理平台

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍zyplayer-doc是一款基于Java+Vue开源、专注于个人与企业私有化部署使用的在线知识库管...

网上的付费文档无法下载?这几个方法10秒搞定,任意免费复制

工作或者学习过程中,我们很多时候需要在网上找资料,但是想要的资料却要付费或者提示无法下载怎么办?别怕,这几个方法,让你10秒就能搞定付费文档,任意复制。1.打印界面复制遇到文档需要付费或者无法复制的...