添加气泡组件和 AI 配置结构

This commit is contained in:
2026-05-29 08:09:19 +08:00
parent c2ffc26b89
commit 5ece0ca30d
9 changed files with 330 additions and 0 deletions
+10
View File
@@ -11,30 +11,39 @@
#include <QTimer>
#include <QWidget>
#include <memory>
class QMenu;
class QMoveEvent;
class QPixmap;
class ChatBubble;
class PetView;
class PetWindow : public QWidget
{
public:
explicit PetWindow(QWidget *parent = nullptr);
~PetWindow();
void applyAppConfig(const AppConfig &config);
AppConfig currentAppConfig() const;
void pauseAnimation();
void resumeAnimation();
void showBubbleMessage(const QString &message);
protected:
void contextMenuEvent(QContextMenuEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void moveEvent(QMoveEvent *event) override;
private:
void loadInitialImage();
void buildAnimationClips();
void addStateTestActions(QMenu *menu);
void updateBubblePosition();
QPoint bubbleAnchorPosition() const;
void playState(const QString &stateName, bool centerWindow);
void playResolvedState(const QString &stateName, bool centerWindow);
void scheduleIdleBehavior();
@@ -45,6 +54,7 @@ private:
bool isPointVisibleOnScreen(const QPoint &point) const;
void setAlwaysOnTop(bool enabled);
std::unique_ptr<ChatBubble> m_chatBubble;
PetView *m_petView;
QTimer m_idleBehaviorTimer;
QTimer m_behaviorReturnTimer;