C++ 使用SDL的棋盘游戏

C++ 使用SDL的棋盘游戏,c++,sdl,C++,Sdl,我正在SDL中构建一个棋盘游戏,这就是我目前面临的问题 我在1号方格上有一个棋子,我掷骰子。根据我在骰子上得到的值,棋子移动到另一个方块。在我在线阅读了SDL教程之后,我将移动典当。但我面临的问题是,在将典当移动到新位置后,旧典当仍然停留在旧位置。我在网上找到的教程移动了一个点,但也刷新了背景以掩盖旧点。但我不能这样做,因为我的游戏板很复杂,还有其他玩家的棋子坐在那里 SDL中有没有一种方法可以让我真正移动一个棋子,而不必在新位置创建一个新棋子并覆盖旧棋子?精灵的基本概念:在插入精灵之前,保存原

我正在SDL中构建一个棋盘游戏,这就是我目前面临的问题

我在1号方格上有一个棋子,我掷骰子。根据我在骰子上得到的值,棋子移动到另一个方块。在我在线阅读了SDL教程之后,我将移动典当。但我面临的问题是,在将典当移动到新位置后,旧典当仍然停留在旧位置。我在网上找到的教程移动了一个点,但也刷新了背景以掩盖旧点。但我不能这样做,因为我的游戏板很复杂,还有其他玩家的棋子坐在那里


SDL中有没有一种方法可以让我真正移动一个棋子,而不必在新位置创建一个新棋子并覆盖旧棋子?

精灵的基本概念:在插入精灵之前,保存原始屏幕内容的副本。当您需要删除精灵时,只需将存储的旧内容粘贴回


您必须以正确的后进先出顺序处理所有对象,以使其正常工作。由于您通常是双缓冲的,因此这发生在冷缓冲区上,因此这不是问题。

精灵的基本概念:在插入精灵之前,请保存原始屏幕内容的副本。当您需要删除精灵时,只需将存储的旧内容粘贴回


您必须以正确的后进先出顺序处理所有对象,以使其正常工作。由于您通常是双缓冲的,这发生在冷缓冲上,因此这不是问题。

不,您的代码需要能够在缺少棋子的情况下重新绘制该棋盘位置。没有棋子,计算机无法自动重建棋盘的外观。

不,您的代码需要能够在棋子丢失的情况下重新绘制该棋盘的位置。没有棋子,计算机无法自动重建棋盘的外观。

听起来你的渲染代码与游戏逻辑混在一起了。你应该分开渲染,这样你就可以用一个函数调用重新绘制完整的游戏场景,你可以在游戏状态发生可见变化时使用这个函数。

听起来你的渲染代码和游戏逻辑混在一起了。你应该分开渲染,这样你就可以用一个函数调用重新绘制完整的游戏场景,然后你就可以在游戏状态发生可见变化时使用它。

你说得对,这是我第一个使用SDL的项目,所以我从来没有这样想过。我已经走得太远,无法修复渲染,所以我计划用一个正方形覆盖旧的棋子位置,并在一个新位置创建一个新的棋子。你说得对,这是我第一个使用SDL的项目,所以我从来没有这样想过。我已经走得太远,无法修复渲染,因此我计划用一个正方形覆盖旧的棋子位置,并在新位置创建一个新的棋子。