C語言+SDL2 圖形化編程


程設大作業小火車第一版本是命令行界面,第二版本是圖形化界面,由於egg庫對以后工程開發沒有用,我不想用egg庫,花了很長時間瀏覽了一下OpenGL的中文教程,覺得好復雜,需要看很多很多才能寫出個簡單的圖形化,於是我找了一個框架,SDL(Simple DirectMedia Layer),簡單好用,對付我的大作業應該沒問題了。

SDL安裝

我的環境:Windows 10 >> Visual Studio 2015 community

下載 development libraries

在這個頁面 http://libsdl.org/download-2.0.php 下載

 

解壓zip后,在C盤新建一個SDL目錄,把lib和include兩個文件夾復制過去。

新建工程

  1. 選擇win32 project

      

  2. 選擇empty project

     

  3. 修改工程設置

     

  4. 如圖設置

  5. 選擇c盤SDL目錄的include文件夾

  6. 同樣地設置Liabrary Dictories,選擇SDL文件夾的lib文件夾的x86(因為我們的工程是win32工程)。

  7. 為了編譯SDL代碼,還要在配置一下對庫的鏈接

  8. 再在Linker下的system設置一下SubSystem

  9. 我們的系統運行SDL 2的應用程序時,要能夠找到dll文件,我們從C盤的SDL的lib的x86中復制SDL2.dll,放在我們工程的vcxproj文件所在的位置。

新建c文件

按ctrl+shift+A,選擇cpp文件,命名的地方改為.c后綴

復制以下代碼

 

#include <SDL.h>
#include <stdio.h>
 
//屏幕的寬高常量
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
 
int main(int argc, char* args[])
{
    //我們要渲染的窗口
    SDL_Window* window = NULL;
 
    //窗口的表面
    SDL_Surface* screenSurface = NULL;
    //初始化SDL
    if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        exit(-1);
    }
 
    //創建窗口
  window = SDL_CreateWindow("MY FIRST SDL WINDOW", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (NULL == window)
    {
        SDL_Quit();
        return -1;
    }
 
    //獲取窗口表面
    screenSurface = SDL_GetWindowSurface(window);
 
    //表面塗上白色
    SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF));
 
    //更新表面
    SDL_UpdateWindowSurface(window);
 
    //等待兩秒
    SDL_Delay(2000);
 
    //銷毀窗口
    SDL_DestroyWindow(window);
 
    //退出SDL子系統
    SDL_Quit();
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM