相信很多人都玩过2048这款小游戏,文章主要是用Axure制作2048这款小游戏,一起来看看~ 2048游戏简介 游戏规则很简单,每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出"2048"这个数字方块。 以上信息来自百度百科 规则梳理 初始化:随机生成两个数字方块(随机选取位置【2个】,随机赋值【2或4】)。 滑动:数据处理(靠拢、相同相加),随机生成一个数字方块(随机选取位置【1个】并赋值(2或4】)。 结束:凑出"2048"或滑动结束时没有空余的位置供新的数字方块生成时,游戏结束。 素材准备 (1)中继器,包含列为面板(panel)、值(value)、排序(order)。 (2)动态面板,状态为0~2048。 (3)以及其他元件 思路 采用中继器为中间件。 中继器交互如下: 元件赋值只是为了自己看,可以不要。(游戏发布后要删除,否则影响运行速度) 关键点为变量赋值,面板状态切换。 初始化 通过更新行,对排序字段进行随机赋值,并按照该字段对中继器进行排序,选择第一行跟最后一行进行赋值。 为什么选择第一行跟最后一行? 因为刚好有这个函数。 如何赋值? 设置系统变量Aggregate=’24’; [[Aggregate.charAt(Math.floor(Math.random()*Aggregate.length))]]可以随机输出2或4。 滑动 先处理一行4个数据,然后其他行同上。 设置系统变量ABCD。 将改行的值赋予ABCD,ABCD按照规则进行排序后,更新到中继器中即可。 规则…. emmm 如果做编程就好了,可惜不能,所以这里选择穷举…… 以下是部分: 判断游戏状态 最大值等于2048时游戏胜利;值为0的数字方块数量等于0时,游戏失败。无论胜利、失败均结束游戏。 如游戏未结束,则在随机选择一个值为0的数字方块,生成新的数字方块(值为2或4) 2048小游戏,完工。 其他 如果不考虑颜色变化,可以不用动态面板,直接使用元件数值相加,可以做到4096…… 没穷举完,导致游戏有bug,但还是选择放出。 https://axhub.im/pro/808903f9ed03d5d0/2048.html