從sdl 2.0 roadmap中可以獲取到sdl2當前的規劃路線以及功能支援情況。
以下的sdl擴充套件庫已經支援sdl2版本:
在官方網頁中可獲取到當前穩定版本,包括原始碼、執行二進位制檔案以及開發庫。
sdl2 原始碼編譯請看這裡。
建立乙個空專案,配置好 sdl2 的標頭檔案和庫的引用,接著建立乙個 main.cpp 檔案,將以下**複製到 main.cpp 檔案中,編譯執行。
#includesdl_window* g_pwindow = 0;
sdl_renderer* g_prenderer = 0;
int main(int argc, char* args)
}else
// everything succeeded lets draw the window
// set to black // this function expects red, green, blue and
// alpha as color values
sdl_setrenderdrawcolor(g_prenderer, 0, 0, 0, 255);
// clear the window to black
sdl_renderclear(g_prenderer);
// show the window
sdl_renderpresent(g_prenderer);
// set a delay before quitting
sdl_delay(5000);
// clean up sdl
sdl_quit();
return 0;
}
解剖 hello sdl1.首先,包含標頭檔案:#include
2.第二步,建立一些全域性變數:乙個是 sdl_window 變數,另乙個是 sdl_renderer 變數。前者是sdl2視窗物件,後者是sdl2渲染器物件。
sdl_window* g_pwindow = 0;
sdl_renderer* g_prenderer = 0;
3.現在,可以初始化sdl2庫:sdl_init(sdl_init_everything)
。引數 sdl_init_everything 是代表初始化全部子系統,當然,可以選擇用到的那些子系統進行初始化。
4.接下來,就是建立sdl2的視窗,使用 sdl_createwindow 函式。
g_pwindow = sdl_createwindow("chapter 1: setting up sdl", sdl_windowpos_centered, sdl_windowpos_centered, 640, 480,sdl_window_shown);
5.假如sdl2的視窗建立成功,就將在其上面建立sdl2渲染器,呼叫 sdl_createrenderer 函式。
// if the window creation succeeded create our renderer
if(g_pwindow != 0)
else
6.假如sdl2渲染器建立成功,就可以在該視窗上使用該渲染器進行繪圖等操作。
// everything succeeded lets draw the window
// set to black
sdl_setrenderdrawcolor(g_prenderer, 0, 0, 0, 255);
// clear the window to black
sdl_renderclear(g_prenderer);
// show the window
sdl_renderpresent(g_prenderer);
7.最後就是釋放資源,反初始化。
sdl_quit();
flag
initialized subsystem(s)
sdl_init_haptic
force feedback subsystem
sdl_init_audio
audio subsystem
sdl_init_video
video subsystem
sdl_init_timer
timer subsystem
sdl_init_joystick
joystick subsystem
sdl_init_everything
all subsystems
sdl_init_noparachute
don』t catch fatal signals
可以使用(|)符號來初始化多個子系統。如:
sdl_init(sdl_init_audio | sdl_init_video);
可以用sdl_wasinit()
函式來檢查某個子系統是否初始化完成。如:
if(sdl_wasinit(sdl_init_video) != 0)
當初始化乙個sdl_renderer標識的時候,可以改變渲染器的渲染行為。
flag
purpose
sdl_renderer_software
use software rendering
sdl_renderer_accelerated
use hardware acceleration
sdl_renderer_presentvsync
synchronize renderer update with screen』s refresh rate
sdl_renderer_targettexture
supports render to texture
在sdl_createwindow
函式的最後乙個引數是表明sdl視窗的行為。
flag
purpose
sdl_window_fullscreen
make the window fullscreen
sdl_window_opengl
window can be used with as an opengl context
sdl_window_shown
the window is visible
sdl_window_hidden
hide the window
sdl_window_borderless
no border on the window
sdl_window_resizable
enable resizing of the window
sdl_window_minimized
minimize the window
sdl_window_maximized
maximize the window
sdl_window_input_grabbed
window has grabbed input focus
sdl_window_input_focus
window has input focus
sdl_window_mouse_focus
window has mouse focus
sdl_window_foreign
the window was not created using sdl
遊戲的基本流程在於中間那三個步驟:獲取輸入、物理計算、渲染輸出。然後以固定每秒迴圈n次執行,這也是遊戲的幀數本質所在。當然,由於每乙個步驟執行也是需要時間的,為了穩定幀數,還得做一些其他的操作。
第一章 的基本認識
第一章 的基本認識 動態網製作指南 knowsky.關 於 的 概 論 是 cascading style sheets 的簡稱,中文翻為 串接樣式表 也有人只翻為 樣式表 用以作為網頁的排版與風格設計,在所謂的 新式網頁 裡 不容置疑是相當重要的一環。是以既有的基礎,用以彌補既存 規格裡的不足,也...
C 初步認識 第一章
剛開始學c 試著總結。以上是我自己敲的乙個小例子。iosstream是由istream 輸入類 和ostream 輸出類 派生,所以在iostream中就有了輸入和輸出的相關物件。其中,cin和cout呢,相當於c語言中的printf,scanf,輸入和輸出函式。cin,表示標準輸入 standar...
第一章 C 基本認識
1.使用visual studio時讓程式暫停,在return前加上這個 charresponse std cin response 2.c 程式開發流程 3.變數名的命名,字母 數字 下劃線,首字母不能是數字。4.c 中型別比較靈活 確切的長度取決於實現 假設要將程式從int為16位的系統移到in...