实验二.贪吃蛇的设计

本文档详细介绍了使用QT5.9实现贪吃蛇游戏的全过程,包括实验内容、代码实现、游戏测试和打包发布。游戏核心功能是蛇吃到食物后增长,碰撞到边界或自身则游戏结束。游戏具有开始、暂停、退出等交互功能,并设置了游戏速度和音乐。

目录

一.实验内容: 

二.贪吃蛇的代码实现

(1)类的声明

(2)初始化界面

(3)游戏界面

(4)蛇的位置

(5)键盘监听

(6)更新蛇的位置

(7)产生食物

(8)是否吃到食物

(9)是否撞到自己

(10)游戏是否胜利

(11)游戏开始与暂停

(12)音乐设置

三 游戏测试

开始游戏

蛇穿墙移动

 游戏结束

 四.打包发布


一.实验内容: 

1)实现贪吃蛇游戏基本功能,屏幕上随机出现一个食物称为豆子。玩家能利用上下左右控制“蛇”的移动,“蛇”吃到“豆子”身体加长一节,得分增加,“碰到边界蛇头与蛇身相撞“蛇”死亡,游戏结束。

2)进行交互界面的设计,要有开始键、暂停键和停止退出的选项,能够控制游戏进程。对蛇吃到豆子进行分值计算,可以设置游戏速度,游戏音乐等拓展元素。

3)实验设备QT5.9

二.贪吃蛇的代码实现

(1)类的声明

class Snake : public QMainWindow
{
    Q_OBJECT

public:
    Snake(QWidget *parent = nullptr);
    ~Snake();
    //游戏界面
    void paintEvent(QPaintEvent *event);
    //初始化蛇
    void InitSnake();
    QRect CreateFood();//产生食物
    void IsEat();//判断是否吃到了食物
    void IsHit();//判断是否撞到了自己
    void IsWin();//判断是否赢得了游戏


private slots://定义槽函数的方式
    //蛇的移动
    void Snake_update();

    void on_pushButton_3_clicked();

    void on_pushButton_5_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_4_clicked();

private:
    Ui::Snake *ui;
    QTimer *timer;//计时器事件,只要设置了这个,每隔一段时间会去执行指定的东西
    int nDirection;//蛇的移动方向
    bool blsRun;//用于控制是否开始的变量
    bool blsOver;//用于控制是否结束的变量
    void keyPressEvent(QKeyEvent *key);//键盘事件
    QVector<QRect> vSnakeRect; //n个小方块组成的ve
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值