From c7c761d2030b5f9e6531d315e3ff2f0ce5614684 Mon Sep 17 00:00:00 2001 From: zqy57 Date: Wed, 2 Jul 2025 13:33:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A1=E6=97=B6=E5=99=A8?= =?UTF-8?q?=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=8C=89=E9=94=AE=E9=97=B4=E9=9A=94?= =?UTF-8?q?=E8=B6=B3=E5=A4=9F=E5=A4=A7=E6=89=8D=E7=A7=BB=E5=8A=A8=E6=96=B9?= =?UTF-8?q?=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.qmake.stash | 21 +++++++++++++++++++ gamecontroller.cpp | 3 +++ snake.cpp | 8 +++++++ snake.h | 4 ++-- 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 build/Desktop_Qt_6_2_4_MinGW_64_bit-Debug/.qmake.stash diff --git a/build/Desktop_Qt_6_2_4_MinGW_64_bit-Debug/.qmake.stash b/build/Desktop_Qt_6_2_4_MinGW_64_bit-Debug/.qmake.stash new file mode 100644 index 0000000..8ef0853 --- /dev/null +++ b/build/Desktop_Qt_6_2_4_MinGW_64_bit-Debug/.qmake.stash @@ -0,0 +1,21 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 11 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 2 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++ \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/x86_64-w64-mingw32 \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/backward \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0/include \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed \ + C:/Qt/Tools/mingw1120_64/x86_64-w64-mingw32/include +QMAKE_CXX.LIBDIRS = \ + C:/Qt/Tools/mingw1120_64/lib/gcc/x86_64-w64-mingw32/11.2.0 \ + C:/Qt/Tools/mingw1120_64/lib/gcc \ + C:/Qt/Tools/mingw1120_64/x86_64-w64-mingw32/lib \ + C:/Qt/Tools/mingw1120_64/lib diff --git a/gamecontroller.cpp b/gamecontroller.cpp index 837cc81..b4ce734 100644 --- a/gamecontroller.cpp +++ b/gamecontroller.cpp @@ -4,7 +4,10 @@ #include #include #include +#include // 添加头文件 +// 在文件开头定义(不推荐长期使用) +#define qrand() rand() #include "gamecontroller.h" #include "food.h" #include "snake.h" diff --git a/snake.cpp b/snake.cpp index ed3500f..3e48e75 100644 --- a/snake.cpp +++ b/snake.cpp @@ -13,6 +13,7 @@ Snake::Snake(GameController &controller) : moveDirection(NoMove), controller(controller) { + lastDirectionChangeTime = QTime::currentTime(); // 初始化时间 } QRectF Snake::boundingRect() const @@ -72,7 +73,14 @@ void Snake::setMoveDirection(Direction direction) return; if (moveDirection == MoveDown && direction == MoveUp) return; + // 检查时间间隔 + QTime currentTime = QTime::currentTime(); + if (lastDirectionChangeTime.isValid() && lastDirectionChangeTime.msecsTo(currentTime) < 100) { // 100 毫秒的时间间隔 + return; + } + moveDirection = direction; + lastDirectionChangeTime = currentTime; // 更新时间 } Snake::Direction Snake::currentDirection() diff --git a/snake.h b/snake.h index 5979d3b..5a12b71 100644 --- a/snake.h +++ b/snake.h @@ -3,7 +3,7 @@ #include #include - +#include // 添加这一行 class GameController; class Snake : public QGraphicsItem @@ -36,7 +36,7 @@ class Snake : public QGraphicsItem void moveDown(); void handleCollisions(); - + QTime lastDirectionChangeTime; // 添加成员变量 QPointF head; int growing; int speed;