CodeBlocks下SDL编译成功实例

Cartoon-codeblocks-sdl-compile 1 首先去下载一份最新版的 CodeBlocks;2 在官方下载一份-版;3 开始我们的之旅吧

首先建立一个空的项目并且选择编译规则为Gcc;其次在编译和调试选项中设置好的库目录。这里值得注意的是在项目工程属性中 编译目标 中的 选项设置类型为 applications;最后在编译和调试选项中的 连接设置中的 其他链接选项 输入-lmingw32 -lSDLmain –lSDL

最后如果不出错的话 应该可以编译成功了.^_^


/*This source code copyrighted by Lazy Foo’ Productions (2004-2009) and may not
be redestributed without written permission.*/
//The headers
#include "/.h"
#include <string>
//The attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;
//The surfaces that will be used
SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;
SDL_Surface *load_image( std::string filename )
{
//Temporary storage for the image that’s loaded
    SDL_Surface* loadedImage = NULL;
//The optimized image that will be used
    SDL_Surface* optimizedImage = NULL;
//Load the image
    loadedImage = SDL_LoadBMP( filename.c_str() );
//If nothing went wrong in loading the image
if( loadedImage != NULL )
{
//Create an optimized image
        optimizedImage = SDL_DisplayFormat( loadedImage );
//Free the old image
        SDL_FreeSurface( loadedImage );
}
//Return the optimized image
return optimizedImage;
}
void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination )
{
//Make a temporary rectangle to hold the offsets
    SDL_Rect offset;
//Give the offsets to the rectangle
    offset.x = x;
    offset.y = y;
//Blit the surface
    SDL_BlitSurface( source, NULL, destination, &offset );
}
int main( int argc, char* args[] )
{
//Initialize all subsystems
if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
{
return 1;
}
//Set up the screen
    screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
//If there was an error in setting up the screen
if( screen == NULL )
{
return 1;
}
//Set the window caption
    SDL_WM_SetCaption( "Hello World", NULL );
//Load the images
    message = load_image( "hello_world.bmp" );
    background = load_image( "background.bmp" );
//Apply the background to the screen
    apply_surface( 0, 0, background, screen );
//Apply the message to the screen
    apply_surface( 180, 140, message, screen );
//Update the screen
if( SDL_Flip( screen ) == -1 )
{
return 1;
}
//Wait 2 seconds
    SDL_Delay( 2000 );
//Free the surfaces
    SDL_FreeSurface( message );
    SDL_FreeSurface( background );
//Quit
    SDL_Quit();
return 0;
}

上面的例程代码很好理解这里就不解释了.

下面放上运行截图.

此篇为转载,出处: http://blog.chinaunix.net/u3/96646/showart_1943428.html

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • RSS
  • Slashdot
  • Technorati
  • TwitThis

Related posts:

  1. 指针与引用的比较
  2. Setting up Code::Blocks to work with SDL - 多媒体编程库
  3. C::B IDE的命令行参数
  4. AVL树Source Code
  5. Singleton模式
  6. 判断链表是否存在环并找出环的入口
  7. QT4+MinGW+Code::Blocks IDE集成

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Contact us

Admin: Bryan Wu