[原创] TouchGFX设计+做一个魔方(1)

tobot   2019-4-10 00:06 楼主
昨天看的时候发现居然只有一天时间了,于是乎准备赶着做点东西出来,计划使用两个小时做一个小项目,一个小时写文档,具体能写成什么样,就看老天了。但没想到延期了,那么可以慢慢来,先把第一部分搞出来。
TouchGFX安装什么的,相信每个参加的朋友都会写,我在这里也就不多说了。
现在开始做项目:
我希望做一个魔方,通过按钮实现魔方的转动效果,但考虑到3d画图不是两个小时搞的定的,直接做一个魔方展开图。
ps做魔方每一个的方块(6种)。
blue.png green.png orange.png purple.png red.png yellow.png
魔方转动有三个方向,每个方向又包括3列(只考虑最简单的3阶魔方,多阶的也类似),因此要做3种(9个)按钮,为了表示层数的区别,平行于LCD转动的按钮我做成3种不同颜色。
up1.png right.png turn1.png turn2.png turn3.png

好吧,这是最基本的资源,延期以后,我会把魔方改成3D的。。。
素材准备好了,接下来是工具。
VS实在是大材小用了些,直接用UE吧。
新建一个项目“RubiksCube
创建项目.png
魔方有54个小方块,就用54Image,起名为cube_1~cube_54,画界面的时候可以先载入同种图片,用鼠标+输入坐标的方式,大概10分钟拖完。
魔方展开.png
如果可以用数组会化简很多,可惜我不会。。。
再增加控制按钮,button,按下的图片和释放的图片都用一样的就行。
添加按钮.png
按照要求,再增加logo图片。
添加logo.png
这时,已经可以通过点击右上角“Run Simulator”运行模拟器了。
模拟器界面.png
接下来,就是代码的编写了,首先打开“TouchGFX\gui\src\screen1_screen\Screen1View.cpp”,添加资源:
#include "BitmapDatabase.hpp"
Bitmap blockrgb[6];
int rgbrange[55];
Screen1View::Screen1View()内,增加
blockrgb[0]=Bitmap(BITMAP_ORANGE_ID);
        blockrgb[1]=Bitmap(BITMAP_GREEN_ID);
        blockrgb[2]=Bitmap(BITMAP_RED_ID);
        blockrgb[3]=Bitmap(BITMAP_BLUE_ID);
        blockrgb[4]=Bitmap(BITMAP_PURPLE_ID);
        blockrgb[5]=Bitmap(BITMAP_YELLOW_ID);
        for(int i=0;i<9;i++)
        {
                rgbrange[i+1]=0;
                rgbrange[i+10]=1;
                rgbrange[i+19]=2;
                rgbrange[i+28]=3;
                rgbrange[i+37]=4;
                rgbrange[i+46]=5;
        }
cube_1.setBitmap(blockrgb[rgbrange[1]]);
……

再运行模拟器,可以发现魔方的展开图已经发生了变化。
界面完成.png

增加按钮事件
增加按键事件.png

如是9次。
在“TouchGFX\gui\include\gui\screen1_screen\Screen1View.hpp”中增加
虚函数.png
virtual void btn1Clicked();
……

在“TouchGFX\gui\src\screen1_screen\Screen1View.cpp”中完成上述动作
向上.png
当然了,因为时间原因,这个没有写完。 未完成.png
但已经可以跑起来了
上行一步.png
先睡觉,明天继续
此内容由EEWORLD论坛网友tobot原创,如需转载或用于商业用途需征得作者同意并注明出处


回复评论 (4)

22点开始,24点提交,对自己的效率还是不满意啊。。。
点赞  2019-4-10 00:08
效率好高。活动进行延期了哦。可能你看的时候刚好时间还没刷新。
点赞  2019-4-10 09:10
引用: tobot 发表于 2019-4-10 00:08
22点开始,24点提交,对自己的效率还是不满意啊。。。

记得录个最后作品的视频提交上来哦
点赞  2019-4-10 09:11
服务器大全
点赞  2019-4-11 08:57
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复