Thông tin tài liệu:
CHƯƠNG TRÌNH ĐẦU TIÊNrong phần này sẽ trình bày một ví dụ nhỏ sử dụng DirectX. Chúng ta sẽ từng bước đi qua tất cả những tiến trình cần thiết cho một chương trình sử dụng công nghệ DirectX. Hầu hết các ví dụ đi kèm với bộ công cụ hỗ trợ phát triển ứng dụng DirectX (DirectX SDK) được đặt trong thư mục sample, thư mục này chứa tập hợp rất nhiều mã nguồn và làm bạn sẽ phải tốn rất nhiều thời gian công sức để tìm hiểu nó. Trong những ví dụ và hướng dẫn chúng...
Nội dung trích xuất từ tài liệu:
Beginning DirectX9 - Chương 2 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9 CHƯƠNG 2CHƯƠNG TRÌNH ĐẦU TIÊNT rong phần này sẽ trình bày một ví dụ nhỏ sử dụng DirectX. Chúng ta sẽ từng bước đi qua tất cả những tiến trình cần thiết cho một chương trình sử dụng công nghệ DirectX. Hầu hết các ví dụ đi kèm với bộ công cụ hỗ trợ phát triển ứng dụngDirectX (DirectX SDK) được đặt trong thư mục sample, thư mục này chứa tập hợp rấtnhiều mã nguồn và làm bạn sẽ phải tốn rất nhiều thời gian công sức để tìm hiểu nó. Trongnhững ví dụ và hướng dẫn chúng ta sẽ làm theo dưới đây, mặc dù những flatform đó cóthể nó đã được viết sẵn trong ví dụ đi kèm của bộ SDK nhưng chúng ta sẽ không sử dụnglại. Điều đó sẽ giúp bạn hình dung được một cách rõ ràng hơn những công việc bạn phảilàm để biến những ý tưởng của mình thành những game thực sự.Dưới đây là nội dung những phần chúng ta sẽ xem xét trong chương này: Làm thế nào để tạo một dự án mới Xác lập các thông số cho ứng dụng Làm thế nào để khởi tạo ứng dụng với DirectX Làm thế nào để xoá màn hình ứng dụng Làm thế nào để thể hiện nền cho ứng dụng Làm thế nào để game của bạn phóng lên toàn màn hình Làm thế nào đề nhận biết khả năng hỗ trợ, cấu hình của hệ thốngXây dựng một dự án mới.Bước đầu tiên bạn cần làm cho bất kỳ một ứng dụng nào là tạo một project mới trongVisual Studio. Bạn hãy chạy Visual Studio .Net với chế độ không mở bất kỳ một projectnào.1. Lựa chọn New, Project từ thực đơn File, hộp thoại New Project sẽ xuất hiện có dạngtương tự hình minh hoạ 2.1 dưới đây. 13 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX92. Thay đổi tên của project thành example1 và lựa chọn loại ứng dụng là Win32 Projecttừ danh sách các project mẫu (project templates). Kích chọn nút OK để hoàn tất, một hộpthoại có tên Application Wizard sẽ xuất hiện với 2 tabs cho bạn lựa chọn và xác lập là:Overview, Application Settings. (hình minh hoạ 2.2)3. Lựa chọn Application Settings tab và chắc chắn rằng lựa chọn Empty Project (tạo mộtdự án rỗng) đã được tích chọn, hình minh hoạ 2.3. 14 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX94. Kích chọn nút Finish để kết thúc.Chèn thêm mã lệnh cho chương trìnhSau khi bạn thực hiện các bước trên, Visual Studio đã tạo ra một project mới cho bạn tuynhiên nó vẫn chưa chứa bất kỳ thứ gì cả. Bước tiếp theo, chúng ta sẽ tiến hành thêm mãlệnh để khởi tạo cho một ứng dụng trong môi trường window. Bạn hãy bắt đầu bằng cáchchèn thêm một tệp tin mới chứa mã nguồn và dự án.1. Lựa chọn Add New Item từ thực đơn Project. Một hộp thoại tương tự hình minh hoạ2.4 phía dưới đây sẽ xuất hiện.2. Lựa chọn kiểu file C++ File (.cpp) từ danh sách kiểu tệp tin mẫu (Templates).3. Thay đổi tên tệp tin thành winmain.cpp4. Kích chuột vào nút Open để mở tệp tin đó và bắt đầu viết mã lệnh. 15 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9WinMainPhần đầu tiên của bất kỳ một ứng dụng nào bao giờ cũng là Entry point (điểm bắt đầu,khởi tạo). Trong các ứng dụng được viết dưới dạng Consolo, hàm bắt đầu có tên làmain(), trong khi đó hàm bắt đầu của một ứng dụng Window bao giờ cũng là WinMain().Hàm WinMain này được dùng để khởi tạo ứng dụng của bạn như tạo cửa sổ giao diệnchương trình, thiết lập hàm quản lý sự kiện. Tại tời điểm này bạn có thể gõ lại theo đoạncode được liệt kê dưới đây hoặc mở file winmain.cpp trong thư mục chapter2example1. // khai báo sử dụng thư viện mẫu của Windows - cần thiết cho tất cả các ứng dụng #include HINSTANCE hInst; // khai báo biến toàn cục chứa con trỏ instance (biến thể) của chương trình HWND wndHandle; // biến toàn cục chứa con trỏ quản lý cửa sổ ứng dụng // khai báo hàm bool initWindow( HINSTANCE hInstance ); LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); // Đây là hàm winmain, hàm được gọi đầu tiền của mọi ứng dụng trong window int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { // khởi tạo cửa sổ ứng dụng if ( !initWindow( hInstance ) ) return false; // vòng lặp chính dùng để quản lý thông điệp: MSG msg; ZeroMemory( &msg, sizeof( msg ) ); while( msg.message!=WM_QUIT ) { // Kiểm tra các sự kiện được gửi tới trong hàng đợi của ứng ...