10.04.2017 Views

Catalouge 2010

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ĐẠI HỌC ĐÀ NẴNG<br />

TRƢỜNG ĐẠI HỌC BÁCH KHOA<br />

KHOA CÔNG NGHỆ THÔNG TIN<br />

Tel. (84-511) 736 949, Fax. (84-511) 842 771<br />

Website: itf.dut.edu.vn, E-mail: cntt@dut.udn.vn<br />

----------<br />

BÁO CÁO THỰC TẬP TỐT NGHIỆP<br />

NGÀNH CÔNG NGHỆ THÔNG TIN<br />

MÃ NGÀNH : 05115<br />

ĐỀ TÀI<br />

TÌM HIỂU HỆ ĐIỀU HÀNH WINDOWS PHONE<br />

VÀ XÂY DỰNG GAME TETRIS<br />

SVTH : Hoàng Văn Hiếu<br />

Lớp : 11TH2.LT<br />

Đơn vị : Công ty CP GPCN LAPOO<br />

CBHD : Nguyễn Văn Thanh<br />

Đà Nẵng, tháng 8 năm 2013


LỜI CAM ĐOAN<br />

Em xin cam đoan :<br />

1. Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn<br />

trực tiếp của anh Nguyễn Văn Nguyên<br />

2. Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên<br />

tác giả, tên công trình, thời gian, địa điểm công bố.<br />

3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin<br />

chịu hoàn toàn trách nhiệm.<br />

Sinh viên thực hiện<br />

Hoàng Văn Hiếu


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

MỤC LỤC<br />

LỜI CAM ĐOAN ....................................................................................................... 2<br />

Chƣơng 1 .................................................................................................................... 5<br />

GIỚI THIỆU VỀ CÔNG TY THỰC TẬP ............................................................. 5<br />

I. Giới thiệu về đơn vị thực tập .................................................................................. 5<br />

II. Triết lý kinh doanh và lĩnh vực hoạt động ............................................................. 6<br />

Chương 2 ..................................................................................................................... 7<br />

GIỚI THIỆU CHUNG VỀ ĐỀ TÀI ............................................................................ 7<br />

2.1 Mục tiêu và nhiệm vụ của đề tài ........................................................................ 7<br />

2.1.1 Nhiệm vụ: ............................................................................................................. 7<br />

2.1.2 Mục tiêu: ............................................................................................................... 7<br />

2.2 Khả năng ứng dụng thực tế. .............................................................................. 7<br />

Chƣơng 3 .................................................................................................................... 8<br />

CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI ........................................................................ 8<br />

3.1. Giới thiệu về hệ điều hành Windows Phone 7 .................................................... 8<br />

3.1.1 Giới thiệu ........................................................................................................ 8<br />

3.1.2 Lịch sử các phiên bản phát triển của Windows Phone ................................... 9<br />

3.1.3 Kiến trúc ....................................................................................................... 10<br />

3.1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone.................................. 11<br />

3.1.5 Bắt đầu với App Hub .................................................................................... 11<br />

3.1.6 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng ............................. 12<br />

3.2 Giới thiệu công nghệ Silverlight ..................................................................... 12<br />

3.2.1 Tổng quan ........................................................................................................... 12<br />

3.2.2 Silverlight là gì ? ................................................................................................. 12<br />

3.2.3 Các đặc tính của Silverlight ................................................................................ 13<br />

3.3 Nghiên cứu công nghệ Silverlight ................................................................... 14<br />

3.3.1 Kiến trúc tổng thể và các thành phần Siverlight ................................................. 14<br />

3.3.2 Nền tảng của Silverlight: .................................................................................... 16<br />

Bảng 1.3. Bảng mô tả .Net Framework cho Silverlight ............................................... 17<br />

3.4 Giới thiệu về XNA .......................................................................................... 17<br />

3.4.1 XNA là gì ? ......................................................................................................... 17<br />

3.4.2 Tại sao nên sử dụng XNA ? ................................................................................ 17<br />

3.4.3 Các phiên bản XNA ............................................................................................ 18<br />

2.2 Kiến trúc của XNA .......................................................................................... 19<br />

2.2.1 Kiến trúc của XNA ............................................................................................. 19<br />

2.3 Các thành phần trong XNA ............................................................................. 20<br />

Chƣơng 4 .................................................................................................................. 22<br />

XÂY DỰNG ỨNG DỤNG VỚI WINDOWS PHONE ........................................ 22<br />

4.1. Tạo mới 1 Project : ......................................................................................... 22<br />

4.2 Giới thiệu về ngôn ngữ XAML và các control dùng trong ứng dụng Windows<br />

Phone ..................................................................................................................... 23<br />

4.2.1 Giới thiệu ngôn ngữ XAML ............................................................................... 23<br />

4.2.2 Sử dụng Expression Blend để xây giao diện trong Windows Phone 7.1 ............ 24<br />

4.2.3 Làm việc với TextBox và ViewBox ................................................................... 25<br />

Chƣơng 5 .................................................................................................................. 27<br />

XÂY DỰNG CHƢƠNG TRÌNH ............................................................................ 27<br />

5.1 Giới thiệu về đề tài. ............................................................................................. 27<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 3 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

5.2 Khảo sát đề tài ..................................................................................................... 27<br />

5.3 Mô hình USECASE ............................................................................................ 28<br />

5.3.1. Sơ đồ Use-Case ........................................................................................... 28<br />

5.3.2 Danh sách các Actor ..................................................................................... 29<br />

5.3.3 Danh sách các Use-case ............................................................................... 29<br />

5.4 Đặc tả Use-case ............................................................................................... 29<br />

5.4.1. Use-case “Game Tetris” ..................................................................................... 29<br />

5.4.2. Use-case “Chơi mới” ......................................................................................... 30<br />

5.4.3. Use-case “Level” ............................................................................................... 30<br />

5.4.4. Use-case “Hướng dẫn” ...................................................................................... 31<br />

5.4.5. Use-case “Thông tin” ......................................................................................... 31<br />

5.4.6. Use-case “Thoát” ............................................................................................... 32<br />

Chƣơng 6 .................................................................................................................. 34<br />

THIẾT KẾ GIAO DIỆN VÀ DEMO CHƢƠNG TRÌNH ................................... 34<br />

6.1. Danh sách các màn hình ................................................................................. 34<br />

6.2.2. Màn hình “Chơi Game” ..................................................................................... 35<br />

6.2.3. Màn hình “Chọn cấp độ” ................................................................................... 36<br />

6.2.4. Màn hình “Hướng dẫn” ..................................................................................... 37<br />

6.2.5. Màn hình “Thông tin” ........................................................................................ 38<br />

6.3. Kết quả thực hiện ............................................................................................ 39<br />

6.3.1 Môi trường phát triển và triển khai ..................................................................... 39<br />

6.3.2 Kết quả đạt được ................................................................................................ 39<br />

6.4. Hướng phát triển: ............................................................................................ 40<br />

TÀI LIỆU THAM KHẢO ...................................................................................... 41<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 4 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 1<br />

GIỚI THIỆU VỀ CÔNG TY THỰC TẬP<br />

I. Giới thiệu về đơn vị thực tập<br />

‣ Tên đơn vị thực tập:<br />

Công ty cổ phần giải pháp công nghệ Lapoo<br />

‣ Địa chỉ:<br />

Lô 04 – C42, Bắc Sơn, Q. Cẩm Lệ, TP. Đà Nẵng<br />

‣ Lịch sử phát triển<br />

Được thành lập ngày ngày 17 tháng 05 năm 2011. Tên giao dịch là LAPOO<br />

Joint Stock Company. Tên viết tắt là LAPOO.<br />

Với tâm niệm “Khách hàng là người quyết định đến sự thành bại của<br />

LAPOO”, chúng tôi không ngừng khám phá và ứng dụng những thành tựu của<br />

Công nghệ thông tin vào hoạt động kinh doanh của doanh nghiệp, đồng hành<br />

cùng doanh nghiệp trong các hoạt động kinh doanh và quảng bá thương hiệu.<br />

‣ Tầm nhìn:<br />

Phát triển LAPOO trở thành một công ty đầu tư mạo hiểm có thương hiệu có<br />

hiệu quả, tạo ra những công ty cung cấp sản phẩm, dịch vụ tốt nhất Việt Nam.<br />

‣ Sứ mệnh:<br />

- Xây dựng LAPOO phát triển bền vững.<br />

- Xây dựng LAPOO thành một nơi mỗi nhân viên lấy việc cung cấp dịch vụ<br />

CHẤT LƯỢNG, CÓ ÍCH làm động lực cho mình.<br />

- Xây dựng LAPOO thành một hơi HẠNH PHÚC với những con người có<br />

niềm tin mãnh liệt.<br />

‣ Giá trị cốt lõi:<br />

- Phục vụ khách hàng là tiên quyết.<br />

- Khuyến khích khả năng và và tính sáng tạo cá nhân.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 5 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

- Có trách nhiệm với cộng đồng và xã hội.<br />

- Đem lại lợi nhuận cho cổ đông bằng sức lao động và có ích cho con người.<br />

- Thường xuyên đổi mới, luôn cố gắng để tốt hơn.<br />

II. Triết lý kinh doanh và lĩnh vực hoạt động<br />

‣ Triết lý kinh doanh:<br />

- Tập trung vào những nỗ lực để trở thành công ty cung cấp sản phẩm, dịch<br />

vụ tốt nhất và chăm sóc khách hàng hoàn hảo nhất. (Chứ không phải công ty<br />

lớn nhất)<br />

- Theo đuổi niềm đam mê kinh doanh bằng lòng nhiệt thành và đam mê<br />

mãnh liệt nhất.<br />

- Đối xử với các nhân viên đúng như cách thức chúng ta mong muốn mình<br />

được đối xử.<br />

- Tuyển dụng những ai có thể truyền tải niềm đam mê tới khách hàng và các<br />

nhân viên khác.<br />

- Nếu các khách hàng của chúng ta thành công, chắc chắn chúng ta cũng sẽ<br />

thành công.<br />

- Hãy thực hiện những điều bất khả thi, vì nếu khả thi thì người khác đã làm<br />

rồi.<br />

- Trong công ty, chỉ có một ông chủ duy nhất đó là Khách hàng, Khách hàng<br />

có thể đuổi việc từ Giám đốc đến Nhân viên chỉ với một hành động duy nhất<br />

đó là mua hàng của công ty khác. (Sam Walton, Wal-Mart).<br />

‣ Các lĩnh vực hoạt động chính:<br />

Công ty CP GPCN Lapoo được thành lập vào năm 2011, hoạt động trong<br />

lĩnh vực thiết kế và lập trình website, gia công phần mềm và cung cấp dịch<br />

vụ Seo chuyên nghiệp tại Đà Nẵng cũng như cả nước.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 6 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 2<br />

GIỚI THIỆU CHUNG VỀ ĐỀ TÀI<br />

2.1 Mục tiêu và nhiệm vụ của đề tài<br />

2.1.1 Nhiệm vụ:<br />

- Tìm hiểu công nghệ ADO.Net trong lập trình Game Mobile<br />

- Nghiên cứu công nghệ Silverlight trong lập trình Game.<br />

- Nghiên cứu XNA trong lập trình Game<br />

- Tìm hiểu và nghiên cứu Lập trình game với Windows Phone<br />

2.1.2 Mục tiêu:<br />

Nghiên cứu, cài đặt thuật toán và thử nghiệm đề tài Game Tetris trên nền tảng<br />

Windows Phone.<br />

2.2 Khả năng ứng dụng thực tế.<br />

Như chúng ta đã biết, hiện nay hơn 90% dân thế giới sử dụng điện thoại và hơn<br />

60% trong số đó sử dụng các dòng điện thoại cao cấp như Smartphone phục vụ<br />

cho mục đích giải trí của mình như quay phim, chụp hình, nghe nhạc, lướt net…và<br />

hơn 50% trong số đó để chơi Game. Theo đó, số người dùng smartphone sẽ tăng từ<br />

100 triệu người năm 2009 lên 1 tỉ người năm 2013.<br />

Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá là<br />

thiên đường để cho các nhà phát triển ứng dụng di động.<br />

Hệ điều hành Windows Phone là một hệ điều hành khá mới và chưa được ưu<br />

chuộng tại thị trường Việt Nam. Tuy nhiên thị trường Windows Phone đang được<br />

đánh giá là một thị trường đầy tiềm năng và phát triển rộng khắc trong thời gian tới.<br />

Các ứng dụng trên nền Windows Phone cũng đang được chú trọng phát triển và đây<br />

sẽ là mảnh đất màu mỡ cho các nhà phát triển ứng dụng cho dòng Smartphone.<br />

Vì vậy, khả năng ứng dụng của các công nghệ và ngôn ngữ lập trình vào thực<br />

tế là rất cao và rất cả khả thì đặc biệt là với ứng dụng trên nền Windows Phone.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 7 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 3<br />

CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI<br />

3.1. Giới thiệu về hệ điều hành Windows Phone 7<br />

3.1.1 Giới thiệu<br />

Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điều<br />

hành Microsoft Windows Mobile. Windows Phone 7 được phát triển dựa trên phần<br />

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<br />

Windows CE 5.<br />

Hình 1. Giới thiệu Windows Phone 7<br />

Windows Phone 7 được Microsoft phát triển để thay thế cho hệ điều hành di<br />

động Windows Mobile trước đây. Windows Phone bắt đầu từ phiên bản thứ 7 (khi<br />

ra mắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lên đến 8.0).<br />

Được biết, do phát triển trong thời gian ngắn nên Windows Phone rất hạn chế trong<br />

việc tương thích ngược với các nền tảng Windows Mobile trước đó. Một lý do nữa<br />

để Microsoft không quan tâm nhiều đến nền tảng cũ đó là vì màn hình cảm ứng<br />

bằng ngón tay ngày càng phổ biến hơn trên điện thoại và Windows Mobile vốn thiết<br />

kế cho bút stylus đã trở nên rất lỗi thời.<br />

Windows Phone 7 được Microsoft thiết kế dựa trên tiêu chí giúp lập trình<br />

viên dễ dàng hơn trong việc tạo nên các ứng dụng RIA (Rich Internet Application)<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 8 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

với công nghệ nền tảng dựa trên .Net, Silverlight và XN Frame Work, với những<br />

lập trình viên đã từng làm qua Silverlight thì việc chuyển sang Windows Phone 7 là<br />

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<br />

việc tạo nên một môi trường phát triển và thiết kế cực kỳ đơn giản và có thể chạy<br />

được trên phần cứng của nhiều hãnh khác nhau như HTC, Sony, LG, Nokia….<br />

Với Windows Phone, Microsoft cung cấp một giao diện người dùng mới với<br />

ngô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<br />

vụ khác của Microsoft, các bên thứ ba và điều khiển phần cứng nó chạy trên đó.<br />

Microsoft phát triển Windows Phone 7 dựa trên hai công nghệ Silverlight và XNA<br />

3.1.2 Lịch sử các phiên bản phát triển của Windows Phone<br />

Phiên bản Windows Phone 7<br />

Phiên bản<br />

Chi tiết<br />

7.0.7004 Phiên bản đầu tiên của Windows Phone 7<br />

7.0.7008 Nâng cấp và cải thiện một vài điểm<br />

7.0.7390<br />

Bản cập nhật với tên mã NoDo, hỗ trợ mạng CDMA, copy và<br />

paste, tốc độ chạy ứng dụng nhanh hơn, tích hợp Facebook sâu<br />

hơn<br />

7.0.7392 Sửa các lỗi liên quan đến chứng nhận bảo mật<br />

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<br />

7.10.7720<br />

7.10.7740<br />

Đây là Windows Phone 7.5 với tên mã Mango, được giới<br />

thiệu 2/2011. Các tính năng mới được thêm vào như Internet<br />

Explorer 9 hỗ trợ đồ họa và chuẩn web tốt hơn,Twitter tích hợp<br />

vào People Hub, chạy đa nhiệm cho các ứng dụng bên thứ ba<br />

bằng cách tạm ngừng chúng<br />

Sửa lỗi Microsoft Exchange Server 2003 và cảnh báo hộp thư<br />

thoại<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 9 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

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 đề<br />

7.10.8112 Bản cho Lumia 900 và HTC Titan II của nhà mạng AT&T<br />

7.10.8773<br />

Còn gọi là Windows Phone 7.5 Refresh với tên mã Tango. Nhiều<br />

tính năng mới xuất hiện như MMS tốt hơn, biểu tượng cho việc<br />

dò vị trí, xuất và quản lí danh bạ vô SIM, hỗ trợ điện thoại giá rẻ<br />

với 256MB RAM và xung nhịp CPU chậm<br />

7.10.8779 Sửa lỗi, cải thiện và nâng cấp<br />

3.1.3 Kiến trúc<br />

Windows Phone Application Platform kiến trúc được tạo thành từ bốn thành phần<br />

chính:<br />

Hình 2. Kiến trúc Windows Phone Application Platform<br />

Runtimes (Runtimes): Silverlight và khung XNA, cùng với Windows tính năng<br />

đ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<br />

xây dựng an toàn, các ứng dụng đồ họa phong phú.<br />

Tools (Công cụ): Visual Studio và Expression Blend, và các công cụ và tài liệu<br />

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<br />

chóng tạo ra ứng dụng, gỡ lỗi, triển khai và cập nhật các ứng dụng.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 10 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Cloud (Dịch vụ điện toán đám mây): Windows Azure, Xbox LIVE, thông báo<br />

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<br />

các nhà 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<br />

bằng cá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ọ<br />

đ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 đủ.<br />

Portal Services (Dịch vụ cổng thông tin): điện thoại Windows Marketplace<br />

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,<br />

và thị trường ứng dụng của họ.<br />

3.1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone<br />

Hình 3. Vòng đời phát triển của 1 ứng dụng Windows Phone<br />

3.1.5 Bắt đầu với App Hub<br />

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ó<br />

thể bắt đầu bằng cách đăng ký cho một ID Windows Live. Tiếp theo, họ có thể đăng<br />

ký để có được SDK Windows Phone và cấp giấy phép liên quan để phát triển các<br />

ứng dụng bằng cách sử dụng Visual Studio và Expression Blend. Đây sẽ là một<br />

download duy nhấ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<br />

dụng cho Windows Phone. Nhà phát triển cũng có thể đăng ký một hoặc nhiều điện<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 11 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

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<br />

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<br />

bị thử nghiệm.<br />

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<br />

động giúp làm cho các nhà phát triển điện thoại Windows thành công.<br />

3.1.6 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng<br />

Một khi các nhà phát triển đã đăng ký là nhà phát triển một Windows Phone<br />

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ọ.<br />

Trò chơi và các ứng dụng đồ họa chuyên sâu được tạo ra trong Visual Studio bằng<br />

cách sử dụng các thư viện 2D và 3D của XNA Framework.<br />

3.2 Giới thiệu công nghệ Silverlight<br />

3.2.1 Tổng quan<br />

Microsoft Silverlight là một công nghệ đa nền, đa trình duyệt dựa trên nền<br />

.NET dù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<br />

tính tương tác và hỗ trợ tối đa về media. Hiện nay Silverlight đã có 5 phiên bản dùng<br />

phát triển ứng dụng bằng ngôn ngữ Javascript và bằng các ngôn ngữ .NET<br />

framework như C# hay VB.NET ,.... Bên cạnh đó công nghệ Silverlight còn được<br />

hỗ trợ bởi ngôn ngữ đánh dấu XAML đầy sức mạnh trong việc thể hiện giao diện<br />

người dùng. Có thể nói công nghệ Silverlight đã thống nhất được tất cả các<br />

khả năng của server, Web và ứng dụng desktop, của code .NET, của ngôn ngữ hình<br />

thể và ngôn ngữ truyền thống và sức mạnh của Windows Presentation Foundation<br />

(WPF). Để cuối cùng tạo ra một ứng dụng mà người dùng phải thấy thích.<br />

3.2.2 Silverlight là gì ?<br />

Silverlight là một công nghệ đa nền tảng, đa trình duyệt được đưa ra bởi<br />

Micrososft, cho phép xây dựng các ứng dụng trên web (không phụ thuộc vào trình<br />

duyệ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<br />

và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình .Net như C#,<br />

Visual basic... Khả năng đa phương tiện của Silverlight thể hiện ở mức độ truyền tải<br />

â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ả<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 12 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

các trình duyệt (Internet Explorer, Firefox, Safari, Opera...). Điểm mạnh của<br />

Silverlight đó là cung cấp những thuộc tính thiết kế giao diện, tạo những hiệu ứng<br />

(hoạt ảnh) một cách dễ dàng.<br />

3.2.3 Các đặc tính của Silverlight<br />

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<br />

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<br />

toán của bạn. Silverlight cung cấp các tính năng sau:<br />

Sự kết hợp của WPF và XAML: Silverlight là một gói nhỏ của công nghệ<br />

WPF (Windows Presentation Foundation). WPF cho phép bạn tạo ra đồ họa ba<br />

chiều, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác.<br />

Các ứng dụng tạo ra bởi WPF chủ yếu là các phần mềm đóng gói. Silverlight kế<br />

thừa một số thuộc tính của WPF và nó được mở rộng nhiều hơn ở một số các<br />

phần tử để tạo ra giao diện cho người dung trên trình duyệt web.<br />

Mở rộng ngôn ngữ đa kịch bản: Silverlight cung cấp việc mở rộng cho các<br />

ngôn ngữ đa kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện<br />

việc trình bày giao diện và thao tác người dùng một cách phong phú hơn.<br />

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<br />

ngữ Javascript và mã Ajax sẵn có của Asp.Net để bổ sung các chức năng bạn đã<br />

xây dựng được. Bạn có thể tạo những tài nguyên trên nền máy chủ có trong<br />

ASP.NET và sử dụng các khả năng của Ajax trong ASP.NET để tương tác với<br />

tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng. Các ứng<br />

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<br />

bất đồng bộ. Điều này không làm gián đoạn thao tác của người dùng cuối. Nếu<br />

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<br />

dễ dàng hiểu cơ chế xử lý bất đồng bộ trong Silverlight.<br />

Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net framework và các<br />

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<br />

cách sử dụng các ngôn ngữ động như InronPython cũng như các ngôn ngữ như<br />

C#, Visual Basic. Microsoft đã đưa ra một sự kết hợp nhuần nhuyễn cho việc tạo<br />

ra các ứng dụng Silverlight thông qua hai bộ công cụ: Visual Studio 2008 và<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 13 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

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<br />

nhà phát triển.<br />

Hỗ trợ mạng: Silverlight hỗ trợ HTTP thông qua giao thức TCP. Nó có thể thực<br />

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 định<br />

dạng theo cấu trúc XML, JSON hay dữ liệu RSS.<br />

Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ): Silverlight cho phép thực hiện<br />

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ẽ<br />

thông qua LINQ (Language Integrated Query – ngôn ngữ truy vấn tích hợp).<br />

LINQ cho phép bạn tạo những truy vấn ngay trên công cụ lập trình (Visual<br />

Studio) như trong SQL và được tích hợp trong bộ .NET Framework 3.0 trở lên.<br />

Có ba điều mà bạn nên quan tâm về LINQ là: LINQ to Objects – LINQ to XML<br />

và LINQ to SQL.<br />

Thể hiện đƣợc các nội dung phức tạp: Silverlight có thể tạo ra các nội dung<br />

phức tạp, gồm video, animation, text, đồ họa hai chiều, các hiệu ứng hình ảnh<br />

trên trang web.<br />

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<br />

công nghệ Silverlight.<br />

3.3 Nghiên cứu công nghệ Silverlight<br />

3.3.1 Kiến trúc tổng thể và các thành phần Siverlight<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 14 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của Silverlight<br />

cùng với các thành phần và dịch vụ liên quan khác:<br />

Hình 4 Kiến trúc tổng thể và các thành phần Silverlight<br />

Về 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<br />

nhau. Dưới đây là các thành phần chính của Silverlight:<br />

Thành phần<br />

Nền tảng trình bày cơ sở<br />

.Net Framework cho<br />

Silverlight<br />

Diễn tả<br />

Các thành phần và dịch vụ hướng tới giao<br />

diện người dùng và tương tác người dùng, bao<br />

gồm các control dữ liệu cho người dùng nhập,<br />

thiết bị đa phương tiện, quản lý phân quyền số,<br />

trình bày dữ liệu, đồ họa vector, chữ, hình ảnh<br />

động và bao gồm cả XAML để đặc tả việc bố trí<br />

giao diện.<br />

Là một gói nhỏ trong .Net Framework, bao gồm các<br />

thành phần và các thư viện, kể cả trong việc<br />

tương tác dữ liệu, khả năng mở rộng các control,<br />

mạng, garbage collection, và CLR.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 15 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Cài đặt và cập nhật<br />

Là thành phần để xử lý các tiến trình cài đặt làm<br />

sao để đơn giản hóa cho lần cài đặt đầu tiên, tiếp<br />

sau đó chỉ cung cấp cơ chế tự động cập nhật và<br />

tương tác ở mức thấp.<br />

Bảng 1.1. Bảng mô tả các thành phần chính của Silverlight<br />

3.3.2 Nền tảng của Silverlight:<br />

Bao gồm 2 phần chính<br />

Các nền tảng trình bày cơ sở trong Silverlight:<br />

Tính năng<br />

Dữ liệu vào (Input)<br />

Trình bày giao diện ngƣời dùng (UI<br />

Rendering)<br />

Thiết bị nghe nhìn (Media)<br />

Controls<br />

Xếp đặt layout<br />

Trình bày dữ liệu (Data Binding)<br />

DRM<br />

XAML<br />

Mô tả<br />

Xử lý dữ liệu đầu vào từ các thiết bị<br />

phần cứng như bàn phím, chuột, bảng<br />

vẽ hoặc các thiết bị đầu vào khác.<br />

Trình bày vector và các đồ họa ảnh<br />

bitmap, ảnh động và văn bản …<br />

Các tính năng quản lý và phát 1 vài<br />

file hình ảnh và âm thanh.<br />

Hỗ trợ mở rộng cho các control để có<br />

khả năng tùy chỉnh về khuôn mẫu.<br />

Cho phép khả năng xếp đặt vị trí động<br />

các thành phần giao diện người dùng<br />

Cho phép việc kết nối dữ liệu của các<br />

đối tượng và các thành phần giao diện<br />

người dùng<br />

Khả năng Quản lý phân quyền số<br />

Cung cấp trình phân tách cho XAML<br />

Bảng 1.2. Bảng các nền tảng cơ sở trong Silverlight<br />

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ở”<br />

trên bằng cách sử dụng XAML để đặc tả. XAML là một yếu tố quan trọng nhất<br />

trong việc tương tác giữa .Net Framwork và các kiểu trình bày Layout, ngoài ra các<br />

lập trình viên cũng có thể sử dụng cơ chế quản lý code bên trong để thao tác với lớp<br />

trình bày.<br />

.Net Framework cho Silverlight:<br />

Tính năng<br />

Mô tả<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 16 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Data<br />

Base class library<br />

Window Communication Foundation<br />

(WCF)<br />

Common language runtime (CLR)<br />

Windows Presentation Foundation<br />

controls (WPF)<br />

Dynamic language runtime (DLR)<br />

Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ)<br />

và LINQ với đặc tả XML, dễ dàng xử lý<br />

việc tích hợp và làm việc với dữ liệu từ<br />

nhiều nguồn khác nhau.<br />

Nó cung cấp các chức năng lập trình chủ<br />

yếu như việc xử lý chuỗi, biểu thức chính<br />

quy, đầu vào và đầu ra, ánh xạ, tập hợp và<br />

toàn cục hóa.<br />

Cơ chế này bao gồm một đối tượng trình<br />

duyệt, HTTP request và HTTP Response,<br />

RSS, JSON, POX, và các SOAP.<br />

Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ<br />

nhớ thừa, xử lý ngoại lệ …<br />

Cung cấp các control giàu tính năng như<br />

Button, Calendar, CheckBox, DataGrid,<br />

DatePicker, HyperlinkButton,<br />

Hỗ trợ việc biên dịch và thi hành với tính<br />

năng động của các ngôn ngữ kịch bản như<br />

3.4 Giới thiệu về XNA<br />

3.4.1 XNA là gì ?<br />

Javascript và IronPython cho các chương<br />

trình trên nền tảng Silverlight.<br />

Bảng 1.3. Bảng mô tả .Net Framework cho Silverlight<br />

XNA là một kiểu chơi chữ, nó viết tắt cho câu “Xna’s Not an Acronym”. Nó<br />

là một bộ công cụ chạy trên môi trường runtime được cung cấp bởi Microsoft. XNA<br />

đã đơ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<br />

cho cá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<br />

đến mộ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<br />

cách giúp họ viết game theo một khuôn dạng có sẵn.<br />

3.4.2 Tại sao nên sử dụng XNA ?<br />

Bạn có thể sử dụng XNA để lập trình game cho XBOX360, Zune,<br />

WindowsPhone 7, PC, XNA cung cấp cho người lập trình sẵn các công cụ thiết kế<br />

game 2D và 3D, đầy đủ các thành phần đồ họa cần thiết kế game.<br />

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,<br />

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.<br />

Đượ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<br />

rất dễ dàng cho người mới bắt đầu vào con đường làm game.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 17 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Bên cạnh đó, XNA xây dựng cấu trúc file riêng để có thể bảo đảm được mã<br />

nguồn các tài nguyên của lập trình viên như hình ảnh, model 3D, âm thanh.<br />

3.4.3 Các phiên bản XNA<br />

Bộ công cụ XNA được công bố rộng rãi vào ngày 21 tháng 5 năm 2004, tại<br />

hội nghị phát triển game tại San Jose, California.<br />

Cộng đồng công nghệ sơ khai đầu tiên về cấu trúc của XNA (XNA build)<br />

được thành lập vào ngày 14/5/2006.<br />

XNA Game Studio 1.0: phiên bản đầu tiên của XNA 1.0 ra đời vào ngày 30<br />

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.<br />

Ngay tháng sau, Microsoft cho ra phiên bản hoàn chỉnh vào ngày 11 tháng 12<br />

2006.<br />

XNA Game Studio Express 1.0: Vào ngày 24/04/2007, phiên bản Express đầu<br />

tiên của XNA Game Studio hướng đến giới sinh viên, những người đam mê và<br />

những nhà phát triển game cá nhân. Nó có sẵn để bạn down xuống miễn phí.<br />

Bản Express cung cấp những "StartKit" cơ bản để những game coder dễ dàng<br />

phát triển những game theo nhiều thể loại khác nhau (Như dòng platform, dòng<br />

chiến thuật thời gian thực, hoặc game bắn súng góc nhìn thứ nhất). Các nhà phát<br />

triển viết game trên PC thì được miễn phí nhưng với Xbox bạn sẽ mất 99$/năm<br />

để được tham gia vào "XNA Creator's Club".<br />

XNA Game Studio 2.0: ra đời vào ngày 13/12/2007 nó đã được trang bị tính<br />

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<br />

cả phiên bản free Visual C# 2005 Express Edition), có thể sử dụng cho cả<br />

Windows và Xbox cùng với sự hỗ trợ điều khiển tốt hơn . Bản setup luôn có sẵn<br />

để bạn download trên trang web của XNA Creators Club.<br />

XNAGame Studio 3.0: (Sử dụng cho VS2008 hay bản miễn phí Visual C#<br />

2008 Express Edition) cho phép sản xuất nhiều game hướng đến thị trường hệ<br />

máy Zune và thêm tính năng hỗ trợ từ Xbox Live community. Bản chính thức ra<br />

mắt vào 30/8/2008. XNA Game Studio 3.0 hỗ trợ phiên bản C# 3.0, và hầu như<br />

toàn bộ các phiên bản từ Visual Studio 2008.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 18 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

XNA Game Studio 3.1: Ra mắt vào ngày 11 tháng 6/2009 , hệ thống đồ hoạ cho<br />

phép chạy lại video, hệ thống kết nối Xbox LIVE và hỗ trợ game cho phép sử<br />

dụng tính năng Avatar của Xbox.<br />

XNA Game Studio 4.0: XNA Game studio 4 được công bố và trình diễn tại<br />

"cộng đồng giới thiệu công nghệ" tại GDC vào 9/3/<strong>2010</strong> và phiên bản chính<br />

thức ra đời vào ngày 16/9/<strong>2010</strong>. Nó đã hỗ trợ thêm nền tảng Windows Phone 7<br />

(bao gồm cả gia tốc phần cứng 3D), trang bị thêm đặc tính, các đối tượng được<br />

xây dựng sẵn, các thiết bị đồ hoạ có hướng và vô hướng, hỗ trợ chạy đa nền<br />

tảng, hỗ trợ điều khiển cảm ứng đa diểm chạm…vào Visual Studio <strong>2010</strong>.<br />

Hiện nay, XNA đã gần như hoàn thiện toàn bộ lĩnh vực phát triển game của<br />

Microsoft, bao gồm cả bộ phát triển ứng dụng Xbox chuẩn (Xbox Development<br />

Kit) và XNA Game Studio.<br />

2.2 Kiến trúc của XNA<br />

2.2.1 Kiến trúc của XNA<br />

Cấu trúc chung:<br />

Initialize( )<br />

LoadContent( )<br />

Draw(gameTime)<br />

Update(gameTim<br />

e)<br />

End?<br />

UnloadContent( )<br />

Hình 2.1. Cấu trúc của XNA<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 19 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Mỗi game bao gồm việc chuẩn bị môi trường mà game sẽ chạy. Chạy game<br />

trong 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<br />

đó môi trường sẽ được là sạch như lúc bắt đầu.<br />

Đây là cấu trúc một game đơn giản bao gồm cả vòng lặp game:<br />

Hàm Initialize( ): Đây là hàm khởi tạo các giá trị khởi đầu của class game. Nếu<br />

ta có các khởi tạo về input thì nên đặt vào trong hàm này.<br />

Hàm Load Content( ): Đây là hàm dùng để load những nội dung của game<br />

như: Imagie, Sprite, Sound, Model, … Hàm này sẽ được thực hiện sau hàm<br />

Initialize vì thế các tài nguyên sẽ được load thông qua Pipeline Content.<br />

Hàm Update( gameTime):<br />

Đâ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ừ<br />

ngoài nhận vào.<br />

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<br />

vật.<br />

Đâ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<br />

của game.<br />

Hàm Draw (gameTime):<br />

Đâ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,<br />

linh hồ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<br />

ta thấy được vẻ đẹp của game.<br />

Đây là hàm dùng để vẽ các hình ảnh trong game, hiển thị game ra màn hình đối<br />

với người chơi, nó sẽ được vẽ theo thời gian gameTime.<br />

Hàm UnloadContent( ): Hủy tất cả các tài nguyên, dọn dẹp bộ nhớ.<br />

2.3 Các thành phần trong XNA<br />

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<br />

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<br />

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<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 20 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

các thuộc tính như là vận tốc, vị trí, chiều dài, chiều rộng, và v.v)… Thành phần<br />

“sprite hoạt hình” được xem như một sprite có nhiều những bức ảnh thay đổi<br />

một cách liên tục một cách xác định trước trong một khoảng thời gian xác định (<br />

điều đó tạo ra ảo giác rằng sprite đang chuyển động). Như là một người đang đi<br />

bộ hay một bánh xe đang quay tròn.<br />

Texture: là những bức ảnh 2D được load vào mô hình 3D nào đó, nó bao phủ<br />

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.<br />

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<br />

bức ảnh sẽ bao một mô hình 3D đơn giản.<br />

Billboarch (Bảng yết thị): Đây là một thành phần trong thế giới 3D cũng sẽ đại<br />

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<br />

tới trục camera.<br />

Background (Nền): Một cảnh trong game 2D là một hình ảnh nền với nhiều<br />

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<br />

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ó<br />

cũng đề cập đến parallax scrolling, một kĩ thuật cuộn đặc biệt trong chò trơi 2D<br />

có nhiều hơn 1 hình nền cuộn với tốc độ cuộn khác nhau, cái mà cung cấp<br />

những ảo ảnh của môi trường 3D.<br />

Tiles: là những hình ảnh nhỏ được sử dung để biên soạn những hình ảnh lớn<br />

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ững<br />

platform game khác nhau cùng từ những hình ảnh cơ bản .Ví dụ: Trong map game,<br />

dùng tiles đề xây dựng địa hình, chướng ngại vật, trong game nhập vai, Tiles được<br />

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ện<br />

nâng cấp nhân vật, vũ khí…<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 21 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 4<br />

XÂY DỰNG ỨNG DỤNG VỚI WINDOWS PHONE<br />

4.1. Tạo mới 1 Project :<br />

Chọn File -> New -> Project<br />

Một cửa sổ mới “New Project” hiện ra. Chọn Visual C# trong mục Installed<br />

Templates, chọn Silverlight for Windows Phone. Phía bên phải cửa sổ cho<br />

phép bạn chọn các templates. Chọn vào mục “Windows Phone Application”:<br />

Hình 5. Chọn loại ứng dụng<br />

Giao diện ban đầu khi đã tạo xong 1 Project :<br />

Hình 6. Giao diện khi tạo xong Project<br />

Cấu trúc Solution của một Project<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 22 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Hình 7. Cấu trúc Solution của một Project<br />

4.2 Giới thiệu về ngôn ngữ XAML và các control dùng trong ứng dụng<br />

Windows Phone<br />

4.2.1 Giới thiệu ngôn ngữ XAML<br />

XAML (eXtensible Application Markup Language) là ngôn ngữ đánh dấu<br />

dựa trên XML để xây dựng ứng dụng:<br />

Cho phép xây dựng giao diện bằng các phát biểu đơn giản.<br />

Định nghĩa được cả các phần tử giao diện cũ.<br />

XAML và code cùng tồn tại một cách độc lập.<br />

Tương thích cả ứng dụng Windows trên desktop và internet trên trình duyệt.<br />

XAML – Elements và Attributes:<br />

Elements: …, …<br />

Các thành phần trong XAML tương đương với các đối tượng khai báo trong<br />

.NET<br />

Trong 1 file XAML có 1 root element duy nhất.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 23 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Attributes: các thuộc tính trong XAML tương đương với các property của các<br />

đối tượng trong .NET<br />

XAML – Complex Properties: Sử dụng các thuộc tính thành phần của một<br />

element thông qua toán tử dấu chấm “.”<br />

XAML – Namespace:<br />

Một namespace được sử dụng để định nghĩa các đối tượng thành phần, các đặc<br />

tính, các thuộc tính…<br />

Kiểm tra sự hợp lệ của các đối tượng được khai báo, tránh sự mâu thuẫn của các<br />

đối tượng thành phần cùng tên.<br />

Trong XAML , namespace được định nghĩa bởi thuộc tính xmlns. Chúng ta ánh<br />

xạ các namespace XML sang các tập hợp namespace và assembly CLR.Một file<br />

XAML luôn có namespace mặc định trong root element. Namespace mặc định<br />

luôn luôn không có tiếp đầu ngữ kèm theo thuộc tính xmlns.<br />

XAML – Type Converter: Để chương trình hoạt động, trình phân tích XAML thực<br />

hiện việc chuyển đổi giá trị kiểu chuỗi sang một kiểu nonstring. Việc chuyển đổi<br />

này được thực hiện bởi type converters.<br />

XAML – Markup Extensions:<br />

Gán một đối tượng có sẵn nào đó làm giá trị của property.<br />

Gán giá trị cho một property mà giá trị này có thể thay đổi nhờ vào việc binding<br />

vào một property của một control khác.<br />

Sử dụng markup extension phải đặt nó trong cặp dấu { }<br />

Cú pháp :<br />

{MarkupExtensionClass Argument}<br />

XAML – Events:<br />

XAML cho phép chỉ định phương thức xử lý cho đối tượng đang được thiết<br />

kế.<br />

Phương thức xử lý sự kiện có thể được đặt trong code behind.<br />

4.2.2 Sử dụng Expression Blend để xây giao diện trong Windows Phone 7.1<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 24 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Hình 8. Giới thiệu Expression Blend<br />

Expression Blend là một công cụ khá mạnh hỗ trợ xây dựng giao diện cho<br />

các ứng dụng Silverlight...<br />

Hỗ trợ xây dựng giao diện cgo Windows phone, WPF, sử dụng ngôn ngữ<br />

xaml<br />

‣ Xây dựng ứng dụng với Expression Blend windows phone 7<br />

Hình 9. Xây dựng ứng dụng Windows Phone Với Expression Blend<br />

4.2.3 Làm việc với TextBox và ViewBox<br />

- Sử dụng để nhập các dữ liệu đầu vào<br />

- Có nhiều loại dữ liệu đầu vào như: Number, Email, Time...<br />

- Texbox đi liền với thuộc tính InputScope<br />

- InputScope được cung cấp trong namespace System.Windows.Input<br />

<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 25 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Hình 10. Làm việc với Texbox trong Windows Phone 7<br />

4.2.4 Tìm hiểu NavigationContext Trong Windows Phone 7<br />

Navigation là gì?<br />

• Navigation là một lớp thuộc Namespace: System.windows.Navigation.<br />

• Chứa 1 đối tượng Dictionary để lưu trữ các tham số QueryString.<br />

• Truyền và lấy các tham số truy vấn hoặc các trang khác.<br />

Navigation Service:<br />

NavigationService.Navigate(new Uri("/ChonCapDo.xaml", UriKind.Relative));<br />

• Là một lớp thuộc namespace: System.windows.Navigation<br />

• Cung cấp các thuộc tính, phương thức giúp cho việc điều hướng dễ dàng<br />

hơn.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 26 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 5<br />

XÂY DỰNG CHƢƠNG TRÌNH<br />

Trong quá trình thực tập, tôi đã được hướng dẫn và nghiên cứu bài toàn Game<br />

Tetris trên nền tảng Windown Phone kết hợp với Silverlight.<br />

5.1 Giới thiệu về đề tài.<br />

Game Tetris là game kinh điển trong làng Game thế giới, ra đời ngày 6/6/1984<br />

tại Liên xô cũ với tên Tetris. Tetris được ghép lại từ tiền tố gốc Hy Lạp “tetra-” do<br />

các khối hình trong game được tạo ra từ 4 khối vuông; và “tennis” – môn thể thao<br />

yêu thích của Alexey Pazhitnov, người đã phát minh ra trò chơi.<br />

Game đã xuất hiện trên các dòng điện thoại khá lâu và được phát triển trên nhiều<br />

nền tảng OS khác nhau như : Java, Android, IOS, Winphone…và hiện vẫn đang<br />

được ưu chuộng và hấp dẫn đối với nhiều người.<br />

5.2 Khảo sát đề tài<br />

Các phần của đề tài đã khảo sát:<br />

‣ Luật chơi:<br />

Luật chơi của Tetris tương đối đơn giản. Các hình khối được ghép liền nhau<br />

bởi 4 khối vuông sẽ lần lượt xuất hiện trên màn hình (các khối ghép này được<br />

gọi là tetrominoes hay tetrads). Nhiệm vụ của người chơi là phải lấp đầy các<br />

hàng ngang bằng các hình khối này. Mỗi khi có một hàng ngang được lấp đầy<br />

thì người chơi sẽ được cộng điểm và hàng ngang đó được xóa đi.<br />

‣ Cách tính điểm<br />

Khi người chơi nhấn phím mũi tên hướng xuống: Với mỗi lần nhấn phím này<br />

thì người chơi sẽ được cộng thêm 1 điểm. Khi người chơi đè phím này thì cứ<br />

sau khi khối gạch đi xuống 2 ô (1 ô mặc định đi xuống và một ô do phím mũi<br />

tên hướng xuống bị đè) thì người chơi sẽ được cộng 1 điểm.<br />

Khi người chơi nhấn phím OK: Vì khi nhấn phím này, khối gạch lập tức rơi<br />

xuống nên người chơi sẽ được cộng 10 điểm cho mỗi khối gạch được xếp<br />

bằng phím này.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 27 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Với mỗi hàng ngang được lấp đầy: số điểm người chơi có được ở mỗi hàng<br />

ngang bằng số thứ tự từ dưới đếm lên của hàng ngang nhân với số ô trong<br />

hàng đó (ở đây là 11 cho mọi hàng).<br />

Với 4 hàng ngang được lấp đầy cùng lúc: ngoài số điểm được cộng cho mỗi<br />

hàng ngang, người chơi sẽ được cộng thêm 100 điểm khi lấp đầy cùng lúc 4<br />

hàng ngang.<br />

‣ Mức tăng điểm Level<br />

Mức điểm tăng Level được tính bằng cách lấy số Level bình phương nhân<br />

với 999<br />

Mỗi khi người chơi đủ điểm để tăng đến Level tiếp theo thì khung chơi sẽ được xóa<br />

và người chơi sẽ bắt đầu xếp lại ở Level mới.<br />

Khi người chơi đạt level 99 thì trò chơi sẽ kết thúc và người chơi sẽ giành<br />

chiến thắng.<br />

5.3 Mô hình USECASE<br />

5.3.1. Sơ đồ Use-Case<br />

Chọn cấp độ<br />

Chơi mới<br />

Hướng dẫn<br />

Người Chơi<br />

GAME<br />

XẾP GẠCH<br />

Thông tin<br />

Thoát<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 28 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

5.3.2 Danh sách các Actor<br />

STT Tên Actor Ý nghĩa / Ghi chú<br />

1 NguoiChoi Ngƣời chơi game<br />

5.3.3 Danh sách các Use-case<br />

STT Tên Use-case Ý nghĩa / Ghi chú<br />

1 Game Tetris Game Tetris<br />

2 Bat dau Bắt đầu chơi game từ lever 1<br />

3 Huong dan Hƣớng dẫn ngƣời dùng cách chơi game<br />

4 Thong tin Thông tin về nhóm làm game<br />

5 Thoat Thoát game<br />

5.4 Đặc tả Use-case<br />

5.4.1. Use-case “Game Tetris”<br />

Tóm tắt : Người chơi dùng điện thoại có hệ điều hành windows phone 7<br />

chơi game xếp gạch để giải trí.<br />

Các dòng sự kiện chính :<br />

1.Xảy ra khi người dùng chọn<br />

2.Hiển thị màn hình menu<br />

Các dòng sự kiện khác :<br />

Không có<br />

Các yêu cầu đặc biệt :<br />

Không có<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chạy chương trình game<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Hiển thị giao diện màn hình menu<br />

Điểm mở rộng :<br />

1. Choi moi<br />

2. Huong dan<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 29 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

3. Chon Cap do<br />

4. Thong tin<br />

5. Thoat<br />

5.4.2. Use-case “Chơi mới”<br />

Tóm tắt<br />

Người sử dụng : Người chơi.<br />

Chức năng : chơi mới<br />

Các dòng sự kiện chính :<br />

1. Xảy ra khi người chơi chọn Bắt đầu<br />

2. Hiển thị giao diện chơi Game<br />

Các dòng sự kiện khác :<br />

Không có<br />

Các yêu cầu đặc biệt :<br />

Có thể chọn cấp độ trước khi chơi<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chọn Bắt đầu<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Hiển thị giao diện màn hình chơi game<br />

Điểm mở rộng :<br />

Không có<br />

5.4.3. Use-case “Level”<br />

Tóm tắt<br />

Người sử dụng : Người chơi.<br />

Chức năng : Chọn level để chơi<br />

Các dòng sự kiện chính :<br />

1. Xảy ra khi người chơi chọn Level<br />

2. Hiển thị giao diện chọn Level<br />

Các dòng sự kiện khác :<br />

Không có<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 30 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Các yêu cầu đặc biệt :<br />

Không có<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chọn Level<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Hiển thị giao diện màn hình Level<br />

Điểm mở rộng :<br />

Không có<br />

5.4.4. Use-case “Hƣớng dẫn”<br />

Tóm tắt<br />

Người sử dụng : Người chơi.<br />

Chức năng : Hướng dẫn người chơi cách chơi game<br />

Các dòng sự kiện chính :<br />

1. Xảy ra khi người chơi chọn Hướng dẫn<br />

2. Hiển thị giao diện hướng dẫn<br />

Các dòng sự kiện khác :<br />

Không có<br />

Các yêu cầu đặc biệt :<br />

Không có<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chọn Hướng dẫn<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Hiển thị giao diện màn hình hướng dẫn<br />

Điểm mở rộng :<br />

Không có<br />

5.4.5. Use-case “Thông tin”<br />

Tóm tắt<br />

Người sử dụng : Người chơi.<br />

Chức năng : Thông tin tác giả game<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 31 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Các dòng sự kiện chính :<br />

1. Xảy ra khi người chơi chọn Thông tin<br />

2. Hiển thị giao diện thông tin<br />

Các dòng sự kiện khác :<br />

Không có<br />

Các yêu cầu đặc biệt :<br />

Không có<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chọn Thông tin<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Hiển thị giao diện màn hình thông tin<br />

Điểm mở rộng :<br />

Không có<br />

5.4.6. Use-case “Thoát”<br />

Tóm tắt<br />

Người sử dụng : Người chơi.<br />

Chức năng : Thoát game<br />

Các dòng sự kiện chính :<br />

1. Xảy ra khi người chơi chọn Thoát<br />

2.Thoát khỏi game<br />

Các dòng sự kiện khác :<br />

Không có<br />

Các yêu cầu đặc biệt :<br />

Không có<br />

Trạng thái hệ thống khi bắt đầu thực hiện Use-case :<br />

Sau khi người chơi chọn Thoát<br />

Trạng thái hệ thống sau khi thực hiện Use-case :<br />

Thoát khỏi game<br />

Điểm mở rộng :<br />

Không có.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 32 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 33 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Chƣơng 6<br />

THIẾT KẾ GIAO DIỆN VÀ DEMO CHƢƠNG TRÌNH<br />

6.1. Danh sách các màn hình<br />

STT Tên màn hình Ý nghĩa / Ghi chú<br />

1 Màn hình Chơi mới Màn hình để ngƣời chơi Game<br />

2 Màn hình Chọn cấp độ Màn hình chọn cấp độ chơi<br />

3 Màn hình hƣớng dẫn Màn hình hƣớng dẫn ngƣời chơi game<br />

4 Màn hình thông tin Màn hình thông tin ngƣời làm game<br />

5 Màn hình thoát Màn hình thoát game<br />

6.2 Mô tả chi tiết các màn hình<br />

6.2.1. Màn hình Menu<br />

Hình 11. Màn hình Game chọn Menu<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 34 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

<br />

Mô tả chi tiết và cách sử dụng màn hình<br />

− Khi bấm vào nút Chơi mới bạn sẽ chơi mới, bắt đầu chơi từ level 1.<br />

− Khi bấm vào nút Chọn Cấp độ cho tùy cập độ chơi game<br />

− Khi bấm vào nút Hƣớng dẫn sẽ hiển thị các trợ giúp cho người mới<br />

chơi game biết cách chơi<br />

− Khi bấm nút Thông tin cho biết thông tin về người viết Game.<br />

− Khi bấm vào nút Thoát sẽ thoát khỏi chương trình.<br />

6.2.2. Màn hình “Chơi Game”<br />

Hình 12. Màn hình chơi game<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 35 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Mô tả cách sử dụng và chi tiết màn hình.<br />

- Sau khi bạn bấm Chơi mới thì giao diện này sẽ xuất hiện.<br />

- Màn hình cho phép người chơi thực hiện công việc chủ yếu là chơi<br />

game. Nhiệm vụ của người chơi là chọn được vị trí cần đặt các khối<br />

gạch, người chơi sẽ nhấn phím OK để khối gạch lập tức rơi xuống<br />

và chạm đến vị trí bên dưới .<br />

6.2.3. Màn hình “Chọn cấp độ”<br />

Hình 13. Màn hình Game chọn cấp độ<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 36 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Mô tả cách sử dụng và chi tiết màn hình.<br />

- Sau khi bạn bấm Chọn cấp độ thì giao diện này sẽ xuất hiện.<br />

- Màn hình cho phép người chơi thực hiện công việc là chọn cấp độ<br />

chơi. Sau khi chọn xong sẽ đưa người chơi quay về màn hình chơi<br />

game tương ứng với cấp độ đã chọn.<br />

6.2.4. Màn hình “Hƣớng dẫn”<br />

Hình 14. Màn hình hƣớng dẫn chơi Game<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 37 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

Mô tả cách sử dụng và chi tiết màn hình.<br />

- Sau khi bạn bấm Hướng dẫn thì giao diện này sẽ xuất hiện.<br />

- Màn hình sẽ đưa ra các thông tin hướng dẫn người chơi, chơi game<br />

cũng như hướng dẫn chi tiết từng bước chơi game.<br />

6.2.5. Màn hình “Thông tin”<br />

Hình 15. Màn hình thông tin về Game<br />

Mô tả cách sử dụng và chi tiết màn hình.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 38 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

- Sau khi bạn bấm Thông tin thì giao diện này sẽ xuất hiện.<br />

- Màn hình sẽ đưa ra các thông tin của game như tác giả, phiên bản,<br />

website của game.<br />

6.3. Kết quả thực hiện<br />

6.3.1 Môi trƣờng phát triển và triển khai<br />

Môi trường phát triển ứng dụng:<br />

- Hệ điều hành: Windows Phone 7<br />

- Công cụ vẽ use-case : Visio <strong>2010</strong><br />

- Công cụ đã dùng để xây dựng ứng dụng: Visual Studio <strong>2010</strong><br />

- Các thư viện đã sử dụng :<br />

Môi trường triển khai ứng dụng:<br />

- Cấu hình điện thoại: Sử dụng windows phone 7<br />

- Cần cài đặt Windows phone 7<br />

6.3.2 Kết quả đạt đƣợc<br />

‣ Chức năng cài đặt hoàn chỉnh.<br />

− Thiết kế giao diện menu.<br />

− Cho biết thông tin người làm Game.<br />

− Chức năng hướng dẫn người chơi.<br />

− Cho phép người chọn các cấp độ khác nhau.<br />

− Thiết lập khối gạch rơi tự do.<br />

− Nhạc nền, âm thanh sống động.<br />

‣ Chức năng chƣa hoàn chỉnh, chƣa xử lý.<br />

- Chưa thiết kế tùy chỉnh game.<br />

- Chưa thiết lập được điểm tăng lên theo từng level và được qua level khi<br />

thắng level hiện tại.<br />

hình.<br />

- Chưa di chuyển được các khối vuông bằng chức năng Touchpad trên màn<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 39 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

- Chưa có chức năng lưu điểm người chơi, chức năng tạm dừng chơi game.<br />

6.4. Hƣớng phát triển:<br />

- Xây dựng game có thiết kế giao diện 3D, có thể thay đổi ảnh nền khi đang<br />

chơi Game.<br />

- Xây dựng các Khối gạch sinh động hơn.<br />

- Các tùy chọn chơi game để người chơi chọn<br />

- Xây dựng các lever khó và hấp dẫn hơn.<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 40 -


Báo cáo Thực Tập Tốt Nghiệp<br />

Đề tài: Game Tetris<br />

TÀI LIỆU THAM KHẢO<br />

[1] Giáo trình Microsoft_Press_ebook_Programming_Windows_Phone_7<br />

[2] Giáo trình Expression_Blend_4<br />

[3] http://techmaster.vn/<br />

[4] http://google.vn<br />

[5] http://www.youtube.com/techmastervn<br />

[6] …<br />

SVTH: Hoàng Văn Hiếu – Lớp 11TH2.LT - 41 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!