前言
记录一下自己想做的一个小项目的过程,主要是看到了有一款桌面软件很有意思,名叫 Desktop Goose,他应该是使用Unity去做的,我也想有一个自己的要是能够将它的功能复现并且还能加上播放音乐,根据时间提示我该去干嘛了等功能就更好了。话不多说,说干就干,再写这篇文章的时候,已经能将大鹅的基本功能进行实现。
阶段一
阶段一先实现大鹅的基础功能,能够每经过一段事件进行移动,并且会有一定的速度,要能够在之后进行速度控制,并且在移动时不能拖动。
我使用Qt 的 QThread 类来创建新线程来控制鹅在桌面上的移动速度,这样方便之后让我的大鹅能够拥有自己的速度。并且能够在该线程中每隔一段事件移动一下大鹅的位置。
该线程的.h代码:
#ifndef GOOSETHREAD_H
#define GOOSETHREAD_H
#include <QRect>
#include <QThread>
#include <QTimer>
#include <cstdlib>
#include <ctime>
#include <QGuiApplication>
#include <QScreen>
#include <QApplication>
#include <qmath.h>
extern QPoint currentPosition;
class GooseThread : public QThread
{
Q_OBJECT
public:
explicit GooseThread(QObject *parent = nullptr);
void run() override;
void onTimer();
bool isMoving()const;
signals:
void moveGoose(int x, int y);
//void enableMouseTracking(bool enabled);
private:
int m_speed;
int m_moveInterval = 50;
int screenWidth;
int screenHeight;
bool m_isMoving; // 添加标志变量
int m_pauseInterval = 30000;
int counter = 0;
QRect screenRect;
QTimer *m_timer;
};
#endif // GOOSETHREAD_H
该线程的.c文件代码
#include