Qt实现贪吃蛇(一)

阿里云拼团返场活动: 点击加入

    源码地址:https://fearlazy.com/index.php/76.html    


    记得在很小时候玩过贪吃蛇的游戏,那时用的还是掌上的小游戏机。对这游戏不是很熟,只能凭着我的一丝丝记忆来写。

    印象中的贪吃蛇很简单,就是由玩家控制一只蛇在限定的区域内找食物,吃到食物身体变长。撞到墙壁或自己的身体则游戏结束。游戏的难度取决于蛇移动的速度。

    很显然,在这个游戏中有蛇、食物、活动区域。当然还有游戏规则。主角是蛇,蛇会吃,会前进、会死还会转弯。有了这些信息就可以开始写游戏了。

    在这里,我选择使用二维数组的形式来表示活动区域,那么食物就是一个点,蛇则是坐标点的一个集合。确定了主要思路后,接着应该分析这些对象了。由于活动区域和食物在这个游戏中过于简单,没有什么行为,因此不打算给它们创建类。

    直接进入主角的分析。

    首先定义一个结构体来表示蛇的身体:

    struct s_body{
        int bx; //坐标x
        int by; //坐标y

        s_body(int x,int y){
            bx = x;
            by = y;
        }
    };

    这个结构体很简单,就是一个点,当然这只是一节身体,完整的身体是一个vector

std::vector<s_body>    f_snake;


    除了身体以外,它还需要一个属性那就是前进方向。不然它只有撞墙这一条出路了。这里使用一个枚举来表示。

    enum E_DIR{ //前进方向
        E_UP,  //上
        E_DOWN, //下
        E_LEFT, //左
        E_RIGHT //右
    };



  测试环境:Qt5.5.1



Qt实现贪吃蛇(二)》

腾讯云活动继续: 看一看(竞争好激烈^_^)

演示站
上一篇:android百度导航初始化失败
下一篇:Qt实现贪吃蛇(二)

发表评论