0

好的,所以我有这段代码,它只是遍历我的对象数组,对需要进行 blitted 的内容进行 blitting:

void Render()
{
    for(int Index = 0; Index < MAX_OBJECT_INSTANCES; Index++)
    {
        if(Game::ObjectArray[Index].IsActive() == false){}
        else
        {
            if(Game::ObjectArray[Index].IsHidden() == false)
            {
                SDL_BlitSurface(Game::ObjectArray[Index].CurrentSprite, NULL, Buffer::Screen, &Game::ObjectArray[Index].Position);
            }
        }
    }
}

我查看了调用堆栈,发现了这个:

0x681247d8  SDL_UpperBlit

我不知道如何解决这个问题。我还应该注意我正在使用 SDL 混音器和 SDL 图像。

4

1 回答 1

0
  1. 在调试器中运行代码。
  2. 进入SDL_BlitSurface()通话。
  3. 验证参数是否正确。
  4. 继续前进,看看是什么导致了分段错误。

我怀疑一个或多个论点是错误/无效的。

于 2012-09-21T09:39:04.583 回答