【PersimmonUI柿饼学习营】+ DaZhou + 2048游戏 + 一周感悟

2018-9-2 20:01 [复制链接] 7 1601

       这次的2048游戏作业难度有点大,一方面是各种控件的综合应用,另一方面最令人头疼的就是算法实现了。营里面有两位大神令我印象深刻:一位是 MeetWit(关先生),他最先实现了2048的逻辑算法,令人吃惊的是,他只是一个大四在校生,后生可畏(哎,其实我不老);另一位,我觉得绝对算的上是营里的带头大哥了“ABC大佬-洪爷”,他最先实现了2048的“商业版本”,我倾尽全力,亦不能望其项背。能认识这两位大佬,真好!感谢RTT官方!! `1 a9 ]" H& G  m. m& e/ D! M' {
       我之前两篇帖子详细介绍了柿饼UI工具的使用方法,还粗略讲了点UI设计的个人体会,此处不再赘述。下面还是先上我的成果代码和视频,请各位移驾GitHub查看。. Z3 H3 T+ I! {( z7 l
       GitHub工程代码、成果视频仓" T- j8 y' b) L

6 m7 U" A8 t: y3 F  @! S$ k       详细的基本制作过程,请参见“ABC大佬-洪爷”的帖子洪爷の示。我想多讲一点我跟大家不一样的实现方法——“伪触屏操控”。这周官方没有发布滑屏操作的API,建议我们用4个button实现2048数字的四个方向移动。对于学习来讲,这个建议特别中肯,但我想到更多的是,我怎么才能最大程度发掘我现有的资源?假如客户必须要求跟手机一样是滑屏操作怎么办?我就仔细观察每个组件,发散他们的应用。这也得感谢柿饼UI工具的强大,我找到了,Slider(滑块控件)。如下图所示:
# o! {$ h: F7 g8 B# n, h' I% y       1535888313(1).jpg % q& |  v# k$ t
       还有它的属性:( b5 c9 _! W" q9 n3 H
       1535888354(1).jpg + h3 |" f1 A% H/ k
       下面是Event事件中,它的属性:* _. m2 e/ R& \  m! @+ L9 U
         1535888481(1).jpg 1535888499(1).jpg
8 N8 h4 J2 J+ b        当时我在想怎么实现滑屏操作的时候,看这一页看了好久,一个灵感就浮现在我的脑海里。我不妨垂直摆放两个slider控件,交叉点类似坐标原点,那么,您明白了吗?判断坐标原点四周的值是不是就能实现滑屏了?令值为50的时候为中心点,小于的可标记为左或者下,大于的可标记为右或者上,这样每次划的时候,幅度划大一点,这样不就实现滑屏了?做到这点还不够,不能再显示界面上把这个组件显示出来吧,显示出来就全露馅了,所以隐藏起来! 再次感谢柿饼UI工具的强大,这些功能,控件都支持。下图是部分关键操作和代码:% ]$ |9 Y; d8 o; z
       1535888958(1).jpg 如此摆放;2 P6 D( L+ v( h( u4 t0 ~- j
( z% z8 O& p0 d8 F% d! N

3 O& r2 P& V6 W& H" b+ _  Q       1535889059(1).jpg 删掉它华丽的外表,就透明隐藏起来了,6不6?; f) A; A: Z; V; a2 A/ R( o

# W- e! u: z# C8 k" ]       1535889254(1).jpg 方向识别和对应方向动作处理的关键代码,相见github.
7 W- n2 m- W  e: b5 o0 G" j+ b: ^' o( }  E- f
      这样的话,就是识别你手指滑动的方向,然后就能满足假象客户的需求了,我觉得,做项目,凡事多想一点,对自己要求高一点,总是会避免很多坑的吧。2 B; Y; m0 y. G+ }1 }, I

% E2 G/ N% Z/ i# C2 S      我的代码虽然基本功能都实现了,但是还有很多BUG,算法效率低下。希望大家多多斧正,感激不尽!
4 {2 b2 p; f$ p/ C# V      RT-Thread 真是一家有爱的公司,它的全家桶真的是造福了广大物联网从业着,希望自己有一天也能为RT-Thread的发展贡献 自己的一点力量!
5 N1 I# j0 ]6 j, o
7 \# [% i" D8 T/ P$ K- LDaZhou
* k; c% X. u# O* O
, @1 S4 @/ B1 t/ u8 C7 F
; o1 V/ X( M) x3 Y( h& R5 Z4 Z7 u! q
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2018-9-2 21:16:18 | 显示全部楼层
点个 赞
使用道具 举报 回复
发表于 2018-9-3 09:41:41 | 显示全部楼层
这个滑屏操作实现很强
使用道具 举报 回复
发表于 2018-9-3 10:17:29 | 显示全部楼层
whj467467222 发表于 2018-9-2 21:16
- w  x! F3 u. o$ i2 q3 w点个 赞
$ Q" O, S+ }. q; `; y' G' U% B2 @
谢谢,互相学习
使用道具 举报 回复
发表于 2018-9-3 10:18:35 | 显示全部楼层
MurphyZhao 发表于 2018-9-3 09:41. p2 }* w! V. [7 f7 C
这个滑屏操作实现很强
* K: u- E+ E- R: A- r& M5 Z& l( b+ ^
过奖啦,心有灵犀一点通
使用道具 举报 回复
发表于 2019-1-3 20:09:33 | 显示全部楼层
楼主你好,我一直有个疑问,就是柿饼UI是在RT_thread系统之上跑起来的,还是一个独立的,仅仅是进行界面显示,换句话说是否是ucos和ucgui的运行模式,由于刚刚接触这方面的内容,不是很了解,非常感谢
使用道具 举报 回复
发表于 2019-1-23 10:24:37 | 显示全部楼层
Mr_John_Robert 发表于 2019-1-3 20:09
4 a5 v1 s4 s1 w3 n% U2 N1 I楼主你好,我一直有个疑问,就是柿饼UI是在RT_thread系统之上跑起来的,还是一个独立的,仅仅是进行界面显 ...
0 L, ]: \# R3 }* H4 x
您好,柿饼是基于RT-Thread之上跑起来的
使用道具 举报 回复
发表于 2019-9-7 15:19:10 | 显示全部楼层
实打实的项目总结呀。赞一个。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表