这次的2048游戏作业难度有点大,一方面是各种控件的综合应用,另一方面最令人头疼的就是算法实现了。营里面有两位大神令我印象深刻:一位是 MeetWit(关先生),他最先实现了2048的逻辑算法,令人吃惊的是,他只是一个大四在校生,后生可畏(哎,其实我不老);另一位,我觉得绝对算的上是营里的带头大哥了“ABC大佬-洪爷”,他最先实现了2048的“商业版本”,我倾尽全力,亦不能望其项背。能认识这两位大佬,真好!感谢RTT官方!
我之前两篇帖子详细介绍了柿饼UI工具的使用方法,还粗略讲了点UI设计的个人体会,此处不再赘述。下面还是先上我的成果代码和视频,请各位移驾GitHub查看。
GitHub工程代码、成果视频仓 详细的基本制作过程,请参见“ABC大佬-洪爷”的帖子
洪爷の示。我想多讲一点我跟大家不一样的实现方法——“伪触屏操控”。这周官方没有发布滑屏操作的API,建议我们用4个button实现2048数字的四个方向移动。对于学习来讲,这个建议特别中肯,但我想到更多的是,我怎么才能最大程度发掘我现有的资源?假如客户必须要求跟手机一样是滑屏操作怎么办?我就仔细观察每个组件,发散他们的应用。这也得感谢柿饼UI工具的强大,我找到了,Slider(滑块控件)。如下图所示:

还有它的属性:

下面是Event事件中,它的属性:


当时我在想怎么实现滑屏操作的时候,看这一页看了好久,一个灵感就浮现在我的脑海里。我不妨垂直摆放两个slider控件,交叉点类似坐标原点,那么,您明白了吗?判断坐标原点四周的值是不是就能实现滑屏了?令值为50的时候为中心点,小于的可标记为左或者下,大于的可标记为右或者上,这样每次划的时候,幅度划大一点,这样不就实现滑屏了?做到这点还不够,不能再显示界面上把这个组件显示出来吧,显示出来就全露馅了,所以隐藏起来! 再次感谢柿饼UI工具的强大,这些功能,控件都支持。下图是部分关键操作和代码:

如此摆放;

删掉它华丽的外表,就透明隐藏起来了,6不6?

方向识别和对应方向动作处理的关键代码,相见github.
这样的话,就是识别你手指滑动的方向,然后就能满足假象客户的需求了,我觉得,做项目,凡事多想一点,对自己要求高一点,总是会避免很多坑的吧。
我的代码虽然基本功能都实现了,但是还有很多BUG,算法效率低下。希望大家多多斧正,感激不尽!
RT-Thread 真是一家有爱的公司,它的全家桶真的是造福了广大物联网从业着,希望自己有一天也能为RT-Thread的发展贡献 自己的一点力量!
DaZhou
查看更多