Peter Dreyer

  • Content count

  • Joined

  • Last visited

Community Reputation

108 Neutral

About Peter Dreyer

  • Rank
  1. social game development

    You didn't really supply much information. What language are you using? What type of social game is it? The only database I can think of offhand is MySQL.
  2. C++ - Is Goto a Good Practice?

    Stay away from the evil goto statement in C++. it may seem nice until your project gets larger at which point they'll help to create 'spaghetti code'. C++ is made so that you don't have to use them. The only time you should need to use goto statements in in Assembly.
  3. Already know C++ - where to learn game programming?

    The design of a game depends on your own style and thought process. Some games such as pong may be more trivial(paddles are a class and the ball is a class) while other things such as complete game engines may require more work. In my opinion, it boils down to just looking at the concept for a game you thought up and analyzing it to find the best way to put it together. I would suggest starting with pong and SDL like other people have mentioned and work your way up from there.
  4. SDL_BlitSurface() Problem

    Thanks for your help Servant of the Lord! For the record, I did check the return result of the blitting function several times and I didn't just assume that result as my post made it look. I've just tested it again and it worked.
  5. Hey everyone, I just started game development in C++ with SDL and I'm having some trouble with the SDL_BlitSurface() function. Basically, if i try to blit a surface using NULL for the two SDL_Rects, the image will be blitted as it should be. If I try to blit only a certain portion of the image, it won't work and returns -1. Any ideas? Main.cpp [source lang="cpp"] int main ( int argc, char** argv ){ SDL_Surface* screen = NULL; SDL_Init(SDL_INIT_VIDEO); screen = SDL_SetVideoMode(DEFAULT_WINDOW_WIDTH,DEFAULT_WINDOW_HEIGHT,DEFAULT_WINDOW_COLOR_DEPTH, SDL_SWSURFACE); SDL_WM_SetCaption(WINDOW_TITLE,NULL); SDL_Surface* DefaultFontSheet = SDL_LoadBMP("font.bmp"); SpriteSheetReader ssr; ssr.setSpriteSheet(DefaultFontSheet); ssr.setSpriteSize(12,12); SDL_Surface* letter = ssr.getSprite(1,1); SDL_BlitSurface(letter, NULL, screen, NULL); SDL_Flip(screen); MainLoop(); }[/source] SpriteSheetReader.h [source lang="cpp"] //Sprite Sheet Reader version 1.00 //Peter Dreyer //10 November 2012 class SpriteSheetReader{ public: //spriteSheet Getters and Setters void setSpriteSheet(SDL_Surface* spriteSheet); SDL_Surface* getSpriteSheet(void); //Sprite Size Controlling void setSpriteSize(int width, int height); SDL_Rect getSpriteSize(); //Sprite Retrieval SDL_Surface* getSprite(int x, int y); private: SDL_Surface* spriteSheet; SDL_Rect spriteRect; }; void SpriteSheetReader::setSpriteSheet(SDL_Surface* ss){ this->spriteSheet = ss; } SDL_Surface* SpriteSheetReader::getSpriteSheet(void){ return this->spriteSheet; } void SpriteSheetReader::setSpriteSize(int width, int height){ this->spriteRect.w = width; this->spriteRect.h = height; } SDL_Rect SpriteSheetReader::getSpriteSize(void){ return spriteRect; } SDL_Surface* SpriteSheetReader::getSprite(int x, int y){ this->spriteRect.x = x * this->spriteRect.w; this->spriteRect.y = y * this->spriteRect.h; SDL_Surface* Sprite; SDL_BlitSurface(spriteSheet, &this->spriteRect, Sprite, NULL); return Sprite; } [/source] I've done some testing and found that I can blit the whole sprite sheet and the problem is only introduced when I start trying to use the SDL_Rects.