-1

私はこのメソッドに小さな問題があります、これは私のコードです(私はより多くのコードを持っていますが、これは私にエラーを与える部分です)

void ranCol( SDL_Surface sprite[], SDL_Rect paste)
{

        SDL_FillRect(sprite[y],NULL,temp);
        SDL_BlitSurface(sprite[y],&paste[y],rScreen(),NULL);
}

2つのエラーが発生します

error C2664: 'SDL_FillRect' : cannot convert parameter 1 from 'SDL_Surface' to 'SDL_Surface *'
error C2664: 'randCol' : cannot convert parameter 2 from 'SDL_Surface *[50000]' to 'SDL_Surface []'

誰かが私がこれを機能させるのを手伝ってもらえますか?

編集:誰かがそれをコマイルしたい場合のコードはここにあります

    void randCol(int times, SDL_Surface* sprite[], SDL_Rect paste)
{
    int unsigned temp = 10101;//seed
    for(int y = 0;y < times;y++)
    {
        temp = temp*(y+y+1);
        temp = (temp^(0xffffff))>>2;
        //printf("%x\n",temp);
        SDL_FillRect(sprite[y],NULL,temp);
        SDL_BlitSurface(sprite[y],&paste[y],rScreen(),NULL);
    }
}
4

1 に答える 1

1

常に次のように操作する必要がありpointersますSDL_Surface...関数を次のように変更します

void ranCol( SDL_Surface* sprite, SDL_Rect paste)

あなたがどこ[y]から来たのかわかりません!の配列からのものである場合は、パラメーターとしてSDL_Surface単一SDL_Surfaceを関数に渡すと、より明確になります。

アイテムの配列を渡す場合は、次の署名を使用します。

void ranCol(SDL_Surface* sprite[], SDL_Rect paste[])

yただし、パラメータとして、またはメンバー/グローバルとして、何らかの方法でを渡す必要があります。

于 2012-11-15T20:19:39.653 に答える