Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
12,64 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁOCÁO CUỐI KỲ GAMETANK GVHD: ThS. PHẠM THI VƯƠNG Môn học: LẬPTRÌNH TRÊN WINDOWS – WINP1.C21 Nhóm 7: 1. HUỲNH NGỌC HIỆP 10520128 2. NGUYỄN TẤN HOAN 10520135 TP. Hồ Chí Minh, tháng 5 năm 2012 LỜI CẢM ƠN Trong suốt thời gian học tập và hoàn thành báo cuối cuối kỳ, chúng em đã nhận được sự giúp đỡ, chỉ bảo tận tình của các thầy cô Trường đại học công nghệ thông tin – Đại học quốc gia thành phố Hồ Chí Minh. Chúng em xin gửi lời cảm ơn sâu sắc đến quý thầy cô. Đặc biệt xin chân thành cảm ơn thầy Phạm Thi Vương – người đã trực tiếp hướng dẫn và tạo mọi điều kiện thuận lợi giúp đỡ chúng em hoàn thành báocáo này. Chúng em cũng xin cảm ơn chân thành tới gia đình và bạn bè đã tạo điều kiện, giúp đỡ và động viên chúng em hoàn thành bài báocáo đúng thời hạn. Mặc dù đã cố gắng hết khả năng nhưng bài báocáo không thể nào tránh khỏi những thiếu xót. Rất mong nhận được sự góp ý quý báu của quý thầy cô để đồ án hoàn chỉnh hơn. Nhóm sinh viên thực hiện Nhóm 7 Tháng 5 – 2012 NHẬN XÉT CỦA GIÁO VIÊN . . . . . . . . . . . ThS. Phạm Thi Vương Nhóm 7 . . . . . . . . MỤC LỤC ThS. Phạm Thi Vương Nhóm 7 4 I. Giới thiệu Game Tank: 1. Mô tả Game Tank: Như chúng ta đã biết, hiện nay đã có rất rất nhiều game bắn xe tăng khác nhau, dường như trò chơi bắn xe tăng đã trở nên quá phổ biến. Để có thể đáp ứng một cách tốt nhất thị hiếu cho người chơi thì game cần phải có những tính năng ưu việt hơn các phần mềm khác. Ngoài một số chức năng như các game bắn tăng khác, game của chúng ta cần phải xây dựng lên những tích năng mà các game khác không có nhiều và làm nổi bật những tính năng đó. Hiện nay có một sô công cụ, ngôn ngữ, môi trường để phát triển game, nhóm chúng em đã chọn XNA để hoàn thành game bắn xe tăng bởi: - Ngôn ngữ lậptrình CSharp đơn giản, dễ học và hiểu nhanh hơn so với các ngôn ngữ lậptrình khác. - Môi trường XNA làm việc chuyên nghiệp, quản lý tốt khi làm game trên windows. - Microsoft tín nhiệm thư viện XNA này. 2. Các chức năng chính của Game Tank: Cũng như các tính năng chính của các game bắn xe tăng thông thường, GameTank có một số tình năng cơ bản và ưu việt sau: • Cho phép người chơi khởi tạo trò chơi mới. • Trong khi chơi, game có một số chức năng nổi bật sau: Người chơi điều khiển xe tăng bảo vệ Heart và tiêu diệt các xe tăng địch. Khi người chơi tiêu diệt toàn bộ xe tăng địch và bảo vệ an toàn Heart thì người chơi sẽ hoàn thành level đó. Qua các level cao hơn thì tốc độ di chuyển, tốc độ bắn đạn của xe tăng địch sẽ tăng lên và cùng với đó là các tường bảo vệ được đơn giản hơn. Để trợ giúp một phần nào đó cho người chơi thì trong khi chơi game xe tăng bảo vệ có thể nhận được một số gift sau: ItemBomb ItemBullet ItemLife ItemMove ItemScore ItemBomb: Là một item nguy hiểm cho người chơi và xe tăng địch, khi xe tăng bảo vệ hay xe tăng địch va chạm với item này thì xe tăng đó sẽ bị tiêu diệt ngay tức khắc. Vì vậy, trong khi chơi người chơi nên cẩn thận với item này. ItemBullet: Tăng tốc độ bắn đạn cho xe tăng địch. ItemLife: Tăng số mạng của xe tăng bảo vệ lên 1 mạng. ItemMove: Tăng tốc độ di chuyển cho xe tăng bảo vệ. ItemScore: Cộng điểm thành tích cho người chơi. ThS. Phạm Thi Vương Nhóm 7 5 • Trong phần Option của game, người chơi có thể tắt/mở âm thanh trong game tùy theo ý thích. Cùng với đó là tính năng Map Editor của game, cho phép người chơi thực hiện một số chức năng cơ bản sau: Thiết kế map chơi game tùy chọn theo ý thích của người chơi. Bạn có thể thiết kế map với nhiều loại tường khác nhau như: gạch, bê tông, nước và cỏ sao cho người chơi cảm thấy thích thú và hấp dẫn khi chơi game. Sau khi thiết kế map hoàn chỉnh, người chơi có thể lưu map dưới dạng file .txt và sử dụng tính năng open map để chơi game với map do bạn thiết kế. Open tùy chọn do người chơi thiết kế hoặc các level cao hơn trong game. • Giúp người chơi lưu thành tích cao nhất khi chơi game. • Nếu người chơi chưa biết được cách chơi game, làm để nào để điều khiển xe tăng, game có hướng dẫn cách chơi game cụ thể cho người chơi. • Hiển thị thông tin cơ bản về nhóm hoàn thành game. II. Giao diện chính của Game Tank: Các giao diện chính của game như sau: 1. Màn hình Loading game: Chờ đợi để load hình ảnh hiển thị cho game. ThS. Phạm Thi Vương Nhóm 7 6 2. Menu game: Hiển thị các tùy chọn trong game. 3. Màn hình Play (Chơi game): Phần giao diện quan trọng nhất trong game, nơi người chơi chơi và cảm nhận về game. ThS. Phạm Thi Vương Nhóm 7 7 4. Màn hình Pause: 5. Màn hình Option (Tùy chọn): ThS. Phạm Thi Vương Nhóm 7 8 Trong phần Option, ta có thêm tùy chọn Map Editor dùng để thiết kế Map chơi cho game. Thiết kế map xong bạn có thể sử dụng chức năng lưu map, mở map theo ý thích. Giao diện ban đầu khi mở Map Editor: Giao diện sau khi thiết kế Map Editor theo ý thích của bạn: ThS. Phạm Thi Vương Nhóm 7 9 6. Màn hình Construction (Hướng dẫn): Hiển thị các hướng dẫn chơi và sử dụng game một cách tốt nhất. 7. Màn hình High Score (Thành tích): Hiển thị điểm số người chơi cao nhất trong game. ThS. Phạm Thi Vương Nhóm 7 10 8. Màn hình About (Thông tin): Hiển thị thông tin về nhóm tác giả hoàn thành game. III. Các giải thuật dùng trong Game Tank: 1. Sơ đồ lớp và chức năng: 1.1. Sơ đồ lớp xây dựng giao diện cho game: ThS. Phạm Thi Vương Nhóm 7 [...]... hơn IV Tổng kết: Việc sử dụng thư viện lập trìnhgame XNA trong CSharp vào lậptrình giúp việc lập trìnhgame và trình bày, thể hiển được trong sáng hơn, bên cạnh đó giúp tối ThS Phạm Thi Vương Nhóm 7 ưu hóa code dể dàng Giúp cho việc 18 tích thiết kế dễ đi vào khuôn mẫu và thực phân hiện Mặc dù đã cố gắng hoàn thiện chương trình, tuy nhiên việc sai sót trong lập trình là khó tránh khỏi và còn một số... components[i].Update(gameTime); } } // Gọi hàm Update cơ sở base.Update(gameTime); } /* * Vẽ các thành phần trong game */ public override void Draw(GameTime gameTime) { for (int i = 0; i < components.Count; i++) { GameComponent gc = components[i]; if ((gc is DrawableGameComponent) && ((DrawableGameComponent) gc).Visible) { // Vẽ các thành phần lên màm hình ((DrawableGameComponent) gc).Draw(gameTime); } }...11 Lớp GameScene là một lớp trừu tượng, các lớp khác được kế thừa từ lớp GameScene dùng làm xây dựng nên các giao diện chính cho game và các màn hình hiển thị khi hoàn thành một level hay hoàn thành game 1.2 ThS Phạm Thi Vương Sơ đồ lớp xây dựng tường: Nhóm 7 12 Gamebao gồm các loại tường: gạch, bê tông, nước, cỏ và heart, nên game được xây dựng từ các class kế thừa... ảnh, âm thành và font chữ trong game: Audio và Image chứa các hình ảnh và âm thanh được sử dụng game Cùng với đó là kiểu chữ được định dạng ở font trong thư viện Font 2 Giải thuật toán quan trọng trong game: 2.1 Giải thuật quản lý và vẽ các thành phần giao diện: /* ThS Phạm Thi Vương Nhóm 7 14 * Update các thành phần cho game */ public override void Update(GameTime gameTime) { // Đếm số thành phần... Mặc dù đã cố gắng hoàn thiện chương trình, tuy nhiên việc sai sót trong lập trình là khó tránh khỏi và còn một số hạn chế mong thầy và các bạn thông cảm và góp để chương trình hoàn thiện hơn Cảm ơn thầy và các bạn đã theo dõi báo cáo của nhóm! ThS Phạm Thi Vương Nhóm 7 ... Rectangle(0, 0, texture.Width, texture.Height) , Color.White , 0 , Vector2.Zero , SpriteEffects.None, 5f); // Vẽ hiệu ứng ánh sáng xe tăng if (isFinishCircleBurn == false) { spriteBatch.Draw (Game. Content.Load ("Image /Tank- Wall/CircleBurnSprite") , new Rectangle((int)positionCircleBurn.X - 50, (int)positionCircleBurn.Y - 50, 120, 120) , new Rectangle((int)(frameX * 120), 0, 120, 120) , Color.White... level) { System.IO.StreamReader sr = null; // Nếu map được mở bằng MapEditor if (isOpen) { // Lấy đường dẫn file txt sr = System.IO.File.OpenText(filePath); } // Nếu map được mở theo chế độ mặc định trong game else { // Lấy file txt theo level mà người chơi đang chơi sr = System.IO.File.OpenText("Map" + level +".txt"); } try { // Lưu nội dung map _map = new byte[14, 17]; // Lưu nội dung file txt string... components[i]; if ((gc is DrawableGameComponent) && ((DrawableGameComponent) gc).Visible) { // Vẽ các thành phần lên màm hình ((DrawableGameComponent) gc).Draw(gameTime); } } // Gọi hàm Draw cơ sơ base.Draw(gameTime); } ThS Phạm Thi Vương Nhóm 7 15 Kỹ thuật đọc Map từ file txt: 2.2 // Lưu thông tin map đọc vào public static byte[,] _map; // Biến cờ chỉ trạng thái mở map bằng MapEditor hay chế độ mặc định . hơn. IV. Tổng kết: Việc sử dụng thư viện lập trình game XNA trong CSharp vào lập trình giúp việc lập trình game và trình bày, thể hiển được trong sáng hơn,. XNA để hoàn thành game bắn xe tăng bởi: - Ngôn ngữ lập trình CSharp đơn giản, dễ học và hiểu nhanh hơn so với các ngôn ngữ lập trình khác. - Môi trường XNA