昨天看的时候发现居然只有一天时间了,于是乎准备赶着做点东西出来,计划使用两个小时做一个小项目,一个小时写文档,具体能写成什么样,就看老天了。但没想到延期了,那么可以慢慢来,先把第一部分搞出来。
TouchGFX安装什么的,相信每个参加的朋友都会写,我在这里也就不多说了。
现在开始做项目:
我希望做一个魔方,通过按钮实现魔方的转动效果,但考虑到3d画图不是两个小时搞的定的,直接做一个魔方展开图。
用ps做魔方每一个的方块(6种)。
魔方转动有三个方向,每个方向又包括3列(只考虑最简单的3阶魔方,多阶的也类似),因此要做3种(9个)按钮,为了表示层数的区别,平行于LCD转动的按钮我做成3种不同颜色。
好吧,这是最基本的资源,延期以后,我会把魔方改成3D的。。。
素材准备好了,接下来是工具。
用VS实在是大材小用了些,直接用UE吧。
新建一个项目“RubiksCube”
魔方有54个小方块,就用54个Image,起名为cube_1~cube_54,画界面的时候可以先载入同种图片,用鼠标+输入坐标的方式,大概10分钟拖完。
如果可以用数组会化简很多,可惜我不会。。。
再增加控制按钮,button,按下的图片和释放的图片都用一样的就行。
按照要求,再增加logo图片。
这时,已经可以通过点击右上角“Run Simulator”运行模拟器了。
接下来,就是代码的编写了,首先打开“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]]);
……
再运行模拟器,可以发现魔方的展开图已经发生了变化。
增加按钮事件
如是9次。
在“TouchGFX\gui\include\gui\screen1_screen\Screen1View.hpp”中增加
virtual void btn1Clicked();
……
在“TouchGFX\gui\src\screen1_screen\Screen1View.cpp”中完成上述动作
当然了,因为时间原因,这个没有写完。
但已经可以跑起来了
先睡觉,明天继续
此内容由EEWORLD论坛网友tobot原创,如需转载或用于商业用途需征得作者同意并注明出处