LẬP TRÌNH DI ĐỘNG và bài TOÁN ỨNG DỤNG GAME bắn XE TĂNG
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
KHÓA LUẬN TỐT NGHIỆP
LẬP TRÌNH DI ĐỘNG VÀ BÀI TOÁN ỨNG DỤNG “GAME BẮN XE TĂNG”
Giảng viên hướng dẫn : Thạc sĩ PHẠM ĐỨC THÀNH
Sinh viên thực hiện :
1 NGUYỄN HOÀNG ANH TÚ – 3.09.01.675
2 HUỲNH NHỰT PHƯƠNG – 3.09.01.337 Ngành : CÔNG NGHỆ PHẦN MỀM
Khóa : 2009 - 2012
Trang 2MỞ ĐẦU
Research2guidance dự đoán thị trường ứng dụng cho điện thoại di động sẽ có tốc
độ tăng trưởng rất nhanh trong vòng một vài năm tới Lợi nhuận sẽ tăng gấp 8 lần sau 5năm, từ 1,95 tỉ USD năm 2009 lên 15,65 tỉ USD năm 2013
Ngoài việc dự đoán mức tăng trưởng về lợi nhuận thì Research2guidance cũng
dự đoán về số người dùng smartphone trong 5 năm tới, yếu tố giúp thị trường ứng dụngcho di động tăng trưởng Theo đó, số người dùng smartphone sẽ tăng từ 100 triệu ngườinăm 2009 lên 1 tỉ người năm 2013
Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá là thiênđường để cho các nhà phát triển ứng dụng di động
Hệ điều hành Windows Phone là một hệ điều hành khá mới và có nhiều thú vịvới thị trường Việt Nam Thị trường Windows Phone đang được phát triển rất rộng vàtiềm năng Các ứng dụng trên nền Windows Phone cũng đang được chú trọng phát triển
và đây sẽ là mảnh đất màu mỡ cho các nhà phát triển ứng dụng cho dòng Smartphone
Có một điều dễ dành nhận thấy là Việt Nam có thể là “mỏ” cho thị trường game
di động - với hơn 11 triệu thuê bao điện thoại và tốc độ tăng trưởng đang đạt mức khácao Đây thực sự đây là một mảnh đất màu mỡ không chỉ cho các nhà cung cấp gamenói riêng mà còn cho các nhà cung cấp dịch vụ nội dung nói chung Điểm đáng ghinhận là các nhà cung cấp trò chơi cho điện thoại đang cố gắng thu hút khách hàng bằngnhiều hình thức khác nhau trong đó có việc cung cấp ngày càng nhiều trò có nội dunghấp dẫn với hình ảnh đẹp và âm thanh chất lượng cao
Trang 3Đầu tiên, chúng em xin gửi lời cám ơn chân thành đến toàn bộ thầy cô KhoaCông Nghệ Thông Tin Trong nhiều năm qua, thầy cô là những người thầy cô rất tậntâm và ưu tú trong giảng dạy Thầy cô đã giúp chúng em rất nhiều trên con đường chinhphục miền tri thức vô tận này.
Chúng em xin cám ơn thầy Phạm Đức Thành đã nhận trọng trách vất vả là giáoviên hướng dẫn cho chúng em trong suốt thời gian qua Thành quả của chúng em đạtđược qua đề án là nhờ một phần không nhỏ công sức của thầy Chúc thầy được nhiềusức khỏe và thành công trên con đường cao cả mà thầy đã lựa chọn
Cuối cùng và quan trọng nhất, chúng con xin dành tất cả sự tri ân và biết ơn chogia đình yêu quý, nơi sinh ra con người, tài năng và nhiệt huyết của chúng em Xin cám
ơn những con người đóng góp thầm lặng cho thành quả của chúng em ngày hôm nay
Một lần nữa, chúng em xin cám ơn tất cả mọi người, chúc mọi người được dồidào sức khỏe Chúc cho khóa học kết thúc tốt đẹp Chúc cho Công nghệ thông tin ViệtNam mau chóng sánh ngang cùng các cường quốc năm châu trên thế giới
TP Hồ Chí Minh, tháng 07 năm 2012
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 5
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Trang 6
MỤC LỤC
CHƯƠNG 1 : WINDOWS PHONE 7 VÀ CÔNG NGHỆ SILVERLIGHT 1
1.1 Giới thiệu 1
1.2 Lịch sử các phiên bản phát triển của Windows Phone 2
1.3 Kiến trúc 3
1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone 4
1.4.1 Bắt đầu với App Hub 5
1.4.2 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng 5
1.4.3 Gỡ lỗi 1 ứng dụng 6
1.4.4 Xuất bản một ứng dụng 6
1.4.5 Quản lý xuất bản ứng dụng 6
1.5 Giới thiệu công nghệ Silverlight 7
1.5.1 Tổng quan 7
1.5.2 Silverlight là gì ? 7
1.5.3 Các đặc tính của Silverlight 8
1.6 Nghiên cứu công nghệ Silverlight 10
1.6.1 Kiến trúc tổng thể và các thành phần Siverlight 10
1.6.2 Các phiên bản và mô hình lập trình Silverlight 14
CHƯƠNG 2 : GIỚI THIỆU NỀN TẢNG XNA 18
2.1 Tổng quan về XNA 18
2.1.1 XNA là gì ? 18
2.1.2 Tại sao nên sử dụng XNA ? 18
2.1.3 Các phiên bản XNA 18
2.2 Kiến trúc của XNA 20
2.2.1 Kiến trúc của XNA 20
Trang 7CHƯƠNG 3 : GIỚI THIỆU BÀI TOÁN ỨNG DỤNG “GAME BẮN XE TĂNG”
25
3.1 Phát biểu bài toán 25
3.1.1 Khảo sát hiện trạng 25
3.1.2 Xác định yêu cầu hệ thống 26
3.1.3 Cốt truyện trò chơi 28
3.2 Mô hình Usecase 29
3.2.1 Sơ đồ Use-case 29
3.2.2 Danh sách các Actor 30
3.2.3 Danh sách các Use-case 30
3.2.4 Đặc tả Use-case 31
CHƯƠNG 4 : THIẾT KẾ CHƯƠNG TRÌNH 41
4.1 Hồ sơ phân tích 41
4.1.1 Sơ đồ lớp 41
4.1.2 Sơ đồ trạng thái: 45
4.2 Thiết kế dữ liệu 47
4.2.1 Mô tả cấu trúc file dùng để lưu trữ 47
4.2.2 Ví dụ về nội dung tập tin lưu trữ 47
4.3 Thiết kế kiến trúc 48
4.3.1 Kiến trúc hệ thống 48
4.3.2 Mô tả chi tiết từng thành phần 48
4.4 Thiết kế giao diện 50
4.4.1 Danh sách các màn hình 50
4.4.2 Mô tả chi tiết mỗi màn hình 51
CHƯƠNG 5 : KẾT LUẬN 55
Trang 85.2 Về mặt ứng dụng 55 5.3 Hướng phát triển 55
PHỤ LỤC 57
Trang 9DANH MỤC CÁC HÌNH, BẢNG BIỂU VÀ SƠ ĐỒ
Hình 1.1 Kiến trúc Windows Phone Application Platform 3
Hình 1.2 Vòng đời phát triển của 1 ứng dụng Windows Phone 4
Hình 1.3 Kiến trúc tổng thể và các thành phần Silverlight 10
Hình 2.1 Cấu trúc của XNA 20
Hình 2.2 Pipeline Content 21
Hình 2.3 Hệ trục tọa độ 2D 24
Hình 2.4 Hệ trục toa độ hệ thống 24
Hình 3.1 Hình ảnh bản đồ game và vị trí sắp xếp các xe tăng 26
Hình 3.2 Sơ đồ Use case game XE TĂNG 29
Hình 3.3 Sơ đồ Use case “Vào trò chơi” 31
Hình 3.4 Sơ đồ Use case “Phát sinh bản đồ” 32
Hình 3.5 Sơ đồ Use case “Phát sinh xe tăng địch” 33
Hình 3.6 Sơ đồ Use case “Xe tăng địch di chuyển” 34
Hình 3.7 Sơ đồ Use case “Xe tăng địch bắn đạn” 35
Hình 3.8 Sơ đồ Use case “Di chuyển xe tăng mình” 35
Hình 3.9 Sơ đồ Use case “Bắn đạn” 36
Hình 3.10 Sơ đồ Use case “Phá hủy chướng ngại vật” 37
Hình 3.11 Sơ đồ Use case “Bắn chết xe tăng địch” 38
Hình 3.12 Sơ đồ Use case “Xem hướng dẫn” 39
Hình 3.13 Sơ đồ Use case “Thiết lập tùy chọn” 39
Hình 4.1 Sơ đồ lớp game XE TĂNG 41
Hình 4.2 Sơ đồ trạng thái lớp BẢN ĐỒ 45
Hình 4.3 Sơ đồ trạng thái lớp VIÊN ĐẠN 45
Hình 4.4 Sơ đồ trạng thái lớp XE TĂNG 46
Hình 4.5 Sơ đồ trạng thái lớp VẬT PHẨM 46
Hình 4.6 Sơ đồ kiến trúc hệ thống 48
Hình 4.7 Sơ đồ class GUI 48
Trang 10Hình 4.10 Giao diện menu chính 51
Hình 4.11 Giao diện chơi game 52
Hình 4.12 Giao diện Thông tin 53
Hình 4.13 Giao diện Tùy Chọn 54
Hình 6.1 Hướng dẫn tạo Project 57
Hình 6.2 Chọn loại ứng dụng 57
Hình 6.3 Giao diện khi tạo xong Project 58
Hình 6.4 Mô tả control Image 60
Hình 6.5 Mô tả control Button 60
Hình 6.6 Miêu tả control TextBlock 61
Hình 6.7 Miêu tả control ProgressBar 61
Hình 6.8 Miêu tả control Slider 62
Hình 6.9 Demo vẽ 1 Sprite 65
Hình 6.10 Demo 1 vẽ với SpriteBatch 67
Hình 6.11 Giao diện ứng dụng 76
Hình 6.12 Giao diện công cụ MapDesigner 79
Hình 6.13 Cây thư mục ứng dụng 92
Bảng 1.1 Bảng mô tả các thành phần chính của Silverlight 11
Bảng 1.2 Bảng các nền tảng cơ sở trong Silverlight 13
Bảng 1.3 Bảng mô tả Net Framework cho Silverlight 14
Bảng 3.1 So sánh các phần mềm game Xe tăng hiện nay 25
Trang 11CHƯƠNG 1 : WINDOWS PHONE 7 VÀ CÔNG NGHỆ SILVERLIGHT 1.1 Giới thiệu
Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điềuhành Microsoft Windows Mobile Windows Phone 7 được phát triển dựa trên phần lõi
là Windows CE 7 giống Zune HD, trong khi các phiên bản trước lại dựa trên Windows
CE 5
Windows Phone 7 được Microsoft phát triển để thay thế cho hệ điều hành diđộng Windows Mobile trước đây Windows Phone bắt đầu từ phiên bản thứ 7 (khi ramắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lên đến 8.0) Được biết,
do phát triển trong thời gian ngắn nên Windows Phone rất hạn chế trong việc tươngthích ngược với các nền tảng Windows Mobile trước đó Một lý do nữa để Microsoftkhông quan tâm nhiều đến nền tảng cũ đó là vì màn hình cảm ứng bằng ngón tay ngàycàng phổ biến hơn trên điện thoại và Windows Mobile vốn thiết kế cho bút stylus đã trởnên rất lỗi thời
Windows Phone 7 bắt đầu được ra mắt chính thức vào tháng 2/2010 ở triển lãmMobile World Congress diễn ra ở Barcelona, Tây Ban Nha Đến tháng 10 cùng năm,CEO Steve Ballmer của Microsoft ra mắt 10 thiết bị Windows Phone đầu tiên đến từHTC, Dell, Samsung, LG Vài tuần sau, máy bắt đầu được bán ra ở Mỹ và Châu Âu.Tháng 5 cùng năm, Microsoft tuyên bố hợp tác với một số nhà sản xuất khác là Acer,Fujitsu và ZTE
Windows Phone 7 được Microsoft thiết kế dựa trên tiêu chí giúp lập trình viên
dễ dàng hơn trong việc tạo nên các ứng dụng RIA (Rich Internet Application) với côngnghệ nền tảng dựa trên Net, Silverlight và XN Frame Work, với những lập trình viên
đã từng làm qua Silverlight thì việc chuyển sang Windows Phone 7 là một việc rất dễdàng, không chỉ có thế Microsoft còn ưu ái cho các nhà sản xuất với việc tạo nên mộtmôi trường phát triển và thiết kế cực kỳ đơn giản và có thể chạy được trên phần cứngcủa nhiều hãnh khác nhau như HTC, Sony, LG…
Với Windows Phone, Microsoft cung cấp một giao diện người dùng mới vớingôn ngữ thiết kế của hãng có tên là Metro Nó tích hợp hệ điều hành với các dịch vụ
Trang 12Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữa Microsoft vớiNokia sau khi hãng điện thoại Phần Lan này quyết định không còn tập trung vào điệnthoại Symbian nữa Kết quả của sự hợp tác này đó là dòng Nokia Lumia ra đời ở sựkiện Nokia World 2011 Đến CES 2012, Nokia tiếp tục ra mắt hai máy Lumia mới nữa(mình sẽ đề cập ở phần sau) Việc tích hợp các dịch vụ của Microsoft (Bing, BingMaps, Windows Phone Marketplace,…) lên thiết bị Nokia được cho là sẽ tạo nên lợithế cạnh tranh cho Windows Phone với hai đối thủ lớn hiện thời là iOS và Android.Microsoft phát triển Windows Phone 7 dựa trên hai công nghệ Silverlight và XNA:
Silverlight: một sáng kiến phía client dựa trên Windows Presentation Foundation
(WPF) đã tạo ra một sức mạnh chưa từng có cho các nhà phát triển website để tạo racác giao diện người dùng tinh vi với sự kết hợp của các control sẵn có, các kí tự chấtlượng cao, các vector graphic, media, animation và data binding có thể chạy trên đaplatform và đa trình duyệt WP7 đã mang sức mạnh của Silverlight đến với các thiết
bị mobile
XNA: là một game platform hỗ trợ cả 2 thể loại game 2D và 3D với kiến trúc
game-loop truyền thống Mặc dù XNA được phục vụ chủ yếu cho việc phát triểngame trên console Xbox360 nhưng XNA cho phép các developer có thể dùng nó đểphát triển trên PC hoặc ZuneHD
Tóm gọn lại Microsoft thiết kế Windows Phone 7 với ba tiêu chí chính:
Design: End Users Come First (Có thể hiểu là chú trọng về cách dễ dùng nhất cho
người dùng)
PlaftForm: Fun and Easy to build complelting Apps and Games.
Hardware: Optermized and sandardized.
1.2 Lịch sử các phiên bản phát triển của Windows Phone
7.0.7004: phiên bản đầu tiên của Windows Phone 7
7.0.7008: nâng cấp và cải thiện một vài điểm
tốc độ chạy ứng dụng nhanh hơn, tích hợp Facebook sâu hơn
7.0.7392: sửa các lỗi liên quan đến chứng nhận bảo mật
7.0.7403: bản tiền nâng cấp để chuẩn bị bước sang một đợt nâng cấp lên
Trang 13 7.10.7720: đây là Windows Phone 7.5 với tên mã Mango, được giới thiệu2/2011 Các tính năng mới được thêm vào như Internet Explorer 9 hỗ trợ đồ họa vàchuẩn web tốt hơn, Twitter tích hợp vào People Hub, chạy đa nhiệm cho các ứngdụng bên thứ ba bằng cách tạm ngừng chúng.
7.10.7740: sửa lỗi Microsoft Exchange Server 2003 và cảnh báo hộp thư thoại
7.10.8107: hỗ trợ kết nối LTE, sửa lỗi bàn phím bị biến mất và nhiều vấn đềkhác
7.10.8112: bản cho Lumia 900 và HTC Titan II của nhà mạng AT&T
7.10.8773: còn gọi là Windows Phone 7.5 Refresh với tên mã Tango Nhiều tínhnăng mới xuất hiện như MMS tốt hơn, biểu tượng cho việc dò vị trí, xuất và quản lídanh bạ vô SIM, hỗ trợ điện thoại giá rẻ với 256MB RAM và xung nhịp CPU chậm
7.10.8779: sửa lổi, cải thiện và nâng cấp
Trang 14 Runtimes (Runtimes): Silverlight và khung XNA, cùng với Windows tính năng
điện thoại cụ thể, kết hợp để cung cấp một môi trường trưởng thành trong việc xâydựng an toàn, các ứng dụng đồ họa phong phú
Tools (Công cụ): Visual Studio và Expression Blend, và các công cụ và tài liệu liên
quan của chúng, tạo ra một trải nghiệm phát triển hoàn chỉnh để nhanh chóng tạo raứng dụng, gỡ lỗi, triển khai và cập nhật các ứng dụng
Cloud (Dịch vụ điện toán đám mây): Windows Azure, Xbox LIVE, thông báo
dịch vụ, và dịch vụ định vị, cùng với một loạt các dịch vụ web khác, cho phép cácnhà phát triển để chia sẻ dữ liệu qua các đám mây và lợi ích người tiêu dùng bằngcách cung cấp một trải nghiệm liền mạch trên thiết bị bất cứ điều gì họ đang sửdụng Kết nối với các dịch vụ web của bên thứ ba cũng hỗ trợ đầy đủ
Portal Services (Dịch vụ cổng thông tin): điện thoại Windows Marketplace cung
cấp các dịch vụ mạnh mẽ cho phép các nhà phát triển đăng ký, xác nhận, và thịtrường ứng dụng của họ
Trang 151.4 Vòng đời phát triển của 1 ứng dụng Windows Phone
Hình 1.2 Vòng đời phát triển của 1 ứng dụng Windows Phone 1.4.1 Bắt đầu với App Hub
App Hub sẽ là điểm khởi đầu cho các nhà phát triển Các nhà phát triển có thểbắt đầu bằng cách đăng ký cho một ID Windows Live Tiếp theo, họ có thể đăng ký để
có được SDK Windows Phone và cấp giấy phép liên quan để phát triển các ứng dụngbằng cách sử dụng Visual Studio và Expression Blend Đây sẽ là một download duynhất có chứa tất cả mọi thứ phát triển đòi hỏi phải xây dựng một ứng dụng choWindows Phone Nhà phát triển cũng có thể đăng ký một hoặc nhiều điện thoại để sửdụng như là phần cứng thử nghiệm xác nhận các ứng dụng mà họ đang xây dựng Bất
kỳ điện thoại Windows bán lẻ có thể được đăng ký như là một thiết bị thử nghiệm
Trung tâm ứng dụng có chứa mẫu, tài liệu, và cộng đồng nhà phát triển hoạtđộng giúp làm cho các nhà phát triển điện thoại Windows thành công
1.4.2 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng
Một khi các nhà phát triển đã đăng ký là nhà phát triển một Windows Phone và
đã cài đặt công cụ phát triển, họ có thể bắt đầu phát triển các ứng dụng của họ Trò chơi
Trang 16và các ứng dụng đồ họa chuyên sâu được tạo ra trong Visual Studio bằng cách sử dụngcác thư viện 2D và 3D của XNA Framework.
Thiết kế hình ảnh cho các ứng dụng dựa trên XAML cho Silverlight được tạo ratrong Visual Studio và/hoặc Expression Blend XAML tài liệu kết quả có chứa đánhdấu sau đó được giải thích bởi các công cụ trình bày Silverlight và các thành phần kháccủa ứng dụng điện thoại nền tảng Windows
Với Windows Phone 7.5, bây giờ bạn có thể kết hợp Silverlight và XNAFramework vào một ứng dụng duy nhất
Visual Studio IDE được sử dụng để viết mã quản lý xác định hành vi hình ảnhcủa tất cả các ứng dụng Windows Phone Khi ứng dụng được hoàn tất, một gói đượctạo ra trong đó bao gồm tất cả mọi thứ nhu cầu ứng dụng
1.4.3 Gỡ lỗi 1 ứng dụng
Trong khi tạo ra một ứng dụng Windows Phone, một nhà phát triển có thể gỡ lỗicác chương trình trên điện thoại hoặc trong giả lập điện thoại Windows Gỡ lỗi các ứngdụng liên quan đến việc tạo ra một gói phần mềm nhắm mục tiêu nền tảng gỡ lỗi và sau
đó sử dụng Visual Studio để triển khai các gói phần mềm Biểu hiện đánh giá, bước mãnguồn, và cửa sổ đồng hồ biến được tất cả các hỗ trợ
Trang 17ngôn ngữ và thị trường chỉ ra, và không ảnh hưởng xấu đến sức khỏe tổng thể của điệnthoại.
Một khi các gói phần mềm đã đáp ứng các yêu cầu điện thoại xác nhận WindowsMarketplace, nhà phát triển được thông báo và có thể công bố ứng dụng WindowsMarketplace điện thoại thông qua App Hub Các ứng dụng sau đó làm sẵn có cho ngườitiêu dùng tải về trong Windows Phone Marketplace Thẻ tín dụng và hoạt động thanhtoán điện thoại di động điều hành được hỗ trợ
1.4.5 Quản lý xuất bản ứng dụng
Sau khi một ứng dụng Windows Phone được công bố Thị trường điện thoạiWindows, nhà phát triển sử dụng App Hub để quản lý các phiên bản của ứng dụng cósẵn để mua
1.5 Giới thiệu công nghệ Silverlight
1.5.1 Tổng quan
Microsoft Silverlight là một công nghệ đa nền, đa trình duyệt dựa trên nền NETdùng để xây dựng và phát triển một thế hệ ứng dụng Web và thiết bị mới, đầy tínhtương tác và hỗ trợ tối đa về media Hiện nay Silverlight đã có 5 phiên bản dùng pháttriển ứng dụng bằng ngôn ngữ Javascript và bằng các ngôn ngữ NET framework nhưC# hay VB.NET , Bên cạnh đó công nghệ Silverlight còn được hỗ trợ bởi ngônngữ đánh dấu XAML đầy sức mạnh trong việc thể hiện giao diện người dùng Có thểnói công nghệ Silverlight đã thống nhất được tất cả các khả năng của server, Web vàứng dụng desktop, của code NET, của ngôn ngữ hình thể và ngôn ngữ truyền thống vàsức mạnh của Windows Presentation Foundation (WPF) Để cuối cùng tạo ra một ứngdụng mà người dùng phải thấy thích Một số người cho rằng công nghệ Silverlight củaMicrosoft sẽ là “sát thủ” của Adobe Flash Nhưng hiện tại thì chưa thể biết được điều gì,
vì cả hai công nghệ này đều được sử dụng bằng plug-in của trình duyệt, cả hai đều hỗtrợ đồ họa vector, âm thanh, phim ảnh, animation và ngôn ngữ script Dù người pháttriển ứng dụng là người phát triển web hay người thiết kế đồ họa thì Silverlight đều tạo
điều kiện tốt nhất để người đó có thể phát huy tối đa khả năng của mình Hiện nay
Silverlight đang là công nghệ hot trong thế giới web Đây là một công nghệ khá tốt của
Trang 18Microsoft trong việc thiết kế và phát triển các dự án web Vì vậy có khả năng nó sẽ pháttriển mạnh hơn nữa.
1.5.2 Silverlight là gì ?
Silverlight là một công nghệ đa nền tảng, đa trình duyệt được đưa ra bởiMicrososft, cho phép xây dựng các ứng dụng trên web (không phụ thuộc vào trìnhduyệt) và tương tác với Server Silverlight cung cấp một mô hình lập trình mềm dẻo vàđồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình Net như C#, Visualbasic Khả năng đa phương tiện của Silverlight thể hiện ở mức độ truyền tải âm thanh
và hình ảnh chất lượng cao một cách nhanh chóng và hiệu quả trên tất cả các trìnhduyệt (Internet Explorer, Firefox, Safari, Opera ) Điểm mạnh của Silverlight đó làcung cấp những thuộc tính thiết kế giao diện, tạo những hiệu ứng (hoạt ảnh) một cách
dễ dàng
1.5.3 Các đặc tính của Silverlight
Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép bạnđược lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán củabạn Silverlight cung cấp các tính năng sau:
Sự kết hợp của WPF và XAML: Silverlight là một gói nhỏ của công nghệ WPF
(Windows Presentation Foundation) WPF cho phép bạn tạo ra đồ họa ba chiều,hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác Các ứng dụngtạo ra bởi WPF chủ yếu là các phần mềm đóng gói Silverlight kế thừa một số thuộctính của WPF và nó được mở rộng nhiều hơn ở một số các phần tử để tạo ra giaodiện cho người dung trên trình duyệt web Tuy nhiên Silverlight cũng mang một sốđiểm hạn chế hơn WPF về tính linh động (tùy biến) trong việc thiết kế giao diện vàhiệu ứng Cả Silverlight và WPF đều dựa trên cùng một nền tảng là XAML(Extensible Application Markup Language) cung cấp các cú pháp đánh dấu đặctrưng cho việc tạo các Element
Mở rộng ngôn ngữ đa kịch bản: Silverlight cung cấp việc mở rộng cho các ngôn
ngữ đa kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện việc trìnhbày giao diện và thao tác người dùng một cách phong phú hơn
Tích hợp các ứng dụng đã có: Silverlight là sự tích hợp liền mạch với ngôn ngữ
Javascript và mã Ajax sẵn có của Asp.Net để bổ sung các chức năng bạn đã xây
Trang 19dựng được Bạn có thể tạo những tài nguyên trên nền máy chủ có trong ASP.NET
và sử dụng các khả năng của Ajax trong ASP.NET để tương tác với tài nguyên trênnền máy chủ đó mà không làm gián đoạn người dùng Các ứng dụng Silverlight cókhả năng tương tác với máy chủ, xử lý các sự kiện một cách bất đồng bộ Điều nàykhông làm gián đoạn thao tác của người dùng cuối Nếu như bạn đã từng tạo ra các
dự án web sử dụng Ajax, chắc hẳn bạn sẽ cảm thấy dễ dàng hiểu cơ chế xử lý bấtđồng bộ trong Silverlight
Trang 20 Sử dụng mô hình ngôn ngữ lập trình trên nền tảng Net framework và các công
cụ để kết hợp: Bạn có thể tạo các ứng dụng trên nền tảng Silverlight bằng cách sử
dụng các ngôn ngữ động như InronPython cũng như các ngôn ngữ như C#, VisualBasic Microsoft đã đưa ra một sự kết hợp nhuần nhuyễn cho việc tạo ra các ứngdụng Silverlight thông qua hai bộ công cụ: Visual Studio 2008 và Expression Blend
Sự đồng bộ công cụ này tạo nên sự thuận lợi tối đa cho các nhà phát triển
Hỗ trợ mạng: Silverlight hỗ trợ HTTP thông qua giao thức TCP Nó có thể thực
hiện các kết nối tới các dịch vụ của WCF, SOAP, ASP.NET và nhận về các địnhdạng theo cấu trúc XML, JSON hay dữ liệu RSS
Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ): Silverlight cho phép thực hiện những
truy vấn dữ liệu bằng cách sử dụng cú pháp trực quan và mạnh mẽ thông qua LINQ (Language Integrated Query – ngôn ngữ truy vấn tích hợp) LINQ cho phépbạn tạo những truy vấn ngay trên công cụ lập trình (Visual Studio) như trong SQL
và được tích hợp trong bộ NET Framework 3.0 trở lên Có ba điều mà bạn nênquan tâm về LINQ là: LINQ to Objects – LINQ to XML và LINQ to SQL
Thể hiện được các nội dung phức tạp: Silverlight có thể tạo ra các nội dung phức
tạp, gồm video, animation, text, đồ họa hai chiều, các hiệu ứng hình ảnh trên trangweb
Plug-in nhỏ gọn: Chỉ mất ít phút để có thể cài plugin vào trình duyệt và sử dụng
công nghệ Silverlight
Trang 211.6 Nghiên cứu công nghệ Silverlight
1.6.1 Kiến trúc tổng thể và các thành phần Siverlight
Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của Silverlightcùng với các thành phần và dịch vụ liên quan khác:
Trang 22Hình 1.3 Kiến trúc tổng thể và các thành phần Silverlight
Trang 23Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác nhau.Dưới đây là các thành phần chính của Silverlight:
Nền tảng trình bày cơ sở Các thành phần và dịch vụ hướng tới giao
diện người dùng và tương tác người dùng, bao gồmcác control dữ liệu cho người dùng nhập, thiết bị đaphương tiện, quản lý phân quyền số, trình bày dữliệu, đồ họa vector, chữ, hình ảnh động và bao gồm
cả XAML để đặc tả việc bố trí giao diện
.Net Framework cho Silverlight Là một gói nhỏ trong Net Framework, bao gồm các
thành phần và các thư viện, kể cả trong việc tươngtác dữ liệu, khả năng mở rộng các control, mạng,garbage collection, và CLR
Cài đặt và cập nhật Là thành phần để xử lý các tiến trình cài đặt làm sao
để đơn giản hóa cho lần cài đặt đầu tiên, tiếp sau
đó chỉ cung cấp cơ chế tự động cập nhật và tươngtác ở mức thấp
Bảng 1.1 Bảng mô tả các thành phần chính của SilverlightKiến trúc Silverlight:
Browser Plug-in:
Plug-in này cung cấp những cơ chế như sau:
1) Thiết lập và thay đổi nội dung XAML thực thi nó runtime
2) Lấy những đối tượng tại thời điểm runtime, thao tác thông qua javascript
3) Tăng khả năng download nội dung
Element Tree:
1) Nó chính là cây của những đối tượng như: đối tượng Path, đối tượng Image và đốitượng MediaElement mà bạn tạo ra để xây dựng ứng dụng và nó tương tự như là câyHTML Tuy nhiên, nó có nhiều graphics element hơn so với HTML, và mô hình đểlập trình thì giống như DOM Để có thể xây dựng Element Tree, chúng ta có thểdùng XAML parser được cung cấp bởi Silverlight sử dụng hàm CreateFromXaml.2) Để có thể thay đổi Element Tree thì:
a) Dùng Javascript API
b) Sử dụng Animation System để thay đổi giá trị over time
Trang 24 Rendering Engine
Các tính năng:
1) Tăng tính redraw giữa những frame, hạn chế số pixel vẽ dựa vào nội dung mà thayđổi
2) Chỉ render những nội dung visible, không render những nội dung transparent
3) Dựa vào sự thuận lợi của CPU mà chúng cải thiện render
Đặc trưng của Render Engine:
Hỗ trợ hình cơ bản như: hình chữ nhật, Ellipse, Image
Hỗ trợ Brush
Hỗ trợ Text Render
Hỗ trợ độ trong suốt
- Input and Events: Cung cấp sự kiện
- Animation System: Animation tăng tính linh hoạt GUI
- Downloader and Packaging: XAML, images, fonts được đóng gói vào bên trong file
*.zip dựa vào đối tượng Downloader
- Ink Support: hỗ trợ vẽ nội dung sử dụng Pen, tương tự như Paint
Trang 25vẽ hoặc các thiết bị đầu vào khác.
Trình bày giao diện người dùng (UI
Rendering)
Trình bày vector và các đồ họa ảnhbitmap, ảnh động và văn bản …
Thiết bị nghe nhìn (Media) Các tính năng quản lý và phát 1 vài
file hình ảnh và âm thanh
khả năng tùy chỉnh về khuôn mẫu
Xếp đặt layout Cho phép khả năng xếp đặt vị trí động
các thành phần giao diện người dùng
Trình bày dữ liệu (Data Binding) Cho phép việc kết nối dữ liệu của các
đối tượng và các thành phần giao diệnngười dùng
Bảng 1.2 Bảng các nền tảng cơ sở trong Silverlight
Các lập trình viên có thể tương tác với thành phần “nền tảng trình bày cơ sở”trên bằng cách sử dụng XAML để đặc tả XAML là một yếu tố quan trọng nhất trongviệc tương tác giữa Net Framwork và các kiểu trình bày Layout, ngoài ra các lập trìnhviên cũng có thể sử dụng cơ chế quản lý code bên trong để thao tác với lớp trình bày
Trang 26 Net Framework cho Silverlight:
và LINQ với đặc tả XML, dễ dàng xử lýviệc tích hợp và làm việc với dữ liệu từnhiều nguồn khác nhau
Base class library Nó cung cấp các chức năng lập trình chủ
yếu như việc xử lý chuỗi, biểu thức chínhquy, đầu vào và đầu ra, ánh xạ, tập hợp vàtoàn cục hóa
Window Communication Foundation
(WCF)
Cơ chế này bao gồm một đối tượng trìnhduyệt, HTTP request và HTTP Response,RSS, JSON, POX, và các SOAP
Common language runtime (CLR) Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ
Dynamic language runtime (DLR) Hỗ trợ việc biên dịch và thi hành với tính
năng động của các ngôn ngữ kịch bản như Javascript và IronPython cho các chươngtrình trên nền tảng Silverlight
Bảng 1.3 Bảng mô tả Net Framework cho Silverlight 1.6.2 Các phiên bản và mô hình lập trình Silverlight
Silverlight 1.0:
Sau 6 tháng thử nghiệm, tháng 11/2007 Silverlight 1.0 đã được Microsoft chínhthức ra mắt trước xu hướng nội dung Web tương tác đang thịnh Là một plug-in của trìnhduyệt, Silverlight 1.0 mang sức mạnh âm thanh và video cải tiến đến với các ứng dụngWeb, nó cũng được coi là lời phúc đáp của Microsoft với công nghệ Flash (của đối thủAdobe) đang rất phổ biến Silverlight có thể giúp cho Microsoft gây dựng thanhthế trong lĩnh vực thiết kế giao diện Web và cạnh tranh với Flash như một nền tảng choứng dụng Web trong tương lai Silverlight 1.0 bao gồm framework thuyết trình, có thể
xử lý hình ảnh, chữ, hình họa, âm thanh, hình ảnh cùng lúc, đồng thời thiết kế giao diệnngười dùng bằng ngôn ngữ đánh dấu XAML của Microsoft Các nhà phát triển có thểtạo ra các ứng dụng Silverlight nhờ một add-on miễn phí bên trong phần mềm VisualStudio 2008 sắp phát hành
Trang 27 Cung cấp nhiều thư viện mẫu Dễ dàng xây dựng và điều chỉnh các ứng dụng
Siêu Zoom Tính năng này sẽ hỗ trợ rất tốt những hình ảnh có độ phân giải cựccao đang dần trở nên phổ biến
Hỗ trợ toàn diện các hệ thống mạng REST, WS*/SOAP, POX, RSS và tất nhiên là
cả HTTP, tính năng này sẽ giúp những ứng dụng dễ dàng tích hợp được với các hệthống sẵn có
Hỗ trợ nhiều ngôn ngữ lập trình Không chỉ hỗ trợ các ngôn ngữ NET Framework,Silverlight 2 có thể hỗ trợ rất nhiều ngôn ngữ lập trình như Visual Basic, C#,JavaScript, IronPython và IronRuby Điều này sẽ giúp các nhà phát triển dễ dànghơn trong việc lập trình dựa trên các kỹ năng sẵn có
Bảo mật nội dung Tính năng này được tích hợp sẵn trong Silverlight DRM, cungcấp bởi PlayReady, mang đến khả năng bảo mật mạnh mẽ
Tăng khả năng lưu trữ cho máy chủ và tạo ra các hội quảng cáo mới
Tính năng này giúp việc truyền tải dữ liệu tốt hơn dựa trên, tối ưu hóa các công cụtìm kiếm, hỗ trợ các hình thức quảng cáo thế hệ tiếp theo
Hỗ trợ nhiều nền tảng và trình duyệt
Silverlight 2 có khả năng tương thích với các hệ điều hành phổ biến như Mac,Windows hay Linux, đồng thời nó cũng có thể dễ dàng tích hợp vào các trình duyệtnhư Firefox, Safari và Windows Internet Explorer
Những khách hàng đang sử dụng các phiên bản cũ hơn sẽ được tự động cập nhậtlên Silverlight 2
Trang 28 Silverlight 3.0:
Một số đặc điểm bổ sung cho Silverlight ở phiên bản này là việc hỗ trợ cảm ứng đa điểm (multi-touch), cải thiện chất lượng chữ viết, hỗ trợ cho một số định dạng video mới(chẳng hạn như H.264,MP4, ACC), trình diễn hình ảnh 3D được hoàn hảo hơn, tự độngtối ưu hóa cộng cụ tìm kiếm và có kích thước nhỏ gọn Bên cạnh đó, người dùng có thểtương tác cùng ứng dụng Silverlight - hoạt động riêng rẽ với trình duyệt, tức đóng vai trò làmột ứng dụng offline
Silverlight 3 cho phép các nhà phát triển và thiết kế tạo ra những ứng dụng web cótính chất đột phá nhằm mang đến cho khách hàng những trải nghiệm tốt trong môitrường web
Silverlight 4.0:
Hôm 17/5/2010, Microsoft đưa ra Silverlight 4 Tools for VisualStudio 2010, góiadd-on cho Visual Studio 2010 IDE, cung cấp công cụ cho nền tảng Silverlight 4 Nócung cấp một bộ đầy đủ các tính năng mạnh mẽ để phát triển ứng dụng kinh doanh.Silverlight cung cấp một nền tảng lý tưởng cho việc phát triển và triển khai các ứngdụng kinh doanh hiện đại cho cả hai mặt: khách hàng và nhân viên, các ứng dụng.Tính năng mới cho các nhà phát triển ứng dụng:
Hỗ trợ in ấn toàn diện cho phép báo cáo bản in và các tài liệu cũng như in xem ảo,độc lập với nội dung màn hình
Một tập hợp đầy đủ các hình thức điều khiển với hơn 60 tùy chỉnh, các thành phần
styleable Nút điều khiển bao gồm RichTextbox với các siêu liên kết, hình ảnh, điều
khiển trong dòng, và chỉnh sửa Tăng cường kiểm soát bao gồm DataGrid vớisortable/resizeable cột và copy/paste
WCF RIA dịch vụ giới thiệu mạng lớp doanh nghiệp và truy cập dữ liệu cho việc xây dựng các ứng dụng bao gồm cả giao dịch, phân trang dữ liệu, WCF và HTTP
cải tiến
Được xây dựng trong dự án hỗ trợ cho các ứng dụng Silverlight
Editor với intellisense đầy đủ cho XAML và ngôn ngữ C#,VB Silverlight 4
mở rộng khả năng cung cấp của một tầng lớp mới của ứng dụng Rich Internet để làmviệc trên máy tính để bàn mà không có mã bổ sung hoặc runtimes
Trang 29 Silverlight 5.0:
Silverlight 5 sẽ có 40 tính năng mới Một số điểm đáng chú ý của Silverlight 5 baogồm:
Hỗ trợ giải mã Video và đồ họa 3D
Hỗ trợ cho hệ điều hành 64 bit
Hỗ trợ điều khiển từ xa
Cải thiện khả năng tiết kiệm điện năng bằng cách kích hoạt“screen saver” khi xemvideo và giúp máy tính chuyển sang chế độ Sleep khi video không chạy
Tính năng TrickPlay cho phép video có thể được chơi ở nhiều tốc độ khác nhau và
hỗ trợ tua nhanh, tua lại
Trang 30CHƯƠNG 2 : GIỚI THIỆU NỀN TẢNG XNA
2.1 Tổng quan về XNA
2.1.1 XNA là gì ?
XNA là một kiểu chơi chữ, nó viết tắt cho câu “Xna’s Not an Acronym” Nó làmột bộ công cụ chạy trên môi trường runtime được cung cấp bởi Microsoft XNA đãđơn giản hóa cho công việc phát triển và quản lý game trên máy tính, nó giải tỏa chocác nhà phát triển game khỏi những dòng code cứng nhắc lặp đi lặp lại và mang đếnmột diện mạo khác của việc sản xuất game vào trong một hệ thống đơn lẻ bằng cáchgiúp họ viết game theo một khuôn dạng có sẵn
2.1.2 Tại sao nên sử dụng XNA ?
Bạn có thể sử dụng XNA để lập trình game cho XBOX360, Zune,WindowsPhone 7, PC, XNA cung cấp cho người lập trình sẵn các công cụ thiết kếgame 2D và 3D, đầy đủ các thành phần đồ họa cần thiết kế game
Ngoài ra, XNA đã cấu hình sẵn thích hợp với các loại môi trường nhất định, vìthế người lập trình không cần phải tốn công sức để thiết lập cấu hình cho game
Được viết trên nền C#, một ngôn ngữ hướng đối tượng rất dễ tiếp cận, nên rất dễdàng cho người mới bắt đầu vào con đường làm game
Bên cạnh đó, XNA xây dựng cấu trúc file riêng để có thể bảo đảm được mãnguồn các tài nguyên của lập trình viên như hình ảnh, model 3D, âm thanh
XNA Game Studio 1.0: phiên bản đầu tiên của XNA 1.0 ra đời vào ngày 30 tháng 8
năm 2006 và theo sau là phiên bản thứ 2 vào ngày 1 tháng 10 năm 2006 Ngaytháng sau, Microsoft cho ra phiên bản hoàn chỉnh vào ngày 11 tháng 12 2006
XNA Game Studio Express 1.0: Vào ngày 24/04/2007, phiên bản Express đầu tiên
của XNA Game Studio hướng đến giới sinh viên, những người đam mê và những
Trang 31nhà phát triển game cá nhân Nó có sẵn để bạn down xuống miễn phí Bản Expresscung cấp những "StartKit" cơ bản để những game coder dễ dàng phát triển nhữnggame theo nhiều thể loại khác nhau (Như dòng platform, dòng chiến thuật thời gianthực, hoặc game bắn súng góc nhìn thứ nhất) Các nhà phát triển viết game trên PCthì được miễn phí nhưng với Xbox bạn sẽ mất 99$/năm để được tham gia vào
"XNA Creator's Club"
XNA Game Studio 2.0: ra đời vào ngày 13/12/2007 nó đã được trang bị tính năng
có thể sử dụng với tất cả phiên bản từ Visual Studio 2005 trở lên (bao gồm cả phiênbản free Visual C# 2005 Express Edition), có thể sử dụng cho cả Windows và Xboxcùng với sự hỗ trợ điều khiển tốt hơn Bản setup luôn có sẵn để bạn download trêntrang web của XNA Creators Club
XNAGame Studio 3.0: (Sử dụng cho VS2008 hay bản miễn phí Visual C# 2008
Express Edition) cho phép sản xuất nhiều game hướng đến thị trường hệ máy Zune
và thêm tính năng hỗ trợ từ Xbox Live community Bản chính thức ra mắt vào30/8/2008 XNA Game Studio 3.0 hỗ trợ phiên bản C# 3.0, và hầu như toàn bộ cácphiên bản từ Visual Studio 2008 Nó được cập nhật thêm nhiều chức năng mới nhưchế độ dùng thử để bạn có thể dễ dàng tạo game có chế độ dùng thử, mời gọi ngườichơi khác ở những game nhiều người chơi trên Xbox LIVE, tạo game chạy đa nềntảng như Windows, Xbox 360 và Zune
XNA Game Studio 3.1: Ra mắt vào ngày 11 tháng 6/2009 , hệ thống đồ hoạ cho
phép chạy lại video, hệ thống kết nối Xbox LIVE và hỗ trợ game cho phép sử dụngtính năng Avatar của Xbox Phiên bản này cho phép sinh viên tải xuống và sẽ đượctích hợp thêm 12 tháng tiền hội phí để họ tham gia vào "XNA Creators Club", đây
là một phần của chương trình "Microsoft's DreamSpark"
XNA Game Studio 4.0: XNA Game studio 4 được công bố và trình diễn tại "cộng
đồng giới thiệu công nghệ" tại GDC vào 9/3/2010 và phiên bản chính thức ra đờivào ngày 16/9/2010 Nó đã hỗ trợ thêm nền tảng Windows Phone 7 (bao gồm cả giatốc phần cứng 3D), trang bị thêm đặc tính, các đối tượng được xây dựng sẵn, cácthiết bị đồ hoạ có hướng và vô hướng, hỗ trợ chạy đa nền tảng, hỗ trợ điều khiểncảm ứng đa diểm chạm, hỗ trợ nhận âm thanh từ micro và tăng tốc âm thanh phátlại, ngoài ra nó có khả năng tích hợp trực tiếp vào Visual Studio 2010
Trang 32Hiện nay, XNA đã gần như hoàn thiện toàn bộ lĩnh vực phát triển game củaMicrosoft, bao gồm cả bộ phát triển ứng dụng Xbox chuẩn (Xbox Development Kit) vàXNA Game Studio.
XNA framework là một bổ sung tự nhiên vào bộ .Net Frameworkk 2.0 trênWindows Nó bao gồm một bộ thư viện các lớp, được xây dựng một cách đặc thù chocông việc phát triển game, để nâng số code có thể sử dụng lại lên mức tối đa nhằm tạoứng dụng chạy được trên nhiều nền tảng
2.2 Kiến trúc của XNA
2.2.1 Kiến trúc của XNA
Cấu trúc chung:
Hình 2.1 Cấu trúc của XNA
Mỗi game bao gồm việc chuẩn bị môi trường mà game sẽ chạy Chạy gametrong một vòng lặp cho đến khi game kết thúc khi gặp một điều kiện nào đó, và sau đómôi trường sẽ được là sạch như lúc bắt đầu
Đây là cấu trúc một game đơn giản bao gồm cả vòng lặp game:
Trang 33 Hàm Initialize( ): Đây là hàm khởi tạo các giá trị khởi đầu của class game Nếu ta
có các khởi tạo về input thì nên đặt vào trong hàm này
Hàm Load Content( ): Đây là hàm dùng để load những nội dung của game như:
Imagie, Sprite, Sound, Model, … Hàm này sẽ được thực hiện sau hàm Initialize vìthế các tài nguyên sẽ được load thông qua Pipeline Content
Hàm Update( gameTime):
Đây là hàm dùng để thực hiện xử lý các nội dung, hành động game, các Input từngoài nhận vào
Ngoài ra, ở hàm này nó còn thực hiện các tương tác, va chạm, điều khiển nhân vật
Đây là phần chính của game, điều khiển mọi hoạt động, còn được gọi là bộ não củagame
Hàm Draw (gameTime):
Đây là một hàm không kém phần quan trọng của game Nếu update là bộ não, linhhồn của game, thì Draw là hàm tạo nên vỏ bền ngoài của game, nó làm cho ta thấyđược vẻ đẹp của game
Đây là hàm dùng để vẽ các hình ảnh trong game, hiển thị game ra màn hình đối vớingười chơi, nó sẽ được vẽ theo thời gian gameTime
Hàm UnloadContent( ): Hủy tất cả các tài nguyên, dọn dẹp bộ nhớ.
Pipeline Content:
Hình 2.2 Pipeline Content
Là một trong những đặc điểm đáng chú ý nhất mà XNA mang lại cho bạn, bởi lẽ
nó làm đơn giản hóa cách bạn xây dựng game hoặc tạo ra sự thỏa thuận giữa nhữngkhác biệt trong nội dung của từng công cụ Đây là nơi lưu trữ các tài nguyên game, nó
đã được mã hóa và biên dịch cùng với game Từ đó ta có thể thông qua Content mà có
Trang 34Một số thành phần trong Source Asset:
3-D file formats: X (used by DirectX), FBX (transport file format, originally tạo bởi3DsMax, Maya và một số tool khác)
Material file formats: FX (file hiệu ứng, dùng để draw model 3D lên màn hình hoặc
để tạo hiệu ứng trong game)
2-D file formats: BMP , DDS, DIB, HDR, JPG, PFM, PNG, PPM, and TGA (đây lànhững định dạng phổ biến nhất của texture 2D)
Font description: SPRITEFONT (XML files được sử dụng bởi XNA, sử dụng chúng
để Draw text trong game)
Audio file formats: XAP (được tạo ra bơi XACT tool (công cụ tạo âm thanh đi kèmvới XNA, hỗ trợ phần lớn định dạng âm thanh khác nhau)
2.3 Các thành phần trong XNA
Sprite: Một sprite là một bức ảnh 2D có thể điều khiển độc lập từ phần bên ngoài
của cảnh game Điều kiện sử dụng thường mô tả một bức ảnh nào đó trên lớp sửdụng bằng cách thể hiện bức ảnh đó trên màn hình của game (nó bao gồm các thuộctính như là vận tốc, vị trí, chiều dài, chiều rộng, và v.v)… Máy tính luôn vẽ bức ảnhtheo hình chữ nhật, thường sử dụng bao quanh một sprite kể cả khi hình đó trongsuốt, nó được cung cấp một khoảng trống tạo ra ảo giác của một hình không phảihình chữ nhật Thành phần “sprite hoạt hình” được xem như một sprite có nhiềunhững bức ảnh thay đổi một cách liên tục một cách xác định trước trong một khoảngthời gian xác định ( điều đó tạo ra ảo giác rằng sprite đang chuyển động) Như làmột người đang đi bộ hay một bánh xe đang quay tròn
Texture: là những bức ảnh 2D được load vào mô hình 3D nào đó, nó bao phủ và
nằm trên bề mặt của mô hình 3D và dùng để làm đẹp cho cảnh trong game Có thể
sử dụng texture để giúp tạo ảo giác về một vật có đồ họa chi tiết khi một bức ảnh sẽbao một mô hình 3D đơn giản
Billboarch (Bảng yết thị): Đây là một thành phần trong thế giới 3D cũng sẽ đại
diện một texture vẽ bản đồ vào trong một máy bay đặc biệt mà luôn thẳng góc tớitrục camera Sử dụng 3D như những hình ảnh trong billboarding là một kỹ thuật có
Trang 35hiệu quả để tạo ra những thành phần trò chơi như những cái cây, một con đường,hoặc một ngọn đuốc trong tường mà không có nhu cầu để tạo ra những mô hình cótính chi tiết cao Sự cho phép này trình bày chi tiết cảnh vật với sức mạnh xử lý.
Background (Nền): Một cảnh trong game 2D là một hình ảnh nền với nhiều sprites
trình bày trên nó Khi 1 hình nền là 1 hình ảnh tĩnh, bạn có 1 hình nền cuộn Nó làđặc điểm chính trong các trò chơi được gọi là các thanh cuộn Nó cũng đề cập đếnparallax scrolling, một kĩ thuật cuộn đặc biệt trong chò trơi 2D có nhiều hơn 1 hìnhnền cuộn với tốc độ cuộn khác nhau, cái mà cung cấp những ảo ảnh của môi trường3D Ví dụ: Trong khi nhân vật trong game chuyển động qua trái, thì những cái cây
và những bụi cây đằng sau nó sẽ chuyển động ngược hướng với nhân vật với tốc độbằng tốc độ di chuyển của người chơi, những ngọn núi xa dần và những đám mâytrên bầu trời cũng sẽ di chuyển
Tiles: là những hình ảnh nhỏ được sử dung để biên soạn những hình ảnh lớn hơn,
chúng thường được liên kết lại với nhau trên nền thông thường đề tạo ra nhữngplatform game khác nhau cùng từ những hình ảnh cơ bản Ví dụ: Trong map game,dùng tiles đề xây dựng địa hình, chướng ngại vật, trong game nhập vai, Tiles được
sử dụng để cung cấp một cấp độ của nhân vật để đáp ứng 1 trong số các điều kiệnnâng cấp nhân vật, vũ khí…
Trang 362D và hệ thống hệ trục tọa độ:
Hình 2.3 Hệ trục tọa độ 2D
Hệ trục tọa độ oxy hệ thống:
Hình 2.4 Hệ trục toa độ hệ thống Cách di chuyển Sprite trên hệ tọa độ:
Khi tạo 1 game 2D là mình làm việc trực tiếp trên màn hình có hệ trục tọa độOxy, do đó di chuyển sprite là điều khá đơn giản, tất cả những gì cần làm là vẽ spritetrên những vị trí khác nhau, bằng cách thay đổi tọa độ X sẽ làm cho sprite di chiểu sangtrái hay phải, thay đổi tọa độ Y giúp nó di chuyển lên trên hay xuống dưới hoặc giữ lại
ở gốc tọa độ (0,0) nó sẽ ở phía đỉnh bên trái của cửa sổ game
CHƯƠNG 3 : GIỚI THIỆU BÀI TOÁN ỨNG DỤNG “GAME BẮN XE TĂNG”
3.1 Phát biểu bài toán
3.1.1 Khảo sát hiện trạng
Nhu cầu thực tế của đề tài
Trang 37Game “Xe tăng” là một trong những game rất hay và đến bây giờ vẫn còn hấpdẫn đối với nhiều người Tuy có rất nhiều game hiện nay dựa trên game của Battle Citynhưng lại không hay bằng bản cũ.
Ban đầu game được Namco sản xuất cho các hệ máy Arcade với tên TankBattalion, thế nhưng game này chỉ chơi được 1 người Khi chuyển sang NES, gameđược đổi tên thành Battle City, cải thiện về mặt đồ họa, đặc biệt là bổ sung thêm 2người chơi
Game còn được port sang hệ máy Gameboy Về sau có rất nhiều phiên bản mớihơn do fan làm bổ sung nhiều chức năng hơn, thậm chí hiện nay vẫn có nhiều game bắn
xe tăng trên PC phòng theo game này
Các phần mềm cùng loại hiện có
Game “Battle City” của hãng NES
Game xe tăng trên hệ máy Gameboy …
Những hạn chế trong những phần mềm hiện có
“Battle City” của hãng NES Game xe tăng trên hệ máy
Gameboy
Đồ họa, âm thanh Chưa đẹp, không sinh động 3D, sinh động
Cảm nhận Nhiều người chơi, game kinh điển Giới hạn người chơi
Bảng 3.1 So sánh các phần mềm game Xe tăng hiện nay
Trang 38Nhóm lập trình chúng em sẽ cố gắng khắc phục các nhược điểm của các phầnmềm cùng loại hiện có
Ngoài ra, chúng em cũng cố gắng xây dựng thêm một số tính năng riêng biệt đểtrò chơi thêm đặc sắc
Về phần áp dụng thuật toán tìm đường ngắn nhất A* áp dụng cho xe tăng địch,chúng em sẽ cố gắng xây dựng một cách tốt nhất có thể Và đây là phần nhóm chúng
Trang 39Di chuyển xe tăng mình:
- Người chơi chạm vào một điểm trên màn hình , xe tăng ta sẽ tự động xoay đến hướng
đó, sự kiện này dùng để xe tăng đổi hướng để di chuyển
- Người chơi chạm và kéo giữ xe tăng về một hướng nào đó , xe tăng sẽ di chuyển đếnhướng đó cho đến khi người chơi thả tay ra
- Xe tăng mình sẽ được di chuyển từng bước trên bản đồ
- Nếu gặp chướng ngại vật hoặc xe tăng địch chắn đường thì không thể di chuyển được,phải chọn hướng khác di chuyển
Bắn đạn:
- Người chơi dùng phím tròn bên phải màn hình chơi để bắn đạn.
- Mỗi lần chỉ có thể bắn ra 1 viên đạn
- Số lượng đạn không bị giới hạn đối với xe tăng mình
- Nhiệm vụ của người chơi là bắn chết tất cả xe tăng của địch và bảo vệ đại bàng khôngcho xe tăng địch bắn chết đại bàng
Xe tăng địch di chuyển và bắn đạn:
- Xe tăng của địch sẽ tự động được phát sinh, di chuyển và bắn đạn.
- Mọi hoạt động của xe tăng địch đều được tự động
- Xe tăng địch sẽ tự động tìm đường ngắn nhất đi đến đại bàng để bắn chết đại bàng củaquân ta
Trang 403.1.3 Cốt truyện trò chơi
Ở đất nước RoSoft xa xôi, có một ngôi làng mang tên là KiA Ngôi làng nàyđược bảo vệ một vật rất linh thiêng, đó là tượng đại bàng Bức tượng này đã đem lạicuộc sống ấm no, bình yên và hạnh phúc cho ngôi làng suốt thời gian dài Biết đượcđiều đó, tên quái vật CeDes hung tợn đã đem đạo quân xe tăng của chúng tấn công ngôilàng với mục đích đập vỡ bức tượng đại bàng linh thiêng, nhằm cai trị ngôi làng KiA.Trong lúc đó, chàng thanh niên Asus đã lãnh đạo người dân trong làng đấu tranh chốnglại thế lực của tên quái vật Chàng đã dùng chiếc xe tăng mà cha chàng để lại trước khimất để chống lại tên CeDes gian ác Với tài năng và sự thông minh của mình, chàngquyết tâm giữ cho bức tượng đại bàng được an toàn để bảo vệ cho người dân tronglàng Bạn sẽ phải hóa thân thành chàng trai Asus để điều khiển chiếc xe tăng và tiêudiệt tất cả bọn lính của tên quái vật Mục tiêu cao nhất là bảo vệ được bức tượng đạibàng – vận mệnh của ngôi làng