打印
[GUI]

ST自由学习+用TouchGFX做个打地鼠游戏

[复制链接]
5459|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
    学习了几天TouchGFX,我就想着做个打地鼠的游戏出来玩玩。说干就干,我先网上找了几张打地鼠的图片资源,然后开始了设计。    首先对游戏规划,计划2个场景,第一个背景图片,加按钮进入游戏。第2个场景设计游戏过程。

    创建项目,第一个场景图片增加个button开始游戏。如图:


    第二个场景找了一个12洞的图片,如图:

   每个洞加一个地鼠图片的按钮Button控件,共12个按钮。通过控制按钮控件的显示和隐藏来模拟地鼠进出。如图:



增加的代码:
void Screen2View::handleTickEvent()
{
    static int count;  
    static int MouseHole[12];  
    int Hole;

    for(int i=0;i<12;i++)
    {
        if(MouseHole[i])
        {
             MouseHole[i] --;
             if( MouseHole[i] == 0)
             {
                switch(i)
                {
                    case    0:
                    button1.setVisible(false);            
                    break;
                    case    1:
                    button2.setVisible(false);
                    break;
                    case    2:
                    button3.setVisible(false);
                    break;
                    case    3:
                    button4.setVisible(false);
                    break;
                    case    4:
                    button5.setVisible(false);
                    break;
                    case    5:
                    button6.setVisible(false);
                    break;
                    case    6:
                    button7.setVisible(false);
                    break;
                    case    7:
                    button8.setVisible(false);
                    break;
                    case    8:
                    button9.setVisible(false);
                    break;
                    case    9:
                    button10.setVisible(false);
                    break;
                    case    10:
                    button11.setVisible(false);
                    break;
                    case    11:
                    button12.setVisible(false);
                    break;
                }
                Screen2ViewBase::button1.invalidate();
                Screen2ViewBase::button2.invalidate();
                Screen2ViewBase::button3.invalidate();
                Screen2ViewBase::button4.invalidate();
                Screen2ViewBase::button5.invalidate();
                Screen2ViewBase::button6.invalidate();
                Screen2ViewBase::button7.invalidate();
                Screen2ViewBase::button8.invalidate();
                Screen2ViewBase::button9.invalidate();
                Screen2ViewBase::button10.invalidate();
                Screen2ViewBase::button11.invalidate();
                Screen2ViewBase::button12.invalidate();   
             }
        }
        
    }
   
    count++;
    if(count==30)
    {
        Hole=rand()%12;
        //Unicode::itoa(Hole,textScoresBuffer,5,10);//snprintf(textScoresBuffer,5,"S=%d",Hole);
        //Screen2ViewBase::textScores.invalidate();
        if(MouseHole[Hole])
        {
            Hole = 12;
        }else      MouseHole[Hole] = 50;

        switch(Hole)
        {
            case    0:
            button1.setVisible(true);            
            break;
            case    1:
            button2.setVisible(true);
            break;
            case    2:
            button3.setVisible(true);
            break;
            case    3:
            button4.setVisible(true);
            break;
            case    4:
            button5.setVisible(true);
            break;
            case    5:
            button6.setVisible(true);
            break;
            case    6:
            button7.setVisible(true);
            break;
            case    7:
            button8.setVisible(true);
            break;
            case    8:
            button9.setVisible(true);
            break;
            case    9:
            button10.setVisible(true);
            break;
            case    10:
            button11.setVisible(true);
            break;
            case    11:
            button12.setVisible(true);
            break;
        }
        Screen2ViewBase::button1.invalidate();
        Screen2ViewBase::button2.invalidate();
        Screen2ViewBase::button3.invalidate();
        Screen2ViewBase::button4.invalidate();
        Screen2ViewBase::button5.invalidate();
        Screen2ViewBase::button6.invalidate();
        Screen2ViewBase::button7.invalidate();
        Screen2ViewBase::button8.invalidate();
        Screen2ViewBase::button9.invalidate();
        Screen2ViewBase::button10.invalidate();
        Screen2ViewBase::button11.invalidate();
        Screen2ViewBase::button12.invalidate();
        count = 0;
    }

}

    增加代码后保存文件,然后在右上角RUN Simulator编译,代码出现错误可以在右下角的Log查看原因。

    最终的完成版如图:

    做的很简陋。
模拟器运行EXE: simulator.rar (666.78 KB)







使用特权

评论回复
沙发
yklstudent| | 2019-4-13 10:05 | 只看该作者
mark,谢谢楼主分享

使用特权

评论回复
板凳
一路向北lm| | 2019-4-13 12:17 | 只看该作者
做的不错啦

使用特权

评论回复
地板
quickman| | 2019-4-15 22:02 | 只看该作者
这个是内部自己集成的吗?      

使用特权

评论回复
5
jstgotodo| | 2019-4-15 22:02 | 只看该作者
TouchGFX这么牛X 。              

使用特权

评论回复
6
iamaiqiyi| | 2019-4-15 22:02 | 只看该作者
有相关 的教程可以学习吗?

使用特权

评论回复
7
dzfansman| | 2019-4-15 22:03 | 只看该作者
这个软件开始免费试用了呢      

使用特权

评论回复
8
sanxingnote7| | 2019-4-15 22:03 | 只看该作者
TouchGFX                           

使用特权

评论回复
9
dirtwillfly| | 2019-4-23 21:22 | 只看该作者
感谢分享。找个软件抠抠图,把老鼠单独抠出来就更好了

使用特权

评论回复
10
风雨潇潇| | 2019-4-23 21:53 | 只看该作者
顶!!

使用特权

评论回复
11
hanzhen654| | 2019-4-23 22:43 | 只看该作者
有种要写一个APP的冲动

使用特权

评论回复
12
hanzhen654| | 2019-4-23 22:44 | 只看该作者
直接烧到ST 的F7板卡里面玩一下

使用特权

评论回复
13
cailantu| | 2019-4-24 14:48 | 只看该作者
感谢楼主分享

使用特权

评论回复
14
wangjiahao88| | 2019-4-24 16:12 | 只看该作者
这个 这么好玩儿?

运行流畅,吗?

使用特权

评论回复
15
longdeng84| | 2019-5-4 09:04 | 只看该作者
感觉好牛B的样子。。
一直想学GUI,又一直没动。

使用特权

评论回复
16
keaibukelian| | 2019-5-6 10:37 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
17
labasi| | 2019-5-6 10:43 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
18
paotangsan| | 2019-5-6 10:47 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
19
renzheshengui| | 2019-5-6 10:51 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
20
wakayi| | 2019-5-6 11:00 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

4609

帖子

27

粉丝