0

さて、次のコードは、オブジェクト配列を反復処理して、ブリットする必要があるものをブリットします。

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. ステップを続けて、セグメンテーション違反の原因を確認します。

1 つ以上の引数が間違っている/無効であると思われます。

于 2012-09-21T09:39:04.583 に答える