SDL入門學習

來源:互聯網
上載者:User

一、簡介

SDL(Simple DirectMedia Layer)是一套開放原始碼的跨平台多媒體開發庫,使用C語言寫成。SDL提供了數種控製圖像、聲音、輸出入的函數,讓開發人員只要用相同或是相似的代碼就可以開發出跨多個平台(Linux、Windows、Mac OS X等)的應用軟體。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。


二、配置

sudo apt-get install libsdl1.2-dev

附加元件封裝:

sudo apt-get install libsdl-image1.2-dev

sudo apt-get install libsdl-mixer1.2-dev

sudo apt-get install libsdl-ttf2.0-dev

sudo apt-get install libsdl-gfx1.2-dev

也可以去官網下載最新的源碼進行編譯。

OpenSuse下的安裝方法如下.

首先安裝opengl的相關包:

sudo zypper in Mesa-devel freeglut-devel MesaGLw-develzypper in Mesa-devel freeglut-devel MesaGLw-devel

然後安裝sdl

sudo zypper in SDL-devel

三、測試

#include "SDL/SDL.h"int main( int argc, char* args[] ){    //Start SDL    SDL_Init( SDL_INIT_EVERYTHING );    //Quit SDL    SDL_Quit();    return 0;    }

編譯命令:g++ main.c -o main -lSDL

如果程式能夠編譯通過並能夠運行,那麼SDL安裝成功。

四、載入一張位元影像

SDL可以很方便的來載入位元影像。

首先拷貝一張bmp格式的圖片到專案檔夾,然後修改代碼如下:

#include <stdio.h>#include <SDL/SDL.h>int main(){    //The images    SDL_Surface* hello = NULL;    SDL_Surface* screen = NULL;    SDL_Init( SDL_INIT_EVERYTHING );    //Set up screen    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );    //Load image    hello = SDL_LoadBMP( "1.bmp" );    //Apply image to screen    SDL_BlitSurface( hello, NULL, screen, NULL );    //Update Screen    SDL_Flip( screen );    //Pause    SDL_Delay( 5000 );        //Quit SDL    SDL_Quit();//Free memory    SDL_FreeSurface( hello );    //Quit SDL    SDL_Quit();    return 0;}

編譯運行:

如果需要載入其他格式的圖片,需要添加SDL_image庫。

幾個用到的函數解釋一下:

SDL_Init():

動態載入和初始化SDL庫。 該函數帶有一組標記來表示哪部分需要啟用:
SDL_INIT_AUDIO
SDL_INIT_VIDEO
SDL_INIT_CDROM
SDL_INIT_TIMER
SDL_INIT_EVERYTHING
使用完畢最後調用SDL_Quit()。

SDL_SetVideoMode()

設定視頻的色彩深度和解析度

SDL_LoadBMP()

載入BMP圖片

int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
4個參數都是指標——2個SDL_Surface指標,2個SDL_Rect指標。src是源面,也就是被blit的面;dst是目的面,也就是源面被blit到的面。

int SDL_Flip(SDL_Surface *screen);

交換螢幕緩衝

參考:

SDL英文教程-http://lazyfoo.net/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.