我有一个瓦片地图阵列 [50][50]。
当我单击鼠标移动该阵列中每个图块的 x 和 y 时,我看到每个图块之间有空白 - 我相信这称为“撕裂”,这是不希望的。
我在谷歌上搜索了双缓冲并阅读了 wiki,http://en.wikipedia.org/wiki/Multiple_buffering#Double_buffering_in_computer_graphics。
它是如何在 SDL2 中完成的,特别是使用从“for 循环”创建的大型平铺数组?
...我怀疑您将平铺纹理复制到缓冲区纹理上,并在完全加载后将其复制到渲染器 - 尽管我无法使其正常工作,但很想看到一个完整的工作示例!
这是我以前的帖子,当前是我当前的代码: SDL2 双缓冲区不起作用,仍在撕裂
我已将程序内存泄漏缩小到这些动态创建的内容之一.泄漏非常小,没有问题,但最好修复,这里是代码:
//allocate row memory:
dynamicNodeArray = new int *[r];
//allocate column memory:
for(int i = 0; i < r; i++)
{
dynamicNodeArray[i] = new int[c];
}
//...
//allocate memory for nodes (array of structs):
node* nodes = new node[r*c];
//...
//clean up:
for(int i = 0; i < r; i++)
{
delete dynamicNodeArray[i];
}
delete dynamicNodeArray;
free(nodes);
delete nodes;
Run Code Online (Sandbox Code Playgroud)