Đồ án java trên nền website game ball Đồ án java trên nền website game ball Đồ án java trên nền website game ball Đồ án java trên nền website game ball Đồ án java trên nền website game ball Đồ án java trên nền website game ball Đồ án java trên nền website game ball
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
Thiết kế hệ thống trò chơi “phiêu lưu bắn bóng bay”
bằng NNLT Java trên nền website game ball
Hà Nội, 6-2018
Trang 3Giảng viên hướng dẫn đánh giá:
Họ và tên Sinh viên: MSSV:………
Tên đồ án:
………
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
1 Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như
phạm vi ứng dụng của đồ án
1 2 3 4 5
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả
Có khả năng phân tích và đánh giá kết quả (15)
5
Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp
thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ
6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được phân tích và đánh giá thỏa đáng. 1 2 3 4 5
7
Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa
kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp
lập luận để đề xuất hướng giải quyết có thể thực hiện trong
tương lai
1 2 3 4 5
Kỹ năng viết (10)
8
Đồ án trình bày đúng mẫu quy định với cấu trúc các chương
logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được
đánh số thứ tự và được giải thích hay đề cập đến trong đồ án,
có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu
chương và kết luận chương, có liệt kê tài liệu tham khảo và có
trích dẫn đúng quy định
1 2 3 4 5
9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
10a
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải
SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa
học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng
phát minh sáng chế
5
10b
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên
nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở
lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế
khác về chuyên ngành như TI contest
2
Điểm tổng /50 Điểm tổng quy đổi về thang 10
Trang 4Nhận xét thêm của Thầy/Cô (giảng viên hướng dẫn nhận xét về thái độ và tinh
thần làm việc của sinh viên)
Ngày: / /2018 Người nhận xét
(Ký và ghi rõ họ tên)
Trang 5Cán bộ phản biện đánh giá:
Họ và tên Sinh viên: MSSV:………
Tên đồ án:
………
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
1
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và
các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quảđạt được 1 2 3 4 5
Có khả năng phân tích và đánh giá kết quả (15)
5
Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp
thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ
6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được phân tích và đánh giá thỏa đáng. 1 2 3 4 5
7
Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa
kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp
lập luận để đề xuất hướng giải quyết có thể thực hiện trong
tương lai
1 2 3 4 5
Kỹ năng viết (10)
8
Đồ án trình bày đúng mẫu quy định với cấu trúc các chương
logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được
đánh số thứ tự và được giải thích hay đề cập đến trong đồ án,
có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu
chương và kết luận chương, có liệt kê tài liệu tham khảo và có
trích dẫn đúng quy định
1 2 3 4 5
9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa
học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
10a
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải
SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa
học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng
phát minh sáng chế
5
10b
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên
nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở
lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế
khác về chuyên ngành như TI contest
2
Điểm tổng /50 Điểm tổng quy đổi về thang 10
Trang 6Nhận xét thêm của Thầy/Cô
Ngày: / /2018 Người nhận xét
(Ký và ghi rõ họ tên)
Trang 7LỜI NÓI ĐẦU
Trong xã hội hiện đại ngày naytiềm ẩn quá nhiều nguy cơ tác động tiêu cực đếnđời sống và sức khỏe tinh thần của con người, có thể dẫn đến những căn bệnh vềtâm lý, stress Bản thân em cũng đã từng bị stress nặng ảnh hưởng rất lớn đến cuộcsống Tuy nhiên bằng những trò chơi điện tử đơn giản sau những thời gian học tập
và làm việc căng thẳng đã giúp em giải tỏa đi rất nhiều Vì lẽ đó em đã chọn đề tài
“XÂY DỰNG HỆ THỐNG TRÒ CHƠI ĐIỆN TỬ KẾT HỢP ỨNG DỤNG WEB ”
để làm đồ án tốt nghiệp của mình Là một người yêu thích lập trình, em muốn dùngnhững kiến thức mà mình đã học được trên ghế nhà trường để tạo ra một trò chơiđiện tử, mà mọi người có thể giải tỏa những áp lực cuộc sống sau những giờ làmviệc căng thẳng Không chỉ dừng lại ở mức độ đồ án tốt nghiệp, em muốn hướng tớimột sản phẩm mà em có thể khởi nghiệp trong tương lai
Em xin cam đoan đã thực hiện quá trình làm đồ án một cách khoa học, trungthực, đúng đắn dưới sự hướng dẫn của ThS Các tài liệu, bài báo khoa học, giáotrình giảng dạy nếu được sử dụng trong đồ án đều được trích dẫn đầy đủ Em xinchịu trách nhiệm trước hội đồng về sự trung thực của đồ án mà mình thực hiện
Em xin bày tỏ lòng biết ơn sâu sắc tới ThS , thầy đã truyền đạt kiến thức, kĩnăng trong học tập và nghiên cứu, hướng dẫn tận tâm giúp em hoàn thành đồ ánnày Và em cũng xin chân thành cảm ơn các thầy, cô, các cán bộ làm việc tại trườngĐại học Bách khoa Hà Nội và đặc biệt là các thầy, cô trong khoa Điện tử viễnthông đã trang bị nền tảng kiến thức giúp em trong quá trình học tập và làm đồ án.Cuối cùng, em xin gửi lời cảm ơn tới gia đình, người thân, bạn bè đã quan tâm,động viên, tạo điều kiện cho em trong quá trình học tập
Trang 8TÓM TẮT ĐỒ ÁN
Đồ án này hướng tới việc xây dựng một hệ thống bao gồm 2 phần là trò chơiđiện tử và ứng dụng web Trò chơi chạy trên nền máy tính cá nhân, hướng tới thểloại trò chơi giải trí, không cần đầu tư nhiều thời gian Lối chơi đơn giản chỉ cầnclick chuột và ghi điểm, ai cũng có thể chơi Hướng tới nhiều lứa tuổi khác nhau.Ứng dụng web là một kênh chính thức để quảng bá và phát hành trò chơi Khôngchỉ thế, ứng dụng web còn giúp người chơi có thể tạo và quản lý tài khoản củamình, đây còn là nơi để người chơi phản hồi cũng như có những đóng góp cho tròchơi Người quản trị thông qua ứng dụng web có thể xử lý những vấn đề của ngườichơi gặp phải, tiếp nhận những ý kiến đóng góp của người chơi để trò chơi ngàycàng hoàn thiện và phát triển hơn
This project aims to build a system consisting of two parts: video games andweb application The game is geared towards entertaining game genres, withoutspending much time The game is very easy to play, just click click and click,anyone can play Targeted for many ages Web application is an official channel forpromoting and releasing the game Not only that, the web application also allowsplayers to create and manage their accounts, as well as where players can respondand contribute to the game The administrator through the web application canhandle the problems of the players encountered, receive the comments of players sothat the game is up to date and improved
Trang 9MỤC LỤC
LỜI NÓI ĐẦU 7
TÓM TẮT ĐỒ ÁN 8
MỤC LỤC 9
DANH SÁCH HÌNH VẼ 11
DANH SÁCH BẢNG BIỂU 13
Chương 1 Tổng quan ngành công nghiệp trò chơi điện tử 15
1.1 Ngành công nghiệp trò chơi điện tử 15
1.1.1 Trò chơi điện tử là gì ? 15
1.1.2 Ngành công nghiệp trò chơi điện tử 15
1.2 Ngành công nhiệp trò chơi điện tử tại Việt Nam 16
1.3 Kết luận 16
Chương 2 Xây dựng trò chơi bằng ngôn ngữ Java và framework JavaFX 17
2.1 Java và framework JavaFX 17
2.1.1 Java 17
2.1.2 JavaFX 19
2.2 Phân tích trò chơi 19
2.2.1 Ý tưởng 19
2.2.2 Xác định rõ yêu cầu 19
2.2.3 Mô hình hóa chức năng 20
2.2.4 Mô hình cầu trúc 27
2.2.5 Mô hình hóa hoạt động 34
2.3 Thiết kế trò chơi 38
2.3.1 Thiết kế lớp và phương thức 38
2.3.2 Thiết kế giao diện 42
2.4 Thiết kế cơ sở dữ liệu 45
2.4.1 Xác định thực thể 45
2.4.2 Mô hình thực thể liên kết 45
2.4.3 Chuẩn hóa 45
2.4.4 Mô tả chi tiết các quan hệ 46
2.4.5 Mô hình thực thể cho quan hệ 46
2.5 Kết luận 46
Chương 3 Xây dựng ứng dụng web bằng ngôn ngữ Python và framework Django 47 3.1 Python và framework Django 47
Trang 103.1.1 Python 47
3.1.2 Django 48
3.2 Phân tích hệ thống 48
3.2.1 Ý tưởng 48
3.2.2 Xác định rõ yêu cầu 48
3.2.3 Mô hình hóa chức năng 49
3.2.4 Mô hình cầu trúc 56
3.2.5 Mô hình hóa hoạt động 60
3.3 Thiết kế hệ thống 65
3.3.1 Thiết kế lớp và phương thức 65
3.3.2 Thiết kế giao diện 66
3.4 Thiết kế cơ sở dữ liệu 70
3.4.1 Xác định thực thể 70
3.4.2 Mô hình thực thể liên kết 70
3.4.3 Chuẩn hóa 71
3.4.4 Mô tả chi tiết các quan hệ 71
3.4.5 Mô hình thực thể cho quan hệ 73
3.5 Kết luận 73
KẾT LUẬN 74
TÀI LIỆU THAM KHẢO 75
BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT ANH 76
PHỤ LỤC 77
Trang 11DANH SÁCH HÌNH VẼ
Hình 2.1 Danh sách 10 ngôn ngữ lập trình phổ biến nhất năm 2017 [9] 17
Hình 2.2 Sơ đồ ca sử dụng 21
Hình 2.3 Sơ đồ hoạt động của hệ thống 26
Hình 2.4: Sơ đồ lớp 32
Hình 2.5: Sơ đồ đối tượng 33
Hình 2.6 Sơ đồ tuần tự của hoạt động đăng ký 34
Hình 2.7 Sơ đồ tuần tự của hoạt động đăng nhập 34
Hình 2.8 Sơ đồ tuần tự của hoạt động chơi không đăng nhập 35
Hình 2.9 Sơ đồ tuần tự của hoạt động hướng dẫn chơi 35
Hình 2.10 Sơ đồ tuần tự của hoạt động bật/tắt âm thanh 36
Hình 2.11 Sơ đồ tuần tự của hoạt động xem điểm số 36
Hình 2.12 Sơ đồ tuần tự của hoạt động chọn màn chơi 37
Hình 2.13 Sơ đồ tuần tự của hoạt động chơi 37
Hình 2.14 Giao diện đầu trò chơi 42
Hình 2.15 Giao diện đăng nhập 42
Hình 2.16 Giao diện chính 43
Hình 2.17 Giao diện điểm cao 43
Hình 2.18 Giao diện chơi 44
Hình 2.19 Giao diện chọn màn chơi 44
Hình 2.20 Mô hình thực thể liên kết 45
Hình 2.21 Mô hình thực thể cho quan hệ 46
Hình 3.1 Sơ đồ ca sử dụng của hệ thống 51
Hình 3.2 Sơ đồ hoạt động của hệ thống 56
Hình 3.3 Sơ đồ lớp 59
Hình 3.4 Sơ đồ đối tượng 60
Hình 3.5 Sơ đồ tuần tự hoạt động đăng ký tài khoản 60
Hình 3.6 Sơ đồ tuần tự hoạt động đăng nhập tài khoản người chơi 61
Hình 3.7 Sơ đồ tuần tự của hoạt động xem hướng dẫn chơi 61
Hình 3.8 Sơ đồ tuần tự hoạt động xem những người chơi có điểm số cao 62
Hình 3.9 Sơ đồ tuần tự của hoạt động tải trò chơi 62
Hình 3.10 Sơ đồ tuần tự hoạt động chỉnh sửa thông tin 63
Hình 3.11 Sơ đồ tuần tự của hoạt động tạo mới phản hồi 63
Hình 3.12 Sơ đồ tuần tự của lịch sử đăng nhập 63
Hình 3.13 Sơ đồ tuần tự khóa / mở khóa tài khoản người chơi 64
Hình 3.14 Sơ đồ tuần tự của hoạt động xử lý phản hồi 64
Hình 3.15 Sơ đồ tuần tự của hoạt động khóa / mở khóa tài khoản nhân viên 64
Hình 3.17 Giao diện đăng nhập 66
Hình 3.16 Giao diện đăng ký 66
Hình 3.18 Giao diện lịch sử đăng nhập của người chơi 66
Hình 3.19 Giao diện thay đổi thông tin cá nhân 67
Hình 3.20 Giao diện tạo mới phản hồi 67
Hình 3.21 Giao diện hiển thị chi tiết điểm số 67
Hình 3.22 Giao diện quản lý nhân viên 68
Hình 3.23 Giao diện quản lý phản hồi từ người chơi 68
Trang 12Hình 3.24 Giao diện quản lý người chơi 68
Hình 3.25 Giao diện trang chủ 1 69
Hình 3.26 Giao diện trang chủ 2 69
Hình 3.27 Giao diện trang chủ 3 69
Hình 3.28 Sơ đồ thực thể liên kết 70
Hình 3.29 Mô hình thực thể cho quan hệ 73
Trang 13DANH SÁCH BẢNG BIỂU
Bảng 2.1 Mô tả đăng ký 21
Bảng 2.2 Mô tả đăng nhập 22
Bảng 2.3 Mô tả chọn màn chơi 22
Bảng 2.4 Mô tả hiển thị điểm số cao 22
Bảng 2.5 Mô tả bật âm thanh 23
Bảng 2.6 Mô tả tắt âm thanh 23
Bảng 2.7 Mô tả hướng dẫn chơi 23
Bảng 2.8 Mô tả chơi 24
Bảng 2.9 Mô tả tạm dừng trò chơi 24
Bảng 2.10 Mô tả tiếp tục trò chơi 25
Bảng 2.11 Mô tả chơi lại 25
Bảng 2.12 Thẻ GameObject 27
Bảng 2.13 Thẻ Ball 27
Bảng 2.14 Thẻ Bomb 28
Bảng 2.15 Thẻ wall 28
Bảng 2.16 Thẻ gate 29
Bảng 2.17 Thẻ storm 29
Bảng 2.18 Thẻ resizeObj 30
Bảng 2.19 Thẻ sound 30
Bảng 2.20 Thẻ GameBall 30
Bảng 2.21 Thẻ BackgroundMusic 31
Bảng 2.22 Thẻ User 31
Bảng 2.23 Thẻ GameConnection 31
Bảng 2.24 Danh sách thực thể 45
Bảng 2.25 Mô hình quan hệ sau chuẩn hóa 45
Bảng 2.26 Chi tiết player 46
Bảng 2.27 Chi tiết player_score 46
Bảng 3.1 Mô tả đăng ký 51
Bảng 3.2 Mô tả đăng nhập 52
Bảng 3.3 Mô tả tải trò chơi 52
Bảng 3.4 Mô tả hướng dẫn chơi 52
Bảng 3.5 Mô tả xem điểm cao 53
Bảng 3.6 Mô tả xem lịch sử đăng nhập 53
Bảng 3.7 Mô tả đăng xuất 53
Bảng 3.8 Mô tả thay đổi thông tin cá nhân 54
Bảng 3.9 Mô tả gửi phản hồi 54
Bảng 3.10 Mô tả xử lý phản hồi 55
Bảng 3.11 Mô tả khóa/mở khóa tài khoản người chơi 55
Bảng 3.12 Mô tả khóa/mở khóa tài khoản nhân viên 55
Bảng 3.13 Thẻ player 56
Bảng 3.14 Thẻ agent 57
Bảng 3.15 Thẻ manager 57
Bảng 3.16 Thẻ feedback 58
Bảng 3.17 Thẻ score 58
Trang 14Bảng 3.18 Thẻ LoginHistory 59
Bảng 3.19 Xác định thực thể 70
Bảng 3.20 Mô hình quan hệ sau chuẩn hóa 71
Bảng 3.21 Chi tiết quan hệ player 71
Bảng 3.22 Chi tiết quan hệ player_score 71
Bảng 3.23 Chi tiết player_history 72
Bảng 3.24 Chi tiết quan hệ feedback 72
Bảng 3.25 Chi tiết quan hệ admin 72
Trang 15Chương 1 Tổng quan ngành công nghiệp trò chơi điện tử
Nội dung chương 1 sẽ giới thiệu khái quát về ngành công nhiệp trò chơi điện tử,lịch sử phát triển và bức tranh về ngành công nghiệp này tại Việt Nam Và phầncuối sẽ giới thiệu mô hình mà đồ án hướng tới
1.1 Ngành công nghiệp trò chơi điện tử
1.1.1 Trò chơi điện tử là gì ?
Trò chơi điện tử (hay video game) là một trò chơi giải trí ứng dụng nền tảngcông nghệ điện tử hiện đại, có tính tương tác giữa người chơi và trò chơi Trò chơiđiện tử là thành quả phát triển của công nghệ giải trí hiện đại, là sự kết hợp tinh hoacủa nhiều mảng như lập trình, đồ họa, âm nhạc…
Trò chơi điện tử giúp cho mọi người thỏa mãn nhu cầu giải trí nhằm giải tỏanhững áp lực từ cuộc sống hàng ngày, xua bớt đi những cảm xúc tiêu cực
1.1.2 Ngành công nghiệp trò chơi điện tử
Ngành công nghiệp trò chơi điện tử là ngành kinh tế có liên quan đến pháttriển, tiếp thị và kiếm tiền từ trò chơi điện tử. Nó là một quy trình chặt chẽ của hàngchục ngành nghề khác nhau Đây đang là một trong những ngành công nghiệpkhông khói đem lại doanh thu hàng đầu thế giới
Trong thời điểm hiện tại doanh thu khi phát hành một sản phẩm trò chơi mớiđược ra mắt không thua kém gì những tựa phim điện ảnh Theo Newzoo (một hãngnghiên cứu thị trường), doanh thu toàn cầu thị trường trò chơi điện tử năm 2017 ướctính đạt 108,9 tỉ USD và tiến đến con số 128,5 tỉ USD vào năm 2020 [10] Vào năm
2012 con số này chỉ đạt 70 tỉ USD [10], có thể thấy sự phát triển mạnh mẽ củangành công nghiệp này bất chấp sự suy thoái của nền kinh tế
Bên cạnh đó, việc các giải đấu thể thao điên tử (e-sport) liên tục được tổ chứcvới những kinh phí và giải thưởng khổng lồ thu hút hàng triệu người theo dõi, cácđài truyền hình tranh nhau trực tiếp Tất cả dần tạo nên ngành công nghiệp trò chơigiải trí lớn mạnh không ngừng
Trang 161.2 Ngành công nhiệp trò chơi điện tử tại Việt Nam
Ở Việt Nam ngành công nghiệp trò chơi điện tử cũng phát triển phát triển vớitốc độ rất nhanh Với doanh số lớn và sự tăng trưởng nhanh đã góp phần quan trọngvào sự phát triển của ngành công nghiệp nội dung số Sự phát triển của ngành đãmang về mức doanh thu lớn cho các nhà phát hành trò chơi, góp phần không nhỏtrong trong sự phát triển chung của ngành công nghiệp nội dung số Việt Nam vàđồng thời thúc đẩy sự phát triển của hạ tầng viễn thông Việt Nam Các nhà pháthành lớn phải kể đến những công ty lớn như là VNG, Garena, Soha, VTC games…Đây là những công ty nổi tiếng không chỉ trong nước mà cả khu vực lẫn thế giới vớidoanh thu khổng lồ
Bên cạnh những nhà phát hành thì các công ty phát triển trò chơi cũng pháttriển không ngừng cho ra đời những sản phẩm chất lượng sánh ngang với quốc tế.Đơn cử là Hiker Games, một công ty đi đầu ở Việt Nam với những trò chơi nổitiếng thế giới Tiêu biểu là trò chơi “7554” tái hiện lại chiến thắng lịch sử ĐiệnBiên Phủ của dân tộc ta, với đồ họa đẹp mắt cốt truyện hấp dẫn đã tạo nên cơn sốtlúc phát hành
Chính những thành công đó đã tạo động lực cho những người trẻ ấp ủ mangtrò chơi của người Việt làm ra nổi tiếng trên toàn thế giới Nguyễn Hà Đông là mộttrong số đó, với trò chơi Flappy Bird của mình trở thành một hiện tượng lúc bấygiờ
Qua đó em muốn đề tài của mình không chỉ phục vụ mục đích làm đồ án tốtnghiệp mà còn có thể trở thành một sản phẩm để em phát triển trong tương lai gần
Đề tài hướng tới xây dựng một hệ thống hoàn chỉnh có trò chơi, có kênh để quảng
bá cũng như giới thiệu trò chơi, đồng thời cũng giúp thu thập ý kiến đóng góp củangười dùng để trò chơi ngày một phát triển
1.3 Kết luận
Việc phát triển của ngành công nghiệp trò chơi điện tử đã tạo động lực khôngnhỏ để em lựa chọn theo con đường phát triển trò chơi điện tử Với sự yêu thích lậptrình và vốn kiến thức học được trên ghế nhà trường, em muốn đồ án này là bướckhởi đầu cho sự nghiệp phát triển trò chơi sau này của mình
Trang 17Chương 2 Xây dựng trò chơi bằng ngôn ngữ Java và framework
JavaFX
Phần đầu chương 2 sẽ giới thiệu về tóm tắt ngôn ngữ lập trình Java, frameworkJavaFX và lý do sử dụng ngôn ngữ này Phần sau của chương sẽ tập trung vào cácbước phân tích, thiết kế và xây dựng trò chơi
2.1 Java và framework JavaFX
2.1.1 Java
Java là ngôn ngữ lập trình bậc cao được phát triển đầu tiên bởi JamesGosling tại Sun Microsystems (bât giờ là công ty con của Oracle Coporation) vàđược công bố ngày 23/05/1995 Tuy đã ra đời rất lâu đời (23 năm) nhưng theothống kê năm 2017 Java vẫn đứng hạng 3 những ngôn ngữ lập trình phổ biến nhất
Dưới đây là những đặc điểm khiến Java nằm trong những lựa chọn hàng đầucủa lập trình viên:
Đơn giản: Java giống như C++ lược bỏ đi những đặc trưng phức tạp,không cần thiết Đơn cử như con trỏ, đây là phần gây rất nhiều khó khăncho những ai học C, C++
Hướng đối tượng: Java là một ngôn ngữ hoàn toàn hướng đối tượng, tất
cả trong Java đều là đối tượng. Giúp người lập trình quản lý phát triển vàquản lý code dễ dàng hơn
Hình 2.1 Danh sách 10 ngôn ngữ lập trình phổ biến nhất năm 2017 [9]
Trang 18 Độc lập với hệ nền: hay nói cách khác là độc lập với phần cứng và hệ
điều hành Đây là điểm đặc trưng nhất của Java “Write once, run
anywhere” (viết một lần chạy mọi nơi) Các chương trình viết bằng Java
có thể chạy trên hầu hết các hệ nền mà không cần phải thay đổi gì, điềukhông thể ở các ngôn ngữ lập trình khác
Mạnh mẽ: với yêu cầu chặt chẽ về kiểu dữ liệu giúp hạn chế được các lỗisinh ra trong lúc ép kiểu tự động, bừa bãi Trong các môi trường lập trìnhtruyền thống các lập trình viên phải tự mình cấp phát bộ nhớ và giảiphóng sau khi sử dụng xong Việc này gây nên việc quên giải phóng bộnhớ đã cấp Với Java, không còn phải bận tâm đến điều này, mọi thứ đều
tự động hoàn toàn Bên cạch đó Java hạn chế các lỗi bằng cách kiểm tralỗi thời gian biên dịch và kiểm tra runtime
Hỗ trợ lập trình đa luồng: điều này có nghĩa là các lập trình viên có thểviết chương trình chạy nhiều tác vụ đồng thời
Ứng dụng rộng rãi: ứng dụng đồ họa với Java Swing, JavaFx; ứng dụngAndroid; ứng dụng Web với Spring MVC; ứng dụng mang tính chất giảitrí như trò chơi điện tử …
Với mong muốn xây dựng một trò chơi điện tử thì Java là một lựa chon tuyệtvời Với sự hỗ trợ lập trình hướng đối tượng việc xây dựng, quản lý cũng như mởrộng các đối tượng trong trò chơi trở nên dễ dàng, thuận tiện Đặc biệt với đặc trưngđộc lập với hệ nền giúp trò chơi có thể tương thích với nhiều hệ nền khác nhau màkhông phải mất công thay đổi Đối với các trò chơi việc phải chạy các tác vụ đồngthời là điều không thể thiếu, Java đáp ứng được điều đó
Và một điều quan trọng khi em lựa chọn Java đó là em đã được học một cáchđầy bài bản ngôn ngữ này trong môn lập trình nâng cao Với những lý do trên Java
là một lựa chọn tuyệt vời để em xây dựng trò chơi này
2.1.2 JavaFX
JavaFX là một thư viện hỗ trợ lập trình đồ họa của Java JavaFX hỗ trợ nhiềunền tảng như Window, Linux và macOS Với những nâng cấp về mặt giao diện, bổxung UI Controls, Animations, Chart, Shape, Transformations, CSS, 2D, 3D, WebBrowser và Media JavaFx là một sự thay thế cho Swing như là thư viện tiêu chuẩn
Trang 19lập trình giao diện đồ họa cho java Với những đặc điểm trên JavaFx là một lựachọn hoàn hảo để lập trình giao diện đồ họa cho trò chơi.
2.2 Phân tích trò chơi
2.2.1 Ý tưởng
Xuất phát từ một bài tập trong muôn lập trình nâng cao, khi giảng viên yêucầu viết một chương trình đơn giản có những quả bóng bay ngang qua màn hình vàclick chuột vào sẽ ăn điểm, khi đó những ý tưởng ban đầu về trò chơi đã được rađời Trò chơi sẽ xoay quay việc người chơi click vào những quả bóng nhiều màu sắc
di chuyển theo nhiều hướng để ăn điểm Bên cạnh những quả bóng sẽ là những vậtthể nhằm cản trở người chơi dành chiến thắng Những quả bom khi click vào sẽ bịmất “mạng” hay những vật thể làm thay đổi quỹ đạo, tốc độ, vị trí, kích thước …của những quả bóng Để thêm sự kịch tính cho trò chơi sẽ có một đồng hồ đếmngược thời gian Điểm số của người chơi sẽ được lưu lại để so sánh với nhữngngười chơi khác nhằm tăng tính cạnh tranh, một điều không thể thiếu với mỗi tròchơi
2.2.2 Xác định rõ yêu cầu
Yêu cầu về chức năng:
Khi click vào quả bóng sẽ có hiệu ứng và ghi được điểm
Các quả bóng, vật cản di chuyển theo nhiều hướng xung quanh màn hình
Bóng sẽ thay đổi quỹ đạo, tốc độ, kích thước … khi va chạm với vật cản
Có đồng hồ đếm ngược thời gian và kết thúc trò chơi khi đồng hồ về 0
Người chơi có thể lựa chọn đăng nhập tài khoản hoặc chơi không đăng nhập.Khi người chơi chơi ở chế độ không đăng nhập thì điểm số chỉ được lưu tạimáy cá nhân Khi người chơi chơi ở chế độ đăng nhập mà có kết nối internetthì điểm số của người chơi sẽ được lưu tại máy chủ, nếu không có kết nốiinternet điểm số sẽ lưu lại tại máy người chơi và dữ liệu sẽ được đồng bộgiữa máy chủ và máy cá nhân khi có kết nối internet
Có phần hướng dẫn chơi cho người mới
Người chơi có thể lựa chọn màn chơi mình muốn
Người chơi phải vượt qua từng màn chơi để có thể mở khóa màn tiếp theo
Người chơi có thể tạm dừng trò chơi và tiếp tục khi muốn
Người chơi cũng có thể chọn màn chơi khác khi đang chơi một màn nào đó
Có hiệu ứng âm thanh, có thể bật tắt âm thanh theo ý muốn
Trang 20Yêu cầu phi chức năng:
Hình ảnh đẹp mắt,các màn chơi đa dạng, đặc sắc không nhàm chán
Âm thanh vui nhộn
Trò chơi chạy mượt mà, không giật, chậm
2.2.3 Mô hình hóa chức năng
Đăng ký tài khoản
Chơi không đăng nhập
Chọn màn chơi để chơi
Tùy chỉnh bật tắt âm thanh
Đừng và tiếp tục trò chơi giữa chừng
Có thể chơi lại màn chơi đó hoặc chọn màn chơi khác để chơi
Sơ đồ ca sử dụng:
Trang 21Hình 2.2 Sơ đồ ca sử dụng
Mô tả ca sử dụng:
Bảng 2.1 Mô tả đăng ký
Tên Ca sử dụng: Đăng ký
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả: Người chơi đăng ký một tài khoản
Dòng sự kiện chính
1 Hệ thống hiển thị thông tin cần thiết để tạo tài khoản
2 Người sử dụng nhập thông tin
3 Hệ thống lưu thông tin người chơi
Ngoại lệ:
3.a Thông tin không hợp lệ
3.a.1 Hệ thống yêu cầu nhập lại
Bảng 2.2 Mô tả đăng nhập
Tên Ca sử dụng: Đăng nhập
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả: Người chơi đăng nhập tài khoản
Trang 22Dòng sự kiện chính
1 Hệ thống hiển thông tin cần nhập
2 Người sử dụng nhập thông tin
3 Hệ thống xác nhận thông tin đăng nhập hợp lệ
Ngoại lệ:
3.a Thông tin không chính xác
3.a.1 Hệ thống yêu cầu người chơi nhập lại thông tin
Bảng 2.3 Mô tả chọn màn chơi
Tên Ca sử dụng: Chọn màn chơi
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả:Người chơi chọn màn chơi
Dòng sự kiện chính
4 Hệ thống hiển thị danh sách màn chơi
5 Người sử dụng chọn màn chơi mình muốn
6 Hệ thống nạp màn chơi người chơi đã chọn
Ngoại lệ:
Bảng 2.4 Mô tả hiển thị điểm số cao
Tên Ca sử dụng: Hiển thị điểm số cao
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả:Người chơi xem hướng điểm số của mình
Dòng sự kiện chính
1 Hệ thống hiển thị điểm số cao của người chơi
Ngoại lệ:
Bảng 2.5 Mô tả bật âm thanh
Tên Ca sử dụng: Bật âm thanh
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả: Người chơi bật âm thanh
Trang 23Bảng 2.6 Mô tả tắt âm thanh
Tên Ca sử dụng: Tắt âm thanh
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả: Người chơi tắt âm thanh
Bảng 2.7 Mô tả hướng dẫn chơi
Tên Ca sử dụng: Hướng dẫn chơi
Người sử dụng chính: Người chơi Loại Ca sử dụng: Tổng quan
Mô tả:Người chơi xem hướng dẫn chơi
Người sử dụng chính: Người chơi Loại Ca sử dụng: Chi tiết
Mô tả: Người chơi trò chơi
Dòng sự kiện chính
1 Người sử dụng chơi trò chơi
Ngoại lệ:
1.a Người sử dụng có thể dừng trò chơi
1.b Người sử dụng có thể chơi lại màn chơi
1.c Người sử dụng có thể chọn màn khác để chơi
Bảng 2.9 Mô tả tạm dừng trò chơi
Tên Ca sử dụng: Tạm dừng trò chơi
Người sử dụng chính: Người chơi Loại Ca sử dụng: Chi tiết
Mô tả: Người chơi tạm dừng trò chơi
Trang 24Bảng 2.10 Mô tả tiếp tục trò chơi
Tên Ca sử dụng: Tiếp tục trò chơi
Người sử dụng chính: Người chơi Loại Ca sử dụng: Chi tiết
Mô tả:Người chơi tiếp tục trò chơi
Bảng 2.11 Mô tả chơi lại
Tên Ca sử dụng: Chơi lại
Người sử dụng chính: Người chơi Loại Ca sử dụng: Chi tiết
Mô tả:Người chơi chơi lại
Dòng sự kiện chính
1 Người sử dụng chơi lại
2 Hệ thống khởi động lại màn chơi
3 Hệ thống phát lại nhạc từ đầu
Ngoại lệ:
Trang 253.a Âm thanh vẫn đang tắt
3.a.1 Hệ thống không làm gì cả
2.2.3.2 Sơ đồ hoạt động của hệ thống (Activity Diagram)
Hình 2.3 Sơ đồ hoạt động của hệ thống
Trang 262.2.4 Mô hình cầu trúc
2.2.4.1 Thẻ CRC
Xác định các lớp đối tượng trong hệ thống
Bảng 2.12 Thẻ GameObject
Mô tả : đây là lớp chung cho các đối tượng
Mô tả : đây là những quả bóng mà
người chơi phải click vào để ghi điểm
Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Bảng 2.14 Thẻ Bomb
Mô tả : đây là những quả bom nếu
người chơi click vào sẽ mất “mạng”
Số ca sử dụng có liên quan : 1
Trang 27 Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Bảng 2.15 Thẻ wall
Mô tả : đây là vật cản làm thay đổi
hướng của ball và bomb
Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Bảng 2.16 Thẻ gate
Mô tả : giống như một đường hầm khi ball
và bomb đi vào đầu này sẽ ra đầu khác
Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Trang 28Bảng 2.17 Thẻ storm
Mô tả : là một cơn bão cuốn bay tất cả
Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Bảng 2.18 Thẻ resizeObj
Mô tả : thay đổi kích thước của ball, bomb Số ca sử dụng có liên quan : 1
Thuộc tính:
Icon
Kind
Quan hệ:
Quan hệ kế thừa: GameObjects
Quan hệ thu nạp: PlayScreen
Bảng 2.19 Thẻ sound
Mô tả : phát âm thanh mp3 Số ca sử dụng có liên quan : 1
Thuộc tính:
path
Trang 29Quan hệ:
Quan hệ kế thừa:
Quan hệ thu nạp: Bomb, Ball
Bảng 2.20 Thẻ GameBall
Mô tả : phát âm thanh mp3 Số ca sử dụng có liên quan : 10
Mô tả : phát nhạc nền cho trò chơi Số ca sử dụng có liên quan : 10
Mô tả : là người chơi trò chơi Số ca sử dụng có liên quan : 10
Trang 30Bảng 2.23 Thẻ GameConnection
Mô tả : kết nối trò chơi với cơ sở dữ liệu Số ca sử dụng có liên quan : 4
Trang 312.2.4.3 Sơ đồ đối tượng
Hình 2.5: Sơ đồ đối tượng
Trang 322.2.5 Mô hình hóa hoạt động
Hình 2.6 Sơ đồ tuần tự của hoạt động đăng ký
Hình 2.7 Sơ đồ tuần tự của hoạt động đăng nhập
Trang 33Hình 2.8 Sơ đồ tuần tự của hoạt động chơi không đăng nhập
Hình 2.9 Sơ đồ tuần tự của hoạt động hướng dẫn chơi
Trang 34Hình 2.10 Sơ đồ tuần tự của hoạt động bật/tắt âm thanh
Hình 2.11 Sơ đồ tuần tự của hoạt động xem điểm số
Trang 35Hình 2.12 Sơ đồ tuần tự của hoạt động chọn màn chơi
Hình 2.13 Sơ đồ tuần tự của hoạt động chơi
Trang 36 setLocation(int x, int y): di chuyển vị trí của vật thể trên màn hình.
changeIcon(String path): thay đổi hình ảnh của vật thể
detectCollision(GameObject obj): phát hiện sự va chạm giữa 2 vật thể
Trang 38 installObject( ): nạp vật thể lên màn hình theo màn chơi đã chọn.
motion( ): tạo chuyển động cho tất cả vật thể
timeStart( ): tạo đồng hồ đếm ngược
reset( ): khởi tạo lại mọi giá trị về ban đầu
start( ): bắt đầu hoạt động của vật thể, đồng hồ
register(String username, String password, String email): tạo mới tài khoản
login(String username, String password): đăng nhập
update(int score): cập nhật điểm số