最近垃圾分类这个概念很火,许多人都在朋友圈玩到过垃圾分类的h5。所以给大家提供了这种类型的小游戏的实现思路。
最后实现效果如下面这个动图所示,把垃圾拖动到垃圾桶上,垃圾桶会打开。拖走垃圾桶会关闭。拖动到正确的垃圾桶上可以把垃圾扔进去,拖到错误的会提示不要乱扔垃圾。扔完后提示已经答完题。这些逻辑就包括这个游戏的一些必要要素:
- 拖动垃圾错误处理
- 拖动垃圾正确处理
- 简易的动画效果
- 切换下一题
- 答题结束处理
大家可以根据这些要素拓展,制作自己的垃圾分类小游戏。比如可以加入音效,让垃圾桶打开关闭发出砰砰的声音。增加分数计算,最后根据分数结算,给出不同的反馈等。
这个小游戏的逻辑核心事件很简单,就是利用重叠判断垃圾与垃圾桶的接触。大家可以看到,在垃圾和 桶1下面各有一个矩形和圆形,实际上就是检测这两个图形之间的重叠。当两者重叠,说明垃圾被拖动到垃圾桶上方,然后我执行的动作是播放一个动效,然后用自定义属性status记录了被扔的垃圾桶。如果被拖走了(结束重叠),就把status设置为初始值0。
1,2,3,4分别代表了4个垃圾桶,那么后面我通过status就可以判断垃圾是被扔到哪个垃圾桶,从而判断是否正确。这一段动作主要是记录被扔的垃圾桶以及播放对应的动画。
接着在垃圾(zu)上来判断是否正确拖放垃圾来进行对应的操作。大家注意,在这个案例中,你需要把垃圾(zu)设置为可拖动的。然后在这里进行拖动垃圾桶分类正确的动作,以及分类错误的动作,切换下一个垃圾,答题结束的判断。
首先来看分类正确的执行动作:指针是我用来标示扔到第几个垃圾了,初始值为0。然后垃圾·值是一个二维数组,储存着我们要扔的垃圾。指针为0级代表我们现在扔的是数组第一行的垃圾(数组行号从0开始计算)。
如果当前对象(即垃圾(zu)),目前被扔的垃圾桶(status)和它应该被扔的垃圾桶(rightstatus)是一致的,说明我们扔对了。
那么我们把指针加一,也就是切换到下一个垃圾。同时,如果指针小于垃圾这个数组行数,说明垃圾还没被扔完,那么我们就把垃圾设置成下一个,然后让其可见。如果大于,说明已经扔完了,给个答题结束的提示。
那么如果扔错了怎么处理,那么给个1s的提示,提示结束后再让垃圾(zu)显示出来。
这就是完整的逻辑,一共只有两个事件,制作起来非常简单。大家可以根据这个实现思路去增加内容丰富这个小游戏。当然,这也只是其中一种实现思路,大家也可以使用自己的思路的来制作。