tobot 发表于 2019-4-10 00:06

TouchGFX设计+做一个魔方(1)

<div class='showpostmsg'>昨天看的时候发现居然只有一天时间了,于是乎准备赶着做点东西出来,计划使用两个小时做一个小项目,一个小时写文档,具体能写成什么样,就看老天了。但没想到延期了,那么可以慢慢来,先把第一部分搞出来。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;int rgbrange;在Screen1View::Screen1View()内,增加blockrgb=Bitmap(BITMAP_ORANGE_ID);      blockrgb=Bitmap(BITMAP_GREEN_ID);      blockrgb=Bitmap(BITMAP_RED_ID);      blockrgb=Bitmap(BITMAP_BLUE_ID);      blockrgb=Bitmap(BITMAP_PURPLE_ID);      blockrgb=Bitmap(BITMAP_YELLOW_ID);      for(int i=0;i<9;i++)      {                rgbrange=0;                rgbrange=1;                rgbrange=2;                rgbrange=3;                rgbrange=4;                rgbrange=5;      }cube_1.setBitmap(blockrgb]);……
再运行模拟器,可以发现魔方的展开图已经发生了变化。
增加按钮事件
如是9次。在“TouchGFX\gui\include\gui\screen1_screen\Screen1View.hpp”中增加virtual void btn1Clicked();……
在“TouchGFX\gui\src\screen1_screen\Screen1View.cpp”中完成上述动作当然了,因为时间原因,这个没有写完。
但已经可以跑起来了

先睡觉,明天继续
此内容由EEWORLD论坛网友tobot原创,如需转载或用于商业用途需征得作者同意并注明出处


</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

tobot 发表于 2019-4-10 00:08

22点开始,24点提交,对自己的效率还是不满意啊。。。

okhxyyo 发表于 2019-4-10 09:10

效率好高。活动进行延期了哦。可能你看的时候刚好时间还没刷新。

okhxyyo 发表于 2019-4-10 09:11

tobot 发表于 2019-4-10 00:08
22点开始,24点提交,对自己的效率还是不满意啊。。。

记得录个最后作品的视频提交上来哦

倾心思梦 发表于 2019-4-11 08:57

{:1_96:}{:1_96:}
页: [1]
查看完整版本: TouchGFX设计+做一个魔方(1)