使用QT怎么编写一个打地鼠游戏

  介绍

使用QT怎么编写一个打地鼠游戏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>实现功能:

有若干地鼠洞,每次出现一只地鼠,当击中地鼠后,分数加1,地鼠更换位置。当分数大于20时,游戏结束。

<强>实现思路:

, 1 .先初始化一个页面,放一只地鼠和若干个地鼠洞,为地鼠和地鼠洞添加槽函数。
, 2。当点击时就执行相应函数。判断是否击中,从而对其进行加分或者减分。
, 3。当击中地鼠后,应该刷新页面,让地鼠换个位置出现。
, 4。重复2.3,直到分数到达一定值或者其他结束条件后结束游戏。

<强>用到的知识点:

, QT 1.按钮组,以及按钮组连接信号槽(代码里地鼠是用按钮实现的,也可以使用QLabel实现,点击时,可以用static_cast, 2. QLabel设置图片,字体,颜色,大小
, 3。QPushButton设置图片
, 4。给光标换图片

下面开始创建项目,代码在最下面,也可以直接拉到下面看代码

1。创建qt项目,等待项目创建完成,这里我的项目名是BeatMouse

使用qt怎么编写一个打地鼠游戏

2。接下来会有这个弹框,点下即可

使用QT怎么编写一个打地鼠游戏

3。继续下,释放那里勾不勾都可以,不影响

使用QT怎么编写一个打地鼠游戏

4。选择QWidget,然后完成

使用QT怎么编写一个打地鼠游戏

5。静静等待项目创建完成就好啦!然后删除项目里. cpp, . h文件里用到ui的相关的东西,这里用不到。

6。添加图片资源文件,在项目解决方案里有个资源文件文件夹,打开里面应该有一个自动创建好了的。独有的文件,双击打开,点击添加、选择添加文件,即可添加资源进来,点击添加好的某个资源,资源URL就是资源的路径,在项目里直接使用这个路径,就可以用到这个资源。

使用QT怎么编写一个打地鼠游戏

最后的效果图

使用QT怎么编写一个打地鼠游戏

初学代码写的有点乱,下面放上代码

BeatMouse。h

# pragma 一次   # include  & lt; QtWidgets>   # include   class  BeatMouse : public  QMainWindow   {   Q_OBJECT才能   信号:   ,void 退出();   公众:   BeatMouse才能(QWidget  * parent =, Q_NULLPTR);   public 槽:   ,void  OnButtonClickMouse (int 指数),,//连接按钮组,判断是哪个按钮被点击   ,void  setScore (int 分数);,,//设置分数      私人:   ,int  m_width;//获取屏幕的宽高,默认尺寸1920 * 1080   ,int  m_height;   ,int  mouseItem;//地鼠序号   ,int  m_score;   ,   ,QTime  t;   ,QRect  m_screenGeometry;,//屏幕尺寸   ,QLabel *,, m_background;,,,//背景图   ,QLabel *, m_gameOver;,//游戏结束后的遮罩   ,QLabel *, m_gameOverText;,//游戏结束后的提示文字      ,QPushButton * m_btnQuit;,,//右上角关闭按钮   ,QButtonGroup *, m_groupBtn;,,,//,按钮组,   ,QVector

BeatMouse。cpp

# include “BeatMouse.h"      BeatMouse: BeatMouse (QWidget  *父母)   ,,:QMainWindow(父)   {   ,QDesktopWidget * pDesktop =, QApplication:桌面();,//获取桌面大?,,m_screenGeometry  pDesktop→screenGeometry ();=,,m_width  m_screenGeometry.width ();=,,m_height  m_screenGeometry.height ();=,,m_rateHeight  m_height /, 1080.0;=,,m_rateWidth  m_height /, 1920.0;   ,这个→setGeometry (m_screenGeometry);   ,   上,setBackground ();   ,setGameQuit ();   ,initMouse ();   ,loadScore ();   ,beginGame ();   }      ,上void  BeatMouse: setBackground () {   ,QPixmap 图像(“:/BeatMouse/独有的/bg.jpg");   ,QPixmap  img =, image.scaled (m_screenGeometry.size (),, Qt:: IgnoreAspectRatio,, Qt:: SmoothTransformation);=,,m_background  new  QLabel(这个);   ,m_background→setPixmap (img);   ,m_background→setFixedSize (img.size ());   ,m_background→低();      ,QPixmap  imgCursor (“:/BeatMouse/独有的/chuizi.png");   ,QCursor 游标(imgCursor);   ,setCursor(光标);   }   void  BeatMouse:: setGameQuit (), {   ,QPixmap 图像(“:/BeatMouse/独有的/close.png");   ,QPixmap  img =, image.scaled (80、80, Qt: KeepAspectRatio,, Qt:: SmoothTransformation);=,,m_btnQuit  new  QPushButton(这个);   ,m_btnQuit→setIcon (img);   ,m_btnQuit→setIconSize (img.size ());   ,m_btnQuit→setFixedSize (img.size ());   ,m_btnQuit→setStyleSheet (“QPushButton{边界:0 px; background: rgba(0, 0, 0, 0),大纲:没有;}“);   ,m_btnQuit→移动(m_width 作用;140年,50,);   ,QObject:连接(m_btnQuit,信号(点击()),,,,信号(退出()));   }   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用QT怎么编写一个打地鼠游戏