Lập Trình Game C++ SDL Phần 2: Tạo Project Và Liên Kết Thư Viện ...
Có thể bạn quan tâm
Hi. chào mừng các bạn đến với blog Phát Triển Phần Mềm 123AZ.
Hôm nay tôi sẽ bắt đầu bài đầu tiên trong chủ đề lập trình game c++ phần 2.
Trong bài đầu tiên này chúng ta sẽ cùng bắt đầu từ những bước đầu tiên:
Đó là tạo một project game c++ với thư viện SDL 2.0 và công cụ Visual studio 2012 hoặc VS 2015
1. Tạo một project c++ dạng console.

Sau khi tạo project,
sửa lại hàm main giống như hình minh họa dưới đây. (_tmain đổi thành main, sử dụng char* cho biến argv[])
Build thử project để đảm bảo thành công.

2. Cấu hình project game và thư viện SDL2.0
Copy thư viện SDL2.0 tại đường dẫn sau đây => Dowload SDL 2.0 Lib
Sau khi download và giải nén, các bạn được một folder, copy folder đó vào project tại vị trí như sau

Các bạn sẽ thấy folder LibSdl2 sẽ nằm cùng với file GameCpp2.sln
a. Thiết lập đường dẫn include và đường dẫn lib file.
Các bạn sử dụng 4 path sau đây để trỏ project game đến các folder chưa file header của thư viện SDL
$(SolutionDir)LibSdl2\SDL2_ttf-2.0.14\include $(SolutionDir)LibSdl2\SDL2_mixer-2.0.2\include $(SolutionDir)LibSdl2\SDL2_image-2.0.3\include $(SolutionDir)LibSdl2\SDL2-2.0.8\include

Chọn project, bấm chuột phải chọn properties để show bảng property pages, chọn VC++ Directies, chọn Include Directories.
Chọn vào button add màu vàng => sau đó paste lần lượt các đường dẫn ở trên vào.

Tương tự như vậy, chúng ta mở tiếp mục Library Directories.

Các bạn cũng copy lần lượt 4 đường dẫn sau đây cho folder lib
$(SolutionDir)LibSdl2\SDL2-2.0.8\lib\x86 $(SolutionDir)LibSdl2\SDL2_mixer-2.0.2\lib\x86 $(SolutionDir)LibSdl2\SDL2_image-2.0.3\lib\x86 $(SolutionDir)LibSdl2\SDL2_ttf-2.0.14\lib\x86

Với các bạn đã từng tham gia thực hành seri lập trình game c++ sdl phần 1 của mình, thì việc này không có gì xa lạ
Tiếp theo các bạn vào linker, chọn phần input, và chọn mục Additional Dependencies, để add tên các file lib dưới đây
SDL2.lib SDL2main.lib SDL2_image.lib SDL2_mixer.lib SDL2_ttf.lib

sau đó ấn ok.
b. Include 2 file header và build thử.

Trong 1 số trường hợp, các bạn sử dụng các phiên bản visual khác với phiên bản mình đang chia sẻ, có thể sẽ gặp những lỗi về hàm main.
Các bạn có thể sửa bằng cách như sau:
- Trong Linker -> System, các bạn hãy không chọn WINDOWS nữa mà chọn Console
- Thêm câu lệnh: #undef main ngay sau phần include.
3. Load thử một ảnh background lên màn hình, để kiểm tra thư viện SDL 2.0
Trước hết tôi sửa tên file source code thành main.cpp để dễ nhớ, cái này các bạn có thể làm hoặc không

Copy tấm ảnh background sau đây vào folder code

cùng vị trí với file main.cpp (Và lưu ý, sau khi build, các bạn cũng copy nó vào folder debug cùng vị trí với file *exe)

Các bạn sử dụng doạn code sau để test kiểm tra xem thư viện SDL 2.0 có hoạt động ok không
#include "stdafx.h" #include <SDL.h> #include <SDL_image.h> SDL_Window* g_windows = NULL; SDL_Surface* gScreenSurface = NULL; SDL_Surface* g_background = NULL; bool loadMedia() { bool success = true; g_background = IMG_Load("background.png" ); if( g_background == NULL ) { success = false; } return success; } void close() { SDL_FreeSurface( g_background ); g_background = NULL; SDL_DestroyWindow( g_windows ); g_windows = NULL; SDL_Quit(); } bool init() { bool success = true; if( SDL_Init( SDL_INIT_VIDEO ) >= 0 ) { g_windows = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 1280, 960, SDL_WINDOW_SHOWN ); if( g_windows != NULL ) { gScreenSurface = SDL_GetWindowSurface(g_windows); } } return success; } int main(int argc, char* argv[]) { if(init() == true) { if(loadMedia()) { SDL_BlitSurface( g_background, NULL, gScreenSurface, NULL ); SDL_UpdateWindowSurface(g_windows); SDL_Delay( 2000 ); } } close(); return 0; }Sau khi copy code vào project ok, các bạn build thử, sau khi build thành công.
Các bạn hãy chạy chương trình bằng các ấn F5. Lúc này chương trình sẽ báo 1 lỗi là thiếu các file dll

Các bạn tìm vào folder chứa thư viện Lib SDL 2.0, có một folder tên là dll\x86
Các bạn copy toàn bộ dll trong folder này và paste vào thư mục debug.

Folder debug có chưa file exe, và các bạn cũng copy luôn tấm ảnh background sang folder này.

Chạy chương trình, các bạn sẽ thấy tấm ảnh được load lên, chương trình chạy khoảng 2s rồi biến mất.
Như vậy và việc cấu hình đã ok, và chúng ta bắt đầu có thể xây dựng được project game.
Ok. Và các bạn nếu như cảm thấy khó thực hành khi đọc hướng dẫn trên blog, thì có thể xem video hướng dẫn cụ thể dưới đây.
Từ khóa » Học Sdl2
-
Lập Trình Game Với SDL - CodeLearn
-
[PDF] 7 - Đồ Hoạ Với SDL - VNU-UET
-
Series Hướng Dẫn Dùng SDL Cơ Bản - Writes
-
Series Lập Trình Xây Dựng Game Engine Sử Dụng Thư Viện SDL2
-
Lập Trình Game C++ SDL Bài 1: Giới Thiệu - Cài Đặt Thư Viện SDL
-
Khởi Tạo Môi Trường Lập Trình Game Sử Dụng Thư Viện SDL ...
-
Học Lập Trình Game C++ SDL Giới Thiệu Phần 2. - YouTube
-
Bài Giảng Lập Trình Nâng Cao: Đồ Hoạ Với SDL - Trần Quốc Long
-
Lập Trình Game C++ SDL Bài 1: Giới Thiệu Và Cài đặt - NovaSpro
-
Bài Giảng Lập Trình Nâng Cao: Đồ Hoạ Với SDL - Trần Quốc Long
-
4 Website Miễn Phí Giúp Học Những điều Cơ Bản Về Phát Triển Game
-
A Glue Crate Between Fontdue And Sdl2. - GitHub
-
ASM And SDL Models Of Geographic Routing In Mobile Ad Hoc ...