c - 在 C 和 SDL 中用 last 覆盖的数组元素
问题描述
我知道类似的问题已经被问过很多次,但我发现的其他答案都没有帮助。
基本上我正在尝试创建一堆带有偏移量的块(自定义结构)。我创建了一个具有自定义位置的新 SDL_Rect 并将其添加到具有其他属性的块中。然后将该块添加到数组中。问题是最后,所有块都共享最后一个创建的矩形(其他属性很好)。
有人可以帮我吗?我不知道这怎么可能是一个指针问题,因为我没有重用任何东西,但显然它是。
SDL_Color blockColors[] =
{
{192, 0, 0, 0},
{192, 64, 0, 0},
{192,128, 0, 0},
{192,192, 0, 0},
{ 0,192, 0, 0},
{ 0, 0,192, 0},
};
int blockColorCount = 6;
Block* blocks = malloc(sizeof(Block) * blockColorCount * 25);
int blockCount = blockColorCount * 25;
//blocks creation
for (int y = 0; y < blockColorCount; y++)
{
for (int x = 0; x < 25; x++)
{
SDL_Rect blockRectangle;
blockRectangle.x = 25+x*18;
blockRectangle.y = 180+y*18;
blockRectangle.w = 18;
blockRectangle.h = 18;
Block tempBlock = {&blockRectangle,blockColors[y],1,false};
blocks[y*25 + x] = tempBlock;
printf("%d %d\n",blocks[y*25+x],&tempBlock);
}
}
typedef struct
{
SDL_Rect* rect;
SDL_Color color;
int health;
bool dead;
} Block;
解决方案
推荐阅读
- variables - 为什么 Webpack SASS-loader 不在线性梯度规则中转换 SASS 变量?
- matlab - 在 MATLAB 的 If 语句中使用多个条件的问题
- angular - Angular 7/Jasmine:在服务中对 Observable 进行单元测试时出现问题
- php - Ajax 拒绝 PHP 创建的 JSON 并带有“SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data”
- ssl - 通过代理进行 PKI 身份验证,python 2.6.6
- javascript - 使用 vue 显示动态数组
- apache-spark - 如何使用火花从hdfs加载多个文件
- python - 使用 send 修改生成器
- python - Pytest:从父类继承夹具
- c++ - 通过创建循环来简化一些重复动作的代码