# SDL(多媒體開發函式庫)

## SDL(多媒體開發函式庫)

#### Code::block設定SDL環境

```
官方載點:https://www.libsdl.org/download-2.0.php

步驟:

(就算電腦是64bit但下載64bit的dll包可能無法執行)


詳細安裝參考此篇

http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/codeblocks/#6

其中的compile之SDL路徑設定，可從setting->compiler去設定(全域)，或是從Project->build option去設定(區域)都可以 


最後將32bit的sdl.dll放到exe黨存在的目錄(如64bit的sdl.dll無法的話)
```

### 教學

<http://kelvmiao.info/sdl-tutorial-cn/lessons/lesson01/index2.html>

他是使用SDL1，所以一些程式碼需對應的改變

基本架構

```
#include "SDL.h"
#include <stdio.h>
int main( int argc, char* args[] )
{

//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

    //The window we'll be rendering to
    SDL_Window* window = NULL;

    //The surface contained by the window
    SDL_Surface* screenSurface = NULL;

    //Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    }else{
        //Create window
        window = SDL_CreateWindow( "SDL Tutorial123", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
    if( window == NULL ){
            printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
    }
         //Get window surface
            screenSurface = SDL_GetWindowSurface( window );

            //Fill the surface white
            SDL_FillRect( screenS urface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );

            //Update the surface
            SDL_UpdateWindowSurface( window );

            //Wait two seconds
            SDL_Delay( 2000 );
}
}
```

## 如果點選build and run但仍然跑出前build的程式

把cpp檔案刪掉，新建一個


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://easonwang.gitbook.io/c-1/sdlduo_mei_ti_kai_fa_han_shi_5eab29.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
