原创 SDL入門教程(六):SDL讀取其它格式的圖片

作者:龍飛1:擴充庫(Extension Libraries)        SDL本身所支持的,僅僅是讀取bmp格式的圖片。要使用其它格式的圖片,我

原创 SDL入門教程(二):2、SDL的安全裝載與安全退出

作者:龍飛2.1:WasInit可以在Init前使用嗎?        我們在介紹SDL_Init()的時候說過,這個函數是調用SDL其他函數之前必須

原创 SDL入門教程(二):3、中途裝載與退出,SDL錯誤信息

作者:龍飛3.1:SDL flags 的中途裝載和中途退出。        如果我們在程序一開始只啓動了video,在運行的某個期間需要啓動audio,之後,又需要關掉video只保持audio聽聲音應該怎麼做呢?        先說中途

原创 SDL入門教程(五):2、構建SDL surface類

 作者:龍飛2.1:構建普通的surface類。        在所有的surface裏面,只有screen surface是最特殊的。因爲第一,sc

原创 SDL入門教程(一):1、一切從零開始

作者:龍飛     1.1:SDL是什麼?         SDL是Simple DirectMedia Layer(簡易直控媒體層)的縮寫。它是一個跨平臺的多媒體庫,以用於直接控制底層的多媒體硬件的接口。這些多媒體功能包括了音頻、鍵盤和

原创 SDL入門教程(九):3、文本反饋“按鍵”信息

 作者:龍飛3.1:一些小的修改        我覺得寫C++的程序,一是看起來確實比較C++一點,二是相對於C的“精煉”,C++要的是“健壯”。所以,其實我不太滿意用C風格字符串作爲ScreenSurfa

原创 SDL入門教程(十三):3、封裝多線程

作者:龍飛        SDL創建多線程的函數SDL_CreateThread()所調用的是函數指針,這意味着我們不可以傳入(非靜態)成員函數的指針。關於兩種函數指針我們之前已經討論過:函數指針與成員函數指針,我們可以有兩種方法能讓具有

原创 SDL入門教程(十三):1、多線程,從動畫說起

作者:龍飛1.1:簡單動畫        遊戲離不開動畫。我們考慮最簡單的情況:將一個角色從一個位置移動到另外一個位置。這個行爲表述給電腦就是,將一個surface不斷的blit(),從起始位置的座標,移動到結束位置的座標。移動速度取決於

原创 SDL入門教程(十三):2、初識多線程

作者:龍飛2.1:競爭條件(Race Conditions)        我們在前面將一個普通函數調用轉換成了用線程調用,這意味着我們可以“同時”調用兩個以上的線程。例如,我們希望在屏幕的另外一個位置也播放這段簡單的動畫,我們只需要添加

原创 SDL入門教程(十):1、多語言支持,Win32下的GetText

作者:龍飛        自從開始研究SDL的文本顯示,我就一直在思考在SDL中顯示中文的問題。我們知道韋諾之戰(Battle for Wesnoth)使用SDL開發的,並且支持多語言。所以,我一直相信Wesnoth的源代碼裏面一定有我所

原创 SDL入門教程(十一):3、做一個對話框

作者:龍飛        有了按鈕類,我們製作對話框就很輕鬆了。邊寫程序邊說明吧。 bool hand_dialog(const ScreenSurface& screen, const std::string& dialog_text,

原创 SDL入門教程(九):1、在SDL圖形窗口顯示文本

作者:龍飛        最近幾篇教程基本上都是參考着Lazy Foo的教程順序來的。因爲我也覺得他的順序很實用。所不同的是,新的類型我都添加在了之前建立起來的surface類的基礎之上。所以,如果你覺得單

原创 SDL入門教程(十一):2、設計按鈕ButtonClass

作者:龍飛2.1:設計框架與基類的接口        有了更加完善的SurfaceClass的支持,我們可以進行按鈕的設計了。接着上一節的話題,按鈕除了要給我們表現出來是否被按下的視覺效果,還要起到實際上的作用。一種最簡單的思路,既是鼠標

原创 SDL入門教程(十):5、SDL完美顯示中文

 作者:龍飛注意:請使用支持中文的TTF字庫。5.1:構建可以正確顯示中文的SDL_ttf函數        世界終於又充滿了光明!任何事情都是有答案的,不知道僅僅是因爲我們還沒有找到。解決了以上一系列問題

原创 SDL入門教程(八):2、裁剪精靈圖片的完整源代碼

  //UVi Soft (2008)//Long Fei (lf426), E-mail: [email protected]//FileName: SurfaceClass.h#ifndef SURFACE_CLASS_H#define