通过Tetris.h Tetris.cpp Block.h Block.cpp Map.h Map.cpp三个类分别编写锻炼cpp能力,利用key.cpp通过ros2的话题机制读取键盘输入信息,在通过话题发布给rviz2完成可视乎,适合ros2以及rviz2入门使用。(补充:①Tetris是游戏本身,是一个rclcpp::Node的子类,包含订阅前面节点输出话题,控制方块移动、旋转,触底后融入地图,以及地图中满一行后清除该行等功能②Map是地图的类,实现方块触底后融入地图,以及地图中满一行后清除该行等功能(Tetris里只是调用),同时保存了地图中方块信息(比如用二维数组保存每个格子是否为空等)③Block是方块的类,实现方块移动、旋转,判断是否接触地图块等功能,保存了方块的类型、当前占用的格子、当前在地图中所在地等数据)
cpp方块处理部分逻辑可参考其他俄罗斯方块教程,这里为暴力处理方法。
1