// Set 800x600 video mode
mScreen = SDL_SetVideoMode(640, 468, 32, SDL_SWSURFACE);
if (!mScreen) {
- printf ("Couldn't set 800x600 32b video mode: %s\n", SDL_GetError ());
+ printf ("Couldn't set video mode: %s\n", SDL_GetError ());
exit (2);
}
// To see prcisely what this toggle does, just comment the line and recompile
// the code...
SDL_EnableKeyRepeat(25, 20);
-
+ SDL_ShowCursor(0);
// Create the first level
mLevels.push_back(new Level(mScreen));
}
void Level::DrawSprites()
{
for (size_t i=0; i<mSprites.size(); ++i) {
- mSprites[i]->clearBG();
- }
- for (size_t i=0; i<mSprites.size(); ++i) {
- mSprites[i]->updateBG();
- }
- for (size_t i=0; i<mSprites.size(); ++i) {
mSprites[i]->draw();
}
}
}
}
-void Sprite::clearBG()
-{
- if(mDrawn ==1)
- {
- SDL_Rect dest;
- dest.x = mOldX;
- dest.y = mOldY;
- dest.w = mSpriteAnimation->mW;
- dest.h = mSpriteAnimation->mH;
- SDL_BlitSurface(mBackReplacement,NULL,mScreen,&dest);
- }
-}
-
-void Sprite::updateBG()
-{
- SDL_Rect srcrect;
- srcrect.w = mSpriteAnimation->mW;
- srcrect.h = mSpriteAnimation->mH;
- srcrect.x = mX;
- srcrect.y = mY;
- mOldX = mX;
- mOldY = mY;
- SDL_BlitSurface(mScreen,&srcrect,mBackReplacement,NULL);
-}
-
void Sprite::draw()
{
if(mAnimating ==1)
public:
Sprite(SDL_Surface *screen, std::string name, Animation *anim);
void draw();
- void clearBG();
- void updateBG();
void setFrame(int frame) { mFrame = frame; }
int getFrame() { return mFrame; }
void setSpeed(float speed) {mSpeed = speed;}