Game có nhiều phiên bản và hầu hết ở dạng game flash chơi trên máy tính: • Boxo miniclip : Boxo là một game mini có cách chơi hấp dẫn, 2 người chơi thay phiên nhau gạch các đường thẳng v
Trang 1TRƯỜNG CAO ĐẲNG NGHỀ ISPACE
KHOA: CÔNG NGHỆ THÔNG TIN NGÀNH: LẬP TRÌNH MOBILE
Trang 2LỜI CẢM ƠN
Trước tiên, em xin được gửi lời cảm ơn đến tất cả quý thầy cô đã tham gia giảng dạy Trường Cao đẳng nghề CNTT iSpace vì đã truyền đạt những kiến thức hữu ích làm cơ sở cho em thực hiện đồ án này
Em cũng xin chân thành cảm ơn đến thầy Lê Hồng Kỳ, người đã tận tình hướng dẫn, tạo mọi điều kiện thuận lợi để em hoàn thành tốt đồ án
Sau cùng em xin gửi lời biết ơn sâu sắc đến gia đình vì đã luôn tạo điều kiện cho em trong suốt quá trình học tập cũng như thực hiện đồ án
Hồ Chí Minh, tháng 06 năm 2015
Trân trọng
Trang 3sẽ được cộng hoặc trừ số điểm tương ứng Sau khi khoanh hết tất cả các ô vuông , ai
là người có số điểm cao hơn sẽ giành chiến thắng
Trang 4và công việc
Đặc biệt trong ngành phần mềm, game là một lĩnh vực đặc biệt, đang có bước phát triển mạnh mẽ, khi mà nhu cầu giải trí trên các thiết bị di động của người sử dụng ngày một tăng cao Do đó, lập trình game trên các thiết bị di động đang là một
xu hướng tất yếu của các nhà làm phần mềm
Điện thoại Android với số lượng người dùng đông đảo, cùng với sự đa dạng về cấu hình, đa dạng về chủng loại, đang là mảnh đất màu mỡ cho các nhà phát triển game Do đó, google cũng đã hỗ trợ Android rất nhiều những thư viện để lập trình game hiệu quả, trong đó có thể kể đến OpenGL, một thư viện đồ họa rất mạnh mẽ Với sự phát triển mạnh mẽ như vậy của Android, và lập trình game trên Android, cơ hội cho lập trình viên là rất lớn Vì vậy, nhóm đã chọn đồ án “Lập trình game trên Android” Trong đồ án này, nhóm sẽ trình bày cái nhìn cơ bản về lập trình game trên Android và xây dựng chương trình demo
Trang 5CHƯƠNG 1: TỔNG QUAN
1.1 TÌNH HÌNH TRONG VÀ NGOÀI NƯỚC
Dot & Box là một game trí tuệ được ra đời năm 1889 bởi nhà toán học
Édouard Lucas Với sự đơn giản trong cách chơi ( chỉ cần 1 cấy bút chì và giấy ) đã tạo ra cho con người ở thời điểm đó một trò chơi rất thú vị
Game có nhiều phiên bản và hầu hết ở dạng game flash chơi trên máy tính:
• Boxo miniclip : Boxo là một game mini có cách chơi hấp dẫn, 2 người chơi thay phiên nhau gạch các đường thẳng vào các ô, người nào gạch được đường thẳng để đóng thành 1 ô thì ăn ô đó và sẽ có thêm 1 lượt đi,
ai giành được số điểm cao hơn sẽ giành chiến thắng
• Dot and boxes :Dot and boxes là phiên bản game đơn giản hơn với chỉ các đường
kẻ và ô vuông, người nào ăn được nhiều ô vuông hơn sẽ chiến thắng
Ở trong nước thì hiện tại em chưa thấy phiên bản nào của Dot & Box
- Chương 2: Phân tích và thiết kế trò chơi
- Chương 3: Xây dựng trò chơi hoàn chỉnh
Trang 6CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ2.1 PHÂN TÍCH
Vì cấu trúc trò chơi gốc khá đơn giản, nên ở phiên bản Square King sẽ không thay đổi nhiều về cách chơi, nhưng lối chơi sẽ khác rất nhiều
Square King sẽ được viết hoàn toàn bằng code Android ( không sử dụng bất
Trang 72.2.2 Giao diện chính
Ở phần này nhóm em thiết kế logo trò chơi (ImageView) kết hợp với các nút bấm ( Image button) để thể hiện màn hình này.Kết hợp bên ngoài là RelativeLayout bên trong là các LinearLayout
Hình 2.2 Màn hình menu
Trang 82.2.3 Giao diện 1 người chơi (Chơi với máy)
Vì là chơi với máy nên nhóm em chọn ra 3 mức độ khác nhau
- Mức độ dễ: Chỉ cần cao điểm hơn máy là sẽ thắng
- Mức độ bình thường: Phải ăn hết 3 ngôi sao mới thắng
- Mức độ khó: Ăn hết 3 ngôi sao và không ăn phải bom
Hình 2.3 Chọn mức độ chơi
Trang 9Hình 2.4 Dễ Hình 2.5 Thường Hình 2.6 Khó
2.2.4 Giao diện 2 người chơi ( Trên 1 máy).
Đây là giao diện chính của trò chơi, được tạo ra bằng GridView chứa 25 ô vuông giống nhau, trên mỗi ô vuông sẽ là các vật phẩm ngẫu nhiên ( bom, ngôi sao,bọ, tiền vàng) sẽ có các mức thưởng phạt ( cộng hoặc trừ điểm ) khác nhau.Phần này hoàn toàn xử lí sự kiện GridView mỗi khi chạm vào giữa 2 cạnh left right của 2 ô kề nhau ( hoặc bottom hoặc top ) thì sẽ vẽ 1 đường thẳng giữa chúng
Hình 2.7 Giao diện 2 người
Trang 112.2.6 Màn hình thoát.
Đơn giản là Alert Dialogthông báo khi người dùng nhấnnút trở về
Hình 2.12 Sự kiện nút thoát
Trang 12CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH3.1 CÀI ĐẶT.
Trang 13B1.Cài đặt JDK:
Hình 3.2 Cài đặt JDK
B2 Giải nén Eclipse và copy ADT vào thư mục Eclipse
Hình 3.3 Giải nén tập tin Eclipse
Trang 14Hình 3.4.Sao chép ADT vào thư mục Eclipse
B3 Chạy Eclipse và bắt đầu cài Android Plugin
B3.1.Chạy Eclipse với quyền của Administrator
Hình 3.5 Chạy Eclipse với quyền Admin
Trang 15Hình 3.6 Chọn thư mục để làm việc
Giao diện Eclipse như sau:
Hình 3.7 Giao diện Eclipse
Trang 16B3.2.Cài ADT :
Bạn vào phần Help -> Install New Software
Hình 3.8 Chọn Install New Software
Hình 3.9 Nhấn chọn Add
Trang 17Hình 3.10 Nhập tên ADT và đường dẫn
Bạn nhập tên tại mục Name là: ADT
Sau đó chọn Archive để hiển thị cửa sổ giúp bạn tìm đến tập tin ADT mà bạn
đã download về trước đó, rồi chọn OK
Hình 3.11 Chọn đường dẫn ADT
Trang 18Và chọn OK :
Hình 3.12 Giao diện sau khi chọn đường dẫn ADT
Sau đó chọn Select All
Hình 3.13 Chọn Select All
Trang 20Chọn Finish.
Hình 3.16 Giao diện khi chọn Finish
Đợi 1 lúc cho đến khi hiển thị cảnh báo như sau :
Hình 3.17 Giao diện cảnh báo truy cập
Trang 21Chọn Yes để khởi động lại Eclipse
Hình 3.18 Chọn Yes và khởi động lại Eclipse
Giao diện chương trình Eclipse sẽ xuất hiện biểu tượng như sau
Hình 3.19 Giao diện Eclipse sau khi cài đặt ADT
Trang 22Chọn biểu tượng hình mũi tên đi xuống chỗ gạch đỏ ở hình 3.19 để update phiên bản eclipse.
Hình 3.20 Giao diện update.
Và bạn hãy chọn các phần trong : Tool, Android, Extras tương ứng với các phiên bản Android bạn muốn
Hình 3.21 Cập nhật phiên bản Android
Trang 23Chọn Install
Hình 3.22 Màn hình các gói đã tải
Chọn Accept All
Hình 3.23 Màn hình chọn Accept All
Trang 24Sau đó chọn Install Và đợi 1 thời gian Lưu ý phần này cần có kết nối mạng
để cài đặt
Hình 3.24 Màn hình cài đặt các gói mở rộng extras
Vậy là chúng ta đã cài đặt xong môi trường để lập trình Android
Trang 253.2 VIẾT XỬ LÍ.
3.2.1 Tạo project.
Mở eclipse chọn File - > New -> Android Application Project
Hình 3.25 Tạo mới Project
Trang 26Chọn Next -> Next sau đó chọn biểu tượng cho trò chơi và next rồi nhấn finish
Hình 3.26 Chọn biểu tượng cho trò chơi
3.2.2 Tạo màn hình mở đầu ( SplashScreen )
Mỗi trò chơi hiện nay đều có một màn hình để giới thiệu cũng như để xử lí thời gian trễ khi hệ thống đang tải các dữ liệu trò chơi,
Ở đây nhóm em dùng 2 file class để xử lí màn hình này
Sử dụng Progressbar , TextView
Hình 3.27 Các tập tin SplashScreen
Trang 27Tập tin LoadingTask có chức năng xử lí đa tiến trình AsyncTask để xử lí phần loading 100% của progress bar và interface LoadingTaskFinishedListener để sử dụng sau này.
Gọi phương thức xử lí downloadResources() xử lí đếm từ 1 đến 100% bằng
Trang 283.2.3 Giao diện màn hình trò chơi
Phần này xử lí bằng một Activity bao gồm các ImageButton và ImageView
để hiển thị logo trò chơi
Màn hình này được xử lí bằng xml với Relativelayout và LinearLayout
Tập tin OptionMenu implement OnClickListener để xử lí tương tác các menu trong trò chơi
Dùng Switch case để xử lí
Trang 293.2.4 Giao diện ngườichơi với máy (AI)
Đây là phần xử lí giao diện người chơi với máy, khi người chơi lựa chọn từ menu trò chơi
Với giao diện có 3 sự lựa chọn cấp độ chơi : bình thường , dễ và khó
bằng tập tin LevelActivity
Cách xử lí 3 mục này tương tự với xử lí màn hình chính nên em sẽ không đề cập lại ở đây
Xử lí khi người dùng chọn cấp độ:
- Khi người dùng chọn cấp độ chơi , màn hình này sẽ gửi 1 thông điệp và
mở màn hình 1 người chơi lên thông qua câu lệnh Intent
Trang 30- Tập tin OnePlay : là tập tin giao diện chơi game chính thức với máy
sử dụng điều khiển GridView gồm 25 ô, một số ô sẽ chứa các vật phẩm bất kì ( bom,vàng, kim cương, bọ)
- Về phần xử lí máy chơi : Nhóm em dùng AsyncTask cùng với 1 tập tin Common để xử lý máy tự động chơi với phương thức autoplay(i,j)
i và j là tọa độ máy đánh khi người chơi đã đánh xong chi tiết có thể xem trong source code kèm theo
Trang 31Ở tập tin OnePlay có các phương thức xử lí như:
- OpenBoxo ( khi 4 cạnh ô vuông đã được đánh hết)
- SetcurrentTurn :Xử lí chuyển lượt chơi của người chơi và máy khi không khoanh được hình vuông trong lượt chơi của mình
Trang 32- setImageLineAnimation ( xử lí chuyển động khi vẽ đường nối )
phương thức này xử lí khi người chơi hoặc máy vẽ đường nối hình
vuông
- Showwinerform( xử lí hiện thông tin người thắng cuộc)
- Onclick ( xử lí khi người chơi hoặc máy chạm vào cạnh hình vuông hay khi người chơi nhân nút chơi lại )
Trang 33- Cuối cùng ở trong onCreate xử lí âm thanh và thông báo khi người chơi chọn mức độ chơi.
Các phương thức AlertDialog đều được xử lí trong tập tin Common
3.2.5 Giao diện 2 người chơi
Màn hình giao diện 2 người chơi giống y hệt màn hình OnePlay chỉ khác ở một số điểm như:
- Không có phần của Máy chơi( autoplay,AsyncTask)
- Có thêm các phương thức như CheckisFinish,ChecktoDraw
Ở đây nhóm em sẽ không nhắc lại các phần giống với OnePlay ở trên Mà sẽ tập trung vào các phương thức thêm vào
- Phương thức CheckisFinish (kiểm tra khi tất cả các ô trên màn hình đã được mở)
Trang 34- Phương thức ChecktoDraw (xử lí kiểm tra khi một ô được hoàn thành
kiểm tra khi số cạnh được vẽ bằng 4)
Trang 353.2.6 Giao diện màn hình giúp đỡ
Đây là màn hình giúp người chơi có thể hiểu sơ bộ cách chơi của trò chơi
Ở đây nhóm em sử dụng một Dialog cùng với một ImageView
Dành riêng một Activity để xử lí giao diện này
Sau đó dùng intent để chuyển qua màn hình này từ OptionMenu
Trang 363.2.7 Các tập tin khác.
Ngoài ra trong trò chơi này chúng em còn sử dụng các tập tin như:
- BoxoAdapter : adapter của các ô trong trò chơi
- FlipAnimation và FlipAnimationFactory (Xử lí lúc lật ô trong trò chơi)
- Tập tin Constant: Đặt các giá trị hằng số.
MediaSound: Quản lý âm thanh trong trò chơi
Section : Đặt các map trong trò chơi ( vị trí các ô có vật phẩm trong trò chơi)
Trang 37KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂNKẾT QUẢ ĐẠT ĐƯỢC:
Qua quá trình nghiên cứu về trò chơi Square King, đồ án đã làm được một số công việc sau:
- Nghiên cứu về boar game, làm game đơn giản chạy trên hệ điều hành Android
- Nghiên cứu về GridView trong xử lí game board Android
- Hoàn thành được một sản phẩm game không những chơi được mà còn thú vị và hấp dẫn
HƯỚNG PHÁT TRIỂN:
Do thời gian làm đồ án có hạn, vàchưa có nhiều kinh nghiệm nên trò chơi còn thiếu một số phần sẽ phát triển thêm như :
- Làm chế độ chơi game trực truyến ( Thông qua Google Play Service)
- Làm chế độ chơi game thông qua bluetooth, cùng sóng wifi nội bộ
Trang 38TÀI LIỆU THAM KHẢO
<http://dotsandboxes.org/>
[4] SinhvienIT.com
BẢNG PHÂN CHIA CÔNG VIỆC
1 Xử lí người chơi với máy,hỗ trợ xử lí game 2
3 Xử lí 2 người chơi, âm thanh, đồ họa Đỗ Xuân Sinh
4 Xử lí các tập tin khác , xử lí giao diện các
màn hình
Bùi Phú Vinh