Hi Leute!
Endlich hab ich es doch noch zum laufen bekommen.
Und nachdem ich nen paar Tutorials durchlaufen habe tauchen natürlich sofort die ersten Fragen auf. Erstmal mein Programm, und dann die frage ^^

Code:
#include <iostream.h> 
#include<stdlib.h>
#include <SDL.h>    
#ifdef _WIN32      
#undef main         
#endif 
///////////////////////////////////////////////////
class Sprite
{
public:
	Sprite(SDL_Surface *image, int x, int y);
	Sprite();
	void Move();
	void SetPos(int x, int y);
	void Draw(SDL_Surface *Target);
	SDL_Rect *GetRect(void);
protected:
	SDL_Surface *Image;
	SDL_Rect rect;
	int speed;
};

Sprite::Sprite()
{
	Image = SDL_LoadBMP("regentropfen2.bmp");
    SDL_SetColorKey(Image, SDL_SRCCOLORKEY, SDL_MapRGB(Image->format, 0, 0, 0)); 
	speed = rand()%40;
	int x = rand()%640;
	int y = 0;
	SetPos(x,y);

}

Sprite::Sprite(SDL_Surface *New_Image, int x, int y)
{
	Image = New_Image;
	speed = 1;
	SetPos(x,y);

}

void Sprite::SetPos(int x, int y)
{
	rect.x = x;
	rect.y = y;
}

SDL_Rect *Sprite::GetRect(void)
{
	return &rect;
}

void Sprite::Draw(SDL_Surface *target)
{
    SDL_BlitSurface(Image, NULL, target, &rect);
}

void Sprite::Move()
{
    //rect.x += speed;
    rect.y += speed;

}


//////////////////////////////////////////////////



int main()
{
	SDL_Rect rect_fill;
	SDL_Event event;
	bool done = false;
	SDL_Surface *screen;

	if ((SDL_INIT_VIDEO | SDL_DOUBLEBUF) == -1)
	{
		cout<<"Fehler beim Inizialisieren! :"<<SDL_GetError()<<endl;
	}

	screen = SDL_SetVideoMode(640,480,16,SDL_HWSURFACE); //SDL_HWSURFACE
	if (screen == 0)
	{
		cout<<"Fehler beim Video mode: "<<SDL_GetError()<<endl;
	}

    SDL_SetAlpha(screen, SDL_SRCALPHA, 150); // 255 für normalen regen

	Sprite tropfen[300];

    while (!done)
	{
        while (SDL_PollEvent(&event))
		{
            switch(event.type) 
			{
            case SDL_QUIT:
                done = true;
                break;
            }

            for (int i = 0; i < 300; i++)
			{
				if (tropfen[i].GetRect()->y + tropfen[i].GetRect()->h < screen->h)
				{
				   tropfen[i].Move();
				} 
	      		else
				{
			        tropfen[i].SetPos(rand()%640, (rand()%100));
				}
			}

        SDL_FillRect(screen, &rect_fill, SDL_MapRGB(screen->format, 0, 0, 0));

		for (int a = 0; a < 300; a++)
		{
			tropfen[a].Draw(screen);
		}
		SDL_Flip(screen);
    }
	}




	return 0;
}
Das ganze zaubert eine Palette von Regentropfen auch den Bildschirm. (Das Alpha Blending lässt das ganze richtig toll ausehen)

Nun bemerke ich haber beim Programm das sich nur etwas bewegt, wenn ich die Maus bewege. Warum ist das denn so?
Welcher teil vom Programm bestimmt das, und wie kann ich das ändern? Es wäre natürlich schön wenn die Tropfen auch ohne Mausbewegung fallen würden.
Das ist echt ne wichtige Frage, da ich als nächstes ein Pong spiel programmieren wollte...

Danke schonmal für eure antworten.