2011年10月27日 星期四

SDL + WxWidgets

SDL
http://zh.wikipedia.org/w/index.php?title=SDL&variant=zh-tw

wxWidgets
http://zh.wikipedia.org/w/index.php?title=WxWidgets&variant=zh-tw

SDL是cross-platform game programming library
wxWidgets是cross-platform widget toolkits

去年暑假我用wxWidgets寫了一些小遊戲sample
雖然wx提供了很多好用的GUI toolkits
不過畢竟他不是專門設計出來寫game的library
在遊戲開發上SDL明顯比wx好用
有沒有什麼方法可以結合兩者的長處呢?

最近我看到這個網站
http://code.technoplaza.net/wx-sdl/
這網站簡單介紹了如何結合這兩個工具

1. 把SDL_Init() and SDL_QUIT() 分別放到SDLApp(繼承wxApp)裡的
   OnRun() and OnExit()這兩個member function裡頭

2. 在SDLPanel::createScreen()裡,建立SDL_SURFACE

3. 繪圖動作都寫在SDLPanel::onIdle()

4. 在SDLPanel::onPaint()裡頭建立wxBitmap 並使用screen(SDL_SURFACE)
   的pixel data當做初值

5. 利用wxBufferedPaintDC 把wxBitmap裡頭存的圖案印出到螢幕
   也就等於把screen的pixel data output to 電腦螢幕
   用wxBufferedPaintDC 是為了避免flicker

沒有留言:

張貼留言