【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-结束和重新开始游戏

时间:2025-04-22 10:09:06

结束和重新开始游戏

文章目录

  • 结束和重新开始游戏
    • 1、概述
    • 2、更新Globals.h
    • 3、触发GAME_WON和GAME_LOST事件
    • 4、对游戏结束的反应
    • 5、重启游戏
    • 6、创建新游戏按钮
    • 7、完整代码
    • 8、总结

在本文中,将实现胜负检测并添加重新开始功能以完成游戏循环。

1、概述

在本文中,我们将更新我们的游戏以检测并响应玩家的胜负情况。

  • 为了获胜,玩家必须清理所有没有炸弹的单元格。
  • 如果玩家清理了一个有炸弹的单元格,他们就输了。

让我们开始吧!

2、更新Globals.h

当玩家获胜或失败时,我们将禁用所有单元格并揭示地雷的位置。如果玩家赢了,我们将以绿色突出显示这些单元格,但如果玩家输了,我们将以红色突出显示它们。

让我们将这些颜色添加到我们的Globals.h中。我们还将注册事件,以便在发生胜负情况时进行通信:

// Globals.h

// ...

namespace UserEvents{
  // ...
  inline Uint32 GAME_WON =
    SDL_RegisterEvents(1);
  inline Uint32 GAME_LOST =
    SDL_RegisterEvents(1);
}

namespace Config{
  // ...
  inline constexpr SDL_Color BUTTON_