Game C++ Phần 2 – B1: Cài đặt project
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#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.
e build thành công mà màn hình nền chỉ nhoáng lên r tắt chứ hk hiện đủ 2s ạh
vao group post cau hoi nhe
em bị lỗi external lúc copy xong code ạ anh sửa cho em với
vào group show lỗi em ơi
cho e xin file ảnh với ạ
file anh gi nhi, em chat vao group xem nao
ảnh background ạ