Qt制作贪吃蛇(一)

本文介绍了如何在Qt环境中创建并让贪吃蛇动起来。通过建立Snake类,设置移动方向、节点尺寸等属性,实现了游戏的基本功能。文章提供Snake.h、Snake.cpp、mainwindow.h和mainwindow.cpp等关键文件的概述,并展示了运行效果。
摘要由CSDN通过智能技术生成

这篇文章内容是参考https://blog.csdn.net/sinan1995/article/details/81671311

 

这篇主要是怎样实现创建一条蛇,并让它动起来

首先先创建项目,基类可以是mainWidget或者Widget,这里使用的是mainWidget

采用面向对象的方式,设计一个Snake类,制作这条蛇

Snake.h

#ifndef SNAKE_H
#define SNAKE_H

#include <QObject>
#include <QList>

class Snake : public QObject
{
    Q_OBJECT
public:
    explicit Snake(QObject *parent = nullptr);
public:
    enum Dir{Up, Down, Left, Right};

public:
    int moveDir = Dir::Up;
    int width=10;
    int height=10;
    QList<QRectF> body;

public:
    //节点个数,初始头的位置,朝向(默认为上)
    void initBody(int nodeNum=3,QPointF topLeft=QPointF(400,400),Dir dir=Dir::Up,int nodeWidth=10,int nodeHeight=10);
public:
    void addNodeUp(int);
    void addNodeDown(int);
    void addNodeLeft(int);
    void addNodeRight(int);
    void moveUp(int);
    void moveDown(int);
    void moveRight(int);
    void moveLeft(int);
    void move(int,int); //沿着当前的方向移动

signals:

public slots:
};

#endif // SNAKE_H

这个Snake类也可以不用继承Object类,普通的类也行。

首先这个类里有一些属性,moveDir 表示蛇正在移动的方向,它的值是自定义的一个枚举值,分别代表上下左右。

width 和 height 分别代表蛇的每个节点的宽和高。

body 是存放每个节点的矩形位置。

Snake.cpp

#include "snake.h"
#include <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值