Tải bản đầy đủ (.pdf) (91 trang)

tìm hiểu corona sdk và lua, ứng dụng phát triển game trên thiết bị di động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.99 MB, 91 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NGÀNH KỸ THUẬT PHẦN MỀM

Đề tài

TÌM HIỂU CORONA SDK VÀ LUA,
ỨNG DỤNG PHÁT TRIỂN GAME
TRÊN THIẾT BỊ DI ĐỘNG

Sinh viên: Hồ Hữu Nhân
Mã số: 1111321
Khóa: K37

Cần Thơ, 05/2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NGÀNH KỸ THUẬT PHẦN MỀM


Đề tài

TÌM HIỂU CORONA SDK VÀ LUA,
ỨNG DỤNG PHÁT TRIỂN GAME
TRÊN THIẾT BỊ DI ĐỘNG

Người hướng dẫn

Sinh viên thực hiện

ThS. Phan Phương Lan

Hồ Hữu Nhân
Mã số: 1111321
Khóa: K37

Cần Thơ, 05/2015


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

LỜI CẢM ƠN

Trước hết, tôi xin gởi lời cảm ơn chân thành và sự tri ân sâu sắc đến các thầy
cô của trường Đại học Cần Thơ. Đặc biệt là các thầy cô khoa Công Nghệ Thông
Tin và Truyền Thông đã tạo điệu kiện cho tôi học tập và hoàn thành khóa học, cũng
như luận văn tốt nghiệp này.
Đồng thời tôi cũng xin chân thành cảm ơn cô Phan Phương Lan đã nhiệt

tình hướng dẫn tôi hoàn thành luận văn tốt nghiệp trong suốt thời gian qua.
Bên cạnh đó, tôi cảm ơn tất cả người thân, bạn bè đã tạo điều kiện và động
viên tôi hoàn thành tốt luận văn này. Đặc biệt, tôi muốn gửi lời cảm chân chân
thành đến anh Nguyễn Thanh Hoài, cảm ơn anh đã nhiệt tình giúp đỡ, giải đáp thắc
mắc cho tôi trong suốt quá trình làm luận văn.
Trong quá trình học tập, cũng như là trong quá trình làm luận văn, mặc dù
đã cố gắng hết sức nhưng vẫn khó tránh khỏi sai sót, vì vậy rất mong nhận được ý
kiến đóng góp quý báu của quý Thầy Cô và các bạn.
Tôi xin chân thành cảm ơn!

Cần thơ, ngày 3 tháng 5 năm 2014
Sinh viên

Hồ Hữu Nhân

Chuyên ngành Kỹ Thuật Phần Mềm

3

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

MỤC LỤC

Lời cảm ơn .............................................................................................................. 3
Mục lục .................................................................................................................... 4

Danh mục bảng ....................................................................................................... 6
Danh mục hình ........................................................................................................ 7
Tóm tắt .................................................................................................................... 9
Abstract ................................................................................................................. 10
Giới thiệu ............................................................................................................... 11


Đặt vấn đề ................................................................................................ 11



Tóm tắt lịch sử giải quyết vấn đề ............................................................ 11



Mục tiêu đề tài ......................................................................................... 12



Đối tượng và phạm vi nghiên cứu ........................................................... 12



Nội dung nghiên cứu ............................................................................... 12



Những đóng góp chính của đề tài ............................................................ 13




Bố cục của quyển luận văn ...................................................................... 13

Chương 1 - Mô tả bài toán .................................................................................... 14
1.1. Mô tả chi tiết bài toán .............................................................................. 14
1.2. Phân tích đánh giá các giải pháp/ có liên quan đến bài toán ................... 15
1.3. Tiếp cận giải quyết vấn đề ....................................................................... 16
Chương 2 - Thiết kế và cài đặt giải pháp .............................................................. 30
2.1. Thiết kế .................................................................................................... 30
2.1.1.

Thiết kế kiến trúc ........................................................................... 30

2.1.2.

Thiết kế dữ liệu .............................................................................. 31

2.1.3.

Thiết kế giao diện .......................................................................... 37

2.1.4.

Thiết kế thuật toán ......................................................................... 51

Chương 3 - Kiểm thử và đánh giá ......................................................................... 58
3.1. Mục tiêu kiểm thử .................................................................................... 58
3.2. Kịch bản kiểm thử ................................................................................... 58
3.3. Kết quả kiểm thử ..................................................................................... 59
Kết luận ................................................................................................................. 61

Kết quả đạt được ............................................................................................... 61
Chuyên ngành Kỹ Thuật Phần Mềm

4

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Hạn chế .............................................................................................................. 61
Hướng phát triển ............................................................................................... 61
Tài liệu tham khảo ................................................................................................. 62
Phụ lục ................................................................................................................... 63
1.

2.

3.

4.

Hướng dẫn cài đặt .................................................................................... 63
1.1.

Cài đặt Java Development Kit .......................................................... 63

1.2.


Cài đặt Corona SDK ......................................................................... 63

1.3.

Cài đặt Corona Cards ........................................................................ 63

Hướng dẫn phát triển ............................................................................... 65
2.1.

Tạo một project từ Corona SDK ....................................................... 65

2.2.

Cách build project (xuất ra file .apk) ................................................ 66

2.3.

Cách tạo một bodyType sử dụng công cụ Physics Editor. ............... 67

Sơ lược về ngôn ngữ Lua......................................................................... 73
3.1.

Giới thiệu .......................................................................................... 73

3.2.

Cú pháp ............................................................................................. 74

Sơ lược về Corona SDK .......................................................................... 78

4.1.

Các đối tượng hiển thị....................................................................... 78

4.2.

Sự kiện trên các đối tượng hiển thị (multitouch, tap, touch) ............ 80

4.3.

Sự kiện vật lý cho các đối tượng (physics) ....................................... 82

4.4.

Chuyển trang ..................................................................................... 83

4.5.

Đối tượng lớp widget ........................................................................ 85

4.6.

Đối tượng lớp native ......................................................................... 86

4.7.

Thao tác với File ............................................................................... 86

4.8.


Thao tác với database........................................................................ 89

4.9.

Transition, Timer .............................................................................. 90

Chuyên ngành Kỹ Thuật Phần Mềm

5

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

DANH MỤC BẢNG
Bảng 1. 1: Bảng diễn giải các đối tượng trong game ............................................ 17
Bảng 1.2: Danh sách các sơ đồ tuần tự ................................................................. 18
Bảng 2.1: Danh sách các đối tượng trong game ................................................... 31
Bảng 2.2: Bảng diễn giải các dữ liệu dùng trong game ........................................ 36
Bảng 2.3: Bảng sanh sách tên các thuật toán ........................................................ 51
Bảng 3.1: Kết quả kiểm thử theo từng chức năng................................................. 59
Bảng 3.2: Kết quả các lần chơi xác định số điểm – sao. ....................................... 59

Chuyên ngành Kỹ Thuật Phần Mềm

6


Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

DANH MỤC HÌNH
Hình 1.1: Sơ đồ lớp ............................................................................................... 16
Hình 1.2: Sơ đồ tuần tự màn chơi thứ 1. ............................................................... 19
Hình 1.3: Sơ đồ tuần tự màn chơi thứ 2. ............................................................... 20
Hình 1.4: Sơ đồ tuần tự màn chơi thứ 3. ............................................................... 20
Hình 1.5: Sơ đồ tuần tự màn chơi thứ 4. ............................................................... 21
Hình 1.6: Sơ đồ tuần tự màn chơi thứ 5. ............................................................... 21
Hình 1.7: Sơ đồ tuần tự màn chơi thứ 6. ............................................................... 22
Hình 1.8: Sơ đồ tuần tự màn chơi thứ 7. ............................................................... 23
Hình 1.9: Sơ đồ tuần tự màn chơi thứ 8. ............................................................... 24
Hình 1.10: Sơ đồ tuần tự màn chơi thứ 9. ............................................................. 24
Hình 1.11: Sơ đồ tuần tự màn chơi thứ 10. ........................................................... 25
Hình 1.12: Sơ đồ tuần tự màn chơi thứ 11. ........................................................... 25
Hình 1.13: Sơ đồ tuần tự màn chơi thứ 12. ........................................................... 26
Hình 1.14: Sơ đồ tuần tự màn chơi thứ 13. ........................................................... 27
Hình 1.15: Sơ đồ tuần tự màn chơi thứ 14. ........................................................... 28
Hình 1.16: Sơ đồ tuần tự màn chơi thứ 15. ........................................................... 29
Hình 2.1: Hệ thống phân cấp project cơ bản ......................................................... 30
Hình 2.2: Sơ đồ phân cấp các chức năng của phần mềm ...................................... 31
Hình 2.3: Sơ đồ phân cấp dữ liệu dùng trong game .............................................. 36
Hình 2.4: Loạt hình ảnh hình thành nên chú nhện ................................................ 37
Hình 2.5: Sử dụng chức năng Place Insert Frame trong Corel. ............................ 37
Hình 2.6: Chú nhện có màu quả bóng trắng. ........................................................ 38

Hình 2.7: Mảng các ảnh động các chú nhện. ........................................................ 38
Hình 2.8: Loạt hình ảnh hình thành nên lò xo. ..................................................... 38
Hình 2.9: Lò xo có thêm các thanh đỡ. ................................................................. 38
Hình 2.10: Mảng các ảnh động của lò xo. ............................................................ 39
Hình 2.11: Loạt hình ảnh hình thành nên vật nặng. .............................................. 39
Hình 2.12: Mảng các ảnh động vật nặng. ............................................................. 40
Hình 2.13: Giao diện loading ................................................................................ 41
Hình 2.14: Giao diện menu ................................................................................... 41
Hình 2.15: Giao diện menu (có các nút bật/tắt âm thanh) .................................... 42
Hình 2.16: Giao diện hướng dẫn 1 ........................................................................ 42
Hình 2.17: Giao diện hướng dẫn 2 ........................................................................ 43
Hình 2.18: Giao diện chọn màn chơi .................................................................... 43
Hình 2.19: Giao diện màn 1 .................................................................................. 44
Hình 2.20: Giao diện màn 2 .................................................................................. 44
Hình 2.21: Giao diện màn 3 .................................................................................. 45
Hình 2.22: Giao diện màn 4 .................................................................................. 45
Hình 2.23: Giao diện màn 5 .................................................................................. 46
Hình 2.24: Giao diện màn 6 .................................................................................. 46
Chuyên ngành Kỹ Thuật Phần Mềm

7

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Hình 2.25: Giao diện màn 7 .................................................................................. 47

Hình 2.26: Giao diện màn 8 .................................................................................. 47
Hình 2.27: Giao diện màn 9 .................................................................................. 48
Hình 2.28: Giao diện màn 10 ................................................................................ 48
Hình 2.29: Giao diện màn 11 ................................................................................ 49
Hình 2.30: Giao diện màn 12 ................................................................................ 49
Hình 2.31: Giao diện màn 13 ................................................................................ 50
Hình 2.32: Giao diện màn 14 ................................................................................ 50
Hình 2.33: Giao diện màn 15 ................................................................................ 51
Hình 2.34: Thuật toán kiểm tra chiến thắng cho 1 màn chơi. ............................... 52
Hình 2.35: Thuật toán nhện chụp lấy bóng cùng màu, ném đối tượng khác ........ 53
Hình 2.36: Thuật toán tạo nét cắt .......................................................................... 54
Hình 2.37: Thuật toán tạo sợi dây treo vật thể ...................................................... 55
Hình 2.38: Thuật toán tạo các đối tượng – cách xách định từng va chạm. ........... 56
Hình 2.39: Thuật toán tính lực va chạm. ............................................................... 57

Chuyên ngành Kỹ Thuật Phần Mềm

8

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

TÓM TẮT

Sự bùng nổ của các thiết bị thông minh trong vài năm qua đã dẫn đến sự ra
đời của một thị trường tiềm năng - thị trường ứng dụng di động. Thị trường này có

tốc độ phát triển nhanh chóng và mạnh mẽ, đặc biệt trong lĩnh vực lập trình game
trên di động, đó là vùng đất hứa cho các lập trình viên đam mê về game trên di
động. Luận văn tốt nghiệp là công trình nghiên cứu về game engine – bộ công cụ
cung cấp môi trường phát triển tích hợp được đơn giản hóa, đặc biệt là công cụ
Corona SDK, một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi
chức năng cốt lõi cần thiết ngay trong nó. Sản phẩm của luận văn là một game
(Spider Ball) chạy được trên các thiết bị di động, máy tính bảng chạy hệ điều hành
Android. Game được phát triển trên ngôn ngữ Lua và công cụ phát triển trò chơi
Corona SDK, theo cách lập trình hướng dữ liệu game tạo ra 15 màn chơi được sắp
xếp từ mức độ dễ đến khó, giao diện thân thiện, đối tượng đồ họa sinh động, âm
thanh trực quan lôi cuốn người chơi. Tuy game chỉ chạy được trên nền tảng
Android, nhưng trong tương lai game sẽ tiếp tục phát triển và có mặt trên cả 3 nền
tảng thông dụng hiện nay (Android, iOS và Window phone).

Chuyên ngành Kỹ Thuật Phần Mềm

9

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

ABSTRACT

The explosion of smart devices in the past few years led to the birth of a
potential market - the mobile application market. Market is able to grow strong and
fast, especially in the moblie game programming, the promised land which gives

software developer enthuse for games on mobile. Thesis researchs for the game
engine - tools are generally provided in an integrated development environment to
enable simplified, especially Corona SDK tools, they provide a flexible and
reusable software platform which provides all the core functionality needed.
Product of the thesis (Spider Ball) runing on mobile devices, tablets running the
Android operating system. The game has developed on Lua language and Corona
SDK, follow programming in a data-driven manner, game have 15 levels from easy
to difficult, user-friendly interface, vivid graphic objects, visual audio appeal
players. However, the game only runs on the Android platform, but the game will
continue to develop in the future and be present on all 3 platforms currently used
(Android, iOS and Windows Phone).

Chuyên ngành Kỹ Thuật Phần Mềm

10

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

GIỚI THIỆU

 ĐẶT VẤN ĐỀ
Xuất phát từ ý tưởng của game Cut the Rope (Cắt dây thừng) là một trò chơi
điện tử thể loại giải đố dựa trên vật lý nhiều phần của nhà phát triển Nga ZeptoLab
thiết kế cho nhiều dạng máy và thiết bị chơi. Mục tiêu của trò chơi là đưa viên kẹo
vào miệng của Om Nom, một quái vật nhỏ xíu màu xanh lá, trong khi phải thu thập

càng nhiều sao càng tốt. Dựa trên ý tưởng của game Cut the Rope, một ý tưởng về
trò chơi mới được hình thành. Trong trò chơi mới này, 1 cặp viên kẹo – Om Nom
của game Cut the Rope sẽ trở thành 2 cặp bóng – nhện, viên kẹo sẽ trở thành các
quả bóng, Om Nom sẽ trở thành các chú nhện sinh động, các quả bóng có nhiều
màu sắc hơn, ngoài ra còn có các đối tượng khác (lò xo, vật nặng, vật cản, …) để
làm cho trò chơi hấp dẫn hơn.
Để phát triển game đa nền tảng, Corona SDK thường được sử dụng vì giúp phát
triển ứng dụng nhanh hơn gấp nhiều lần. Ngoài ra, nó còn cung cấp hệ thống thư
viện hỗ trợ phong phú và được thiết kế rất tốt do đó nhà phát triển phần mềm có
thể dễ dàng xây dựng các thao tác (hành động) trong game chỉ với một vài dòng
code. Với công cụ Corona SDK, chúng ta chỉ cần phát triển game một lần, sau đó
có thể dễ dàng biên dịch ứng dụng sang các nền tảng khác như Andriod, iOS,
Kindle Fire, Nook và Windows Phone một cách dễ dàng. Không những vậy Corona
SDK còn cho hỗ trợ chuyển đổi với những thiết bị có kích cỡ và độ phân giải khác
nhau một cách dễ dàng.
Từ những nội dung trên, tác giả đề xuất đề tài “TÌM HIỂU CORONA SDK VÀ
LUA, ỨNG DỤNG PHÁT TRIỂN GAME TRÊN THIẾT BỊ DI ĐỘNG”. Game
cụ thể được phát triển dựa trên ý tưởng được trình bày ở trên (nhện bắt bóng) có
tên là “Spider Ball”.
 TÓM TẮT LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Việc phát triển game chạy đa nền tảng là một vấn đề không mới, vì hiện tại có
rất nhiều game sử dụng nhiều công cụ khác nhau (Unity, Marmalade, V-Play,
Cocos2D JS…) được đưa lên hằng ngày trên các chợ Google Play hay App store.
Trong đó có game Cut the Rope, một dạng game giải đố với ý tưởng đưa một viên
kẹo vào miệng của một con quái vật. Game này không cung cấp mã nguồn, cũng
không cho biết các công nghệ để làm ra sản phẩm này. Vì vậy, tác giả không biết
được thuật toán của game Cut the Rope và không tái sử dụng được bất cứ một thành
phần nào của game này. Mặc dù game “Spider Ball” dựa trên ý tưởng của game
Chuyên ngành Kỹ Thuật Phần Mềm


11

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

trên nhưng áp dụng trên đối tượng khác nhau, số lượng đối tượng khác nhau, thuật
toán do tác giả tự đề xuất. Do đó, bài toán tự đề xuất này là hoàn toàn mới đối với
tác giả và chưa từng được giải quyết trước đó.
 MỤC TIÊU ĐỀ TÀI
Ứng dụng bộ công cụ phát triển ứng dụng Corona SDK và các thư viện sẵn có
(OpenGL, OpenAL, Box2D, JSON …) để xây dụng game “Spider Ball” với các
vấn đề trọng tâm như
– Bố trí các màn chơi một cách logic và theo mức độ từ dễ đến khó hơn.
– Quản lý (bật/tắt) được âm thanh (hiệu ứng/nhạc nền) thông qua các nút
trên giao diện menu.
– Tạo được nét cắt để có thể đưa chính xác các quả bóng đến từng chú
nhện.
– Làm cho các chú nhện có thể chụp lấy bóng cùng màu, ném các bóng
khác màu (vật thể khác).
– Tạo ra các đối tượng lò xo để bắn các vật thể khác (vật nặng, bóng), và
bắn được nhiều lần.
– Lưu các dữ liệu trong game sử dụng JSON.
 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng được nghiên cứu là các đối tượng đồ họa và các thuật toán được sử
dụng trong game. Mặc dù công cụ được sử dụng để phát triển game hỗ trợ đa nền
tảng (Android, iOS, Window phone), nhưng trong phạm vi luận văn này nghiên

cứu chỉ tập trung vào nền tảng Android.
 NỘI DUNG NGHIÊN CỨU
Tác giả sẽ tập trung nghiên cứu các nội dung chính như sau:
– Cách thức xây dựng trò chơi đa nền tảng sử dụng công cụ Corona SDK
và ngôn ngữ LUA.
– Bộ thư viện thư viện vật lý trong Corona SDK (Physics), bộ thư viện vật
lý hỗ trợ trong quá trình phát triển game, cách tạo ra môi trường vật lý, cho đến
cách xử lý các va chạm giữa các đối tượng đồ họa với nhau, tùy biến sản phẩm
cuối cùng để có thể biên dịch chạy được trên đa nền tảng. Hiểu được một cách
tổng quan, sơ bộ về phương thức hoạt động của một số trò chơi đơn giản, những
thành phần cơ bản có trong một trò chơi. Tìm hiểu cách thêm, sửa, xóa, tạo mới
các kết cấu, cấu tạo, xếp đặt màu sắc lên các đối tượng hiển thị có trong Corona
SDK.

Chuyên ngành Kỹ Thuật Phần Mềm

12

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

– Ngôn ngữ LUA, ngôn ngữ lập trình thông dịch với đặc điểm nhỏ gọn, đa
nền tảng. Tìm hiểu cách lập trình, soạn thảo mã kịch bản cho chương trình, cách
đặt ra quy luật trong trò chơi.
– Tham khảo các flash game trên mạng, tìm kiếm ý tưởng để tạo ra các
màn chơi.

– Xây dụng game “Spider Ball” thông qua các bước phân tích, thiết kế, cài
đặt và kiểm thử phần mềm.
 NHỮNG ĐÓNG GÓP CHÍNH CỦA ĐỀ TÀI
Đề tài đã đóng góp thêm vào tài liệu nghiên cứu cho sinh viên khoa Công nghệ
thông tin & Truyền thông, trong lĩnh vực lập trình game trên di động. Ngoài ra, đề
tài cũng là tài liệu tham khảo cho các sinh viên các khóa sau, khi nghiên cứu về
Corona SDK và ngôn ngữ LUA, ứng dụng phát triển trò chơi đa nền tảng.
Game “Spider Ball” bổ sung thêm vào kho trò chơi phong phú trên google play
thuộc thể loại giải đố. Game giúp người chơi rèn luyện tư duy logic, giải trí sau giờ
làm việc mệt mỏi.
 BỐ CỤC CỦA QUYỂN LUẬN VĂN
Quyển luận văn gồm 5 nội dung chính.
Phần đầu gồm có: lời cảm ơn, mục lục, danh mục đồ thị, biểu bảng và hình ảnh,
tóm tắt và abstract.
Phần giới thiệu gồm: mô tả sơ lược về bài toán (đặt bóng vào hộp cùng màu),
đưa ra vấn đề dựa trên bài toán đó, lợi ích và vì sao chọn Corona SDK; tóm tắt lịch
sử giải quyết vấn đề; nêu mục tiêu đề tài với những vấn đề trọng tâm cần giải quyết;
nêu đối tượng và pham vi của đề tài; liệt kê toàn bộ nội dung mà đề tài nghiên cứu
và nêu những đóng góp chính của đề tài.
Phần nội dung gồm: 3 chương. Chương 1 - mô tả chi tiết bài toán, đặt ra các yêu
cầu chức năng, yêu cầu phi chức năng, cách giải quyết; phân tích đánh giá các giải
pháp có liên quan đến bài toán, đưa ra các hướng giải quyết và chọn lựa hướng giải
quyết; tiếp cận giải quyết vấn đề đặt ra. Chương 2 - trình bày các thiết kế kiến trúc;
thiết kế dữ liệu; thiết kế đối tượng - giao diện; thiết kế thuật toán; trình bày cách
cài đặt giải pháp dựa vào các thiết kế. Chương 3 - Mô tả mục tiêu kiểm thử, kịch
bản kiểm thử và kết quả kiểm thử.
Phần kết luận trình bày về các kết quả đạt được, hạn chế và hướng phát triển của
đề tài.
Phần cuối là các tài liệu tham khảo và phụ lục bao gồm: hướng dẫn cài đặt,
hướng dẫn sử dụng.


Chuyên ngành Kỹ Thuật Phần Mềm

13

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

CHƯƠNG 1 - MÔ TẢ BÀI TOÁN

1.1.

MÔ TẢ CHI TIẾT BÀI TOÁN
Vấn đề bài toán đặt ra là làm như thế nào để có thể đưa những quả bóng vào
những chú nhện cùng màu. Bài toán có 15 màn chơi trong từng màn chơi tùy mức
độ phức tạp mà người lập trình đặt ra số lượng nhện và bóng trong màn chơi là
nhiều hay ít nhưng vẫn giữ đúng cặp (nhện – bóng) nhất định. Cụ thể, nếu có 2
nhện thì số bóng tương ứng phải là 2. Ở đây ta có 1 nhện màu trắng, 1 nhện màu
đỏ, 1 bóng trắng, 1 bóng đỏ. Đặc biệt, nếu ở màn chơi có nhiều hơn một quả bóng
cùng màu xuất hiện, thì chú nhện có màu tương ứng đó phải chụp được nhiều lần.
Các chú nhện được đặt cố định ở một vị trí trong màn chơi, còn các quả bóng thì
linh động hơn, có thể được treo, nằm trên vật thể khác. Ngoài ra, còn có các khúc
gỗ làm vật cản, lò xo (bắn các vật thể khác), các dây treo treo đối tượng khác (vật
nặng, khúc gỗ, …), vật nặng gây cản trở bóng đến các chú nhện.
Các yêu cầu đặt ra với bài toán này được chia thành 2 nhóm: yêu cầu chức
năng, yêu cầu phi chức năng.

Các yêu cầu chức năng:

Chọn màn chơi – cho phép người dùng lựa chọn màn để chơi. Khi vào
màn chơi thì từng màn có các chức năng: tạo nét cắt, tạo dây treo đối tượng khác,
các chú nhện chụp lấy những quả bóng cùng màu, ném các vật khác (bóng khác
màu,… ), lò xo giúp bắn các vật thể khác đi.

Hướng dẫn – giúp người dùng hiểu được luật chơi.

Bật/tắt âm thanh (hiệu ứng/nhạc nền).

Chuyển đổi ngôn ngữ (tiếng Anh/tiếng Việt).

Xem thông tin về sản phẩm.
Các yêu cầu phi chức năng


Giao diện
+
Đẹp, bắt mắt.
+
Các tông màu phù hợp với các đối tượng.

Thời gian thực hiện
+
Thời gian trễ không quá 5s
+
Game vận hành mượt mà không có lỗi phát sinh.

Thiết bị hỗ trợ

+
Hệ điều hành Android 2.3.3 hoặc cao hơn (ARMv7). Ứng dụng được
xây dựng trong phiên bản này sẽ không cài đặt được trên các thiết bị ARMv6.
Chuyên ngành Kỹ Thuật Phần Mềm

14

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

+
Bộ nhớ điện thoại trống 30M.
+
Độ phân giải màn hình đề nghị 800x480 hoặc cao hơn.
+
Ghi chú: hiện tại game chạy tốt trên nền tảng android, công việc
chuyển đổi sang nên tảng Window Phone, iOS là không mất nhiều thời gian.
1.2. PHÂN TÍCH ĐÁNH GIÁ CÁC GIẢI PHÁP/ CÓ LIÊN QUAN ĐẾN
BÀI TOÁN
Vấn đề được tiếp nhận và có nhiều hướng giải quyết, bên dưới là các hướng
giải quyết bài toán.
Về công nghệ, CorelDRAW là một phần mềm biên tập đồ họa vector vì nó có
các tính năng: tạo, xuất ảnh dưới dạng vector, dễ dàng chuyển đổi một bức ảnh
sang dạng vector. Vì vậy tác giả sử dụng phần mềm CorelDRAW để cài đặt các
thiết kế đối tượng và giao diện trong game “Spider Ball”.
Hướng giải quyết thứ 1 sử dụng công nghệ Corona SDK và ngôn ngữ LUA.

Hướng giải quyết thứ 2 sử dụng công nghệ Cocos2D JS sử dụng hoàn toàn
bằng JavaScript.
Công nghệ Cocos2D JS có ưu điểm về hỗ trợ đa nền tảng, đa ngôn ngữ, tuy
nhiên công nghệ này không cung cấp một cấu trúc tốt cho ứng dụng, API không
chính thống do đa ngôn ngữ và hoàn toàn không theo một chuẩn nào. Công nghệ
Corona SDK và LUA có ưu điểm hơn công nghệ Cocos2D JS, máy ảo trong Corona
SDK chạy khá nhanh, dễ dàng điều chỉnh các độ phân giải khác nhau của màn hình.
Đặc biệt CoronaSDK cho phép tạo âm thanh/yếu tố trực quan chỉ với một hoặc hai
dòng code. Lua được phát triển từ C và hệ thống các API theo hướng đơn giản hóa.
Cài đặt ngôn ngữ LUA, vì có các tính năng: nhỏ gọn, nhanh, kết hợp tốt, đa nền
tảng. Toàn bộ phần mềm thông dịch Lua cùng mã nguồn, tài liệu hướng dẩn và các
ví dụ chỉ gói gọn trong dung lượng 860 KB (phiên bản 5.1.4, không nén). Tốc độ
của Lua thuộc vào loại nhanh nhất trong số các ngôn ngữ thông dịch. Kết hợp tốt
với các ngôn ngữ khác, chẳng hạn C. Chạy trên Windows, Unix, Linux, Mac OS X
cùng nhiều hệ điều hành khác. Sử dụng ngôn ngữ Lua để cài đặt các thiết kiến trúc,
thiết kế dữ liệu và thiết kế thuật toán trong game. Nên tác giả chọn hướng giải quyết
thứ 1.
Về cách chơi, bài toán được giải quyết với nhiều luật chơi và bên dưới là các
luật chơi được đề xuất.
Hướng giải quyết thứ 1 sử dụng luật chơi như sau: người chơi dùng ngón
tay để tạo nét cắt, cắt các sợi dây treo các quả bóng hoặc các vật nặng sao cho hợp
lý nhất để các quả bóng rơi đúng vào các chú nhện cùng màu
Hướng giải quyết thứ 2 sử dụng luật chơi như sau: người chơi nắm, giữ và
bắn đi vật thể (chú nhện), thay vì dùng ngón tay cắt như luật chơi trên.
Chuyên ngành Kỹ Thuật Phần Mềm

15

Khoa CNTT & TT



Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Do thời gian làm luận văn bị giới hạn cùng với việc phải tìm hiểu về các công
nghệ mới (Corona SDK, LUA), nên để phù hợp với năng lực và thời gian của tác
giả trong việc làm đề tài vì thế tác giả chọn hướng giải quyết thứ 1. Tác giả cần
phải nghiên cứu thêm bộ thư viện multitouch có độ phức tạp lớn hơn nếu chọn
hướng giải quyết thứ 2.
TIẾP CẬN GIẢI QUYẾT VẤN ĐỀ
Thông thường một hệ thống cần có biểu đồ lớp để mô tả toàn bộ bức tranh hệ
thống. Các biểu đồ lớp giúp người phát triển phần mềm quan sát và lập kế hoạch
xây dựng hệ thống trước khi viết mã trình. Nó được đảm bảo rằng hệ thống được
thiết kế tốt ngay từ ban đầu. Sau đây là sơ đồ lớp của hệ thống game “Spider Ball”.
1.3.

 Sơ đồ lớp
Spider

Ball
Shoot_Ball

x
y
Name

Ball_Spider

x

y
Name
Dx_White
Dy_White
Dx_Red
Dy_Red
Dx_Blue
Dy_Blue
create()
update()
getObject()
destroy()
destroyAll()
hide()
show()
onCollWhite()
onCollRed()
onCollBlue()

Springs
x
y
Name
rotation
collision
isVisible
create()
destroy()
hide()
show()

onCollSprings()

Background
x
y

BG_Line

Line
x
y
strokeWidth
isSensor
onCollLine()
drawLine()
destroy()

Wood
x
y
rotation

Shoot_Steel

Line_Collision_Rope

Rope
Steel
x
y

Name
pixel
linearDamping
collision
alpha

Link_Rope_Wood
Link_Rope_Ball

create()
getObject()
update()
destroy()
hide()
show()
onCollSteel()

Link_Rope_Steel

x
y
Name
Num
isSleepingAllowed
rotation
create()
destroy()
hide()
show()


Top_Rope
x
y

TopRope_Rope

Hình 1.1: Sơ đồ lớp

Chuyên ngành Kỹ Thuật Phần Mềm

16

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Bảng 1. 1: Bảng diễn giải các đối tượng trong game
Tên bảng
Background

Diễn Giải
Lớp nền

Ball

Lớp bóng


Line

Lớp đường thẳng

Rope

Lớp mối nối

Spider

Lớp nhện

Springs

Lớp lò xo

Steel

Lớp vật nặng

Top_Rope

Lớp đỉnh mối nối

Wood

Lớp gỗ

Tên thuộc tính


Diễn Giải

alpha

Làm mờ đối tượng

collision

Sự kiện va chạm

dx_Blue

Tọa độ x ban đầu của nhện xanh

dx_Red

Tọa độ x ban đầu của nhện đỏ

dx_White

Tọa độ x ban đầu của nhện trắng

dy_Blue

Tọa độ y ban đầu của nhện xanh

dy_Red

Tọa độ y ban đầu của nhện đỏ


dy_White

Tọa độ y ban đầu của nhện trắng

isVisible

Ẩn đối tượng

linearDamping

Thêm lực hãm lên các đối tượng

pixel

Xác định pixel của đối tượng

rotation

Quay đối tượng

x

Tọa độ x

y

Tọa độ y

num


Tên nhóm mà mối nối nằm trong đó

isSleepingAllowed

Cho phép đối tượng là ngũ hay không

strokeWidth

Độ rộng của đường thẳng

isSensor

Cho phép va chạm với đối tượng khác hay
là không

Tên phương thức
create()

Chuyên ngành Kỹ Thuật Phần Mềm

Diễn Giải
Hàm tạo ra đối tượng.
17

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT


destroy()

Hàm xóa bỏ từng đối tượng.

destroyAll()

Hàm Xóa bỏ tất cả các đối tượng.

getObject()

Lấy lại đối tượng.

hide()

Ấn tất cả đối tượng.

onCollBlue()

Hàm xử lý các va chạm khi đối tượng khác
rơi vào chú nhện xanh.

onCollRed()

Hàm xử lý các va chạm khi đối tượng khác
rơi vào chú nhện đỏ.

onCollSprings()

Hàm xử lý các va chạm khi đối tượng khác

rơi vào lò xo.

onCollSteel()

Hàm xử lý các va chạm khi vật nặng rơi

onCollWhite()

Hàm xử lý các va chạm khi đối tượng khác
rơi vào chú nhện trắng.

onCollLine()

Hàm xử lý các khi đường thẳng va chạm
với mối nối.

show()

Hiển thị tất cả các chú nhện.

update()

Hàm cập nhật vị trí đối tượng.

Người thiết kế và người phát triển phần mềm có thể xác định các lớp sẽ xây
dựng, quan hệ giữa các lớp, thao tác và trách nhiệm của mỗi lớp thông qua sơ đồ
lớp. Nên biểu đồ tuần tự trở thành nền tảng cho các công việc còn lại của thiết kế.
Biểu đồ trình tự là trật tự theo thời gian của các thông điệp, nó có ích khi ai đó
muốn quan sát luồng logic trong kịch bản.
 Sơ đồ tuần tự

Bảng 1.2: Danh sách các sơ đồ tuần tự
STT
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Tên sơ đồ
Sơ đồ tuần tự màn chơi thứ 1
Sơ đồ tuần tự màn chơi thứ 2
Sơ đồ tuần tự màn chơi thứ 3
Sơ đồ tuần tự màn chơi thứ 4
Sơ đồ tuần tự màn chơi thứ 5
Sơ đồ tuần tự màn chơi thứ 6
Sơ đồ tuần tự màn chơi thứ 7
Sơ đồ tuần tự màn chơi thứ 8
Sơ đồ tuần tự màn chơi thứ 9
Sơ đồ tuần tự màn chơi thứ 10
Sơ đồ tuần tự màn chơi thứ 11
Sơ đồ tuần tự màn chơi thứ 12

Chuyên ngành Kỹ Thuật Phần Mềm


Màn tương ứng
Màn 1
Màn 2
Màn 3
Màn 4
Màn 5
Màn 6
Màn 7
Màn 8
Màn 9
Màn 10
Màn 11
Màn 12
18

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

13. Sơ đồ tuần tự màn chơi thứ 13
14. Sơ đồ tuần tự màn chơi thứ 14
15. Sơ đồ tuần tự màn chơi thứ 15

Màn 13
Màn 14
Màn 15


– Màn 1: màn gồm một vật nặng màu vàng, 2 quả bóng màu đỏ và trắng, 2
chú nhện màu đỏ và trắng. Người chơi cắt sợi dây treo vật nặng, làm rơi để va
chạm bóng đỏ và trắng, làm cho bóng đỏ rơi vào nhện đỏ, bóng trắng rơi vào
nhện trắng.
Man 1

Background

NguoiDung
Tạo nét cắt

Đường thẳng

Vẽ nét cắt

Mối nối

Vật nặng

Bóng trắng

Bóng đỏ

Nhện trắng

Nhện đỏ

Va cham
Hủy liên kết vật nặng

Va chạm
Va chạm
Va cham
Chụp lấy bóng trắng
Va cham
Chụp lấy bóng đỏ

Hình 1.2: Sơ đồ tuần tự màn chơi thứ 1.
– Màn 2: màn gồm 2 quả bóng màu đỏ và trắng, 2 chú nhện màu đỏ và
trắng, và một số các khúc gỗ tạo thành hình cái bập bênh. Quả bóng trắng được
đặt so le (chéo góc) với chú nhện trắng, tương tự với bóng đỏ, còn cái bập bênh
được đặt ở giữa. Người chơi cố gắng đưa bóng trắng về phía nhện trắng và bóng
đỏ về phía nhện đỏ.

Chuyên ngành Kỹ Thuật Phần Mềm

19

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Man 2

Background

Đường

thẳng

NguoiDung
Tạo nét cắt Vẽ nét cắt

Mối nối

Va chạm

Bóng
đỏ

Khúc
gỗ

Bóng
trắng

Nhện
đỏ

Nhện
trắng

Hủy liên kết
Lăn trên
Va chạm

Tạo nét cắt


Chụp lấy bóng đỏ
Vẽ nét cắt

Va chạm
Hủy liên kết
Lăn trên

Va chạm
Chụp lấy bóng trắng

Hình 1.3: Sơ đồ tuần tự màn chơi thứ 2.
– Màn 3: ở màn chơi này xuất hiện thêm một bệ lò xo làm chức năng đẩy
vật thể khác khi người chơi chạm vào chúng. Người chơi cố gắng cắt các sợi dây
sao cho vật nặng rơi vào bệ lò xo, người chơi chạm vào lò xo, bắn vật nặng va
chạm với 2 bóng, 2 bóng rơi về hai phía và rơi xuống bên dưới. Bên dưới là các
chú nhện đang đón chờ các quả bóng rơi.
Man 3

Background

Đường
thẳng

Mối nối

Vật
nặng

Lò xo


Bóng
trắng

Bóng
đỏ

Nhện
trắng

Nhện
đỏ

NguoiDung
Tạo nét cắt

Vẽ nét cắt

Va chạm
Hủy liên kết
Va chạm
Bắn
Va chạm

Va chạm

Va chạm
Chụp lấy bóng trắng
Va chạm
Chụp lấy bóng đỏ


Hình 1.4: Sơ đồ tuần tự màn chơi thứ 3.

– Màn 4: trong màn các quả bóng được treo lơ lững bên phía trên cùng bên
phải, còn các chú nhện được đặt dưới cùng trên trái, ở khoảng giữa thì có một
Chuyên ngành Kỹ Thuật Phần Mềm

20

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

khối gỗ lớn chặn lại nhưng có một lỗ được tạo ra giúp bóng rơi lọt xuống phía
bên dưới, phía dưới cái lỗ này có treo một khúc gỗ dùng để dẫn banh đi đúng
hướng. Người chơi cố gắng đưa quả banh trắng rơi xuống nhện trắng trước, sau
đó cắt sợi dây treo khúc gỗ tạo đường đi cho bóng đỏ đến nhện đỏ sau.
Man 4

Background
NguoiDung
Tạo nét cắt

Đường
thẳng

Vẽ nét cắt


Bóng
trắng

Mối nối

Tạo nét cắt

Nhện
trắng

Nhện
đỏ

Khúc
gỗ

Va cham
Hủy liên kết

Tạo nét cắt

Bóng
đỏ

Va chạm
Chụp lấy bóng trắng

Vẽ nét cắt

Vẽ nét cắt


Va chạm

Va chạm

Hủy liên kết

Va chạm

Lăn trên
Va chạm
Chụp lấy bóng đỏ

Hình 1.5: Sơ đồ tuần tự màn chơi thứ 4.
– Màn 5: người chơi cố gắng cắt vật nặng vào bệ lò xo, bắn vật nặng va
chạm với 2 quả bóng, lần lượt cắt các quả bóng trắng, đỏ lần lượt rơi vào các
chú nhện trắng đỏ.
Man 5

Background

Đường
thẳng

Mối nối

Vật
nặng

Vật

nặng 2

Vật
nặng 3

Bóng
trắng

Bóng
đỏ

Lò xo

Lò xo 2

Nhện
trắng

Nhện
đỏ

NguoiDung
Tạo nét cắt

Tạo nét cắt

Vẽ nét cắt

Va cham
Hủy liên kết


Vẽ nét cắt

Va chạm

Va chạm
Hủy liên kết
Va chạm

Va chạm
Bắn
Va cham
Chụp lấy bóng trắng

Va chạm

Va chạm
Bắn
Va chạm
Va cham
Chụp lấy bóng đỏ

Hình 1.6: Sơ đồ tuần tự màn chơi thứ 5.
Chuyên ngành Kỹ Thuật Phần Mềm

21

Khoa CNTT & TT



Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

– Màn 6: trong màn có 2 bóng trắng, 1 bóng đỏ, 2 chú nhện trắng - đỏ, 3
vật nặng. Các quả bóng lần lượt được đặt ở phía trên các khúc gổ là trắng - đỏ trắng. Ở phí trên các quả bóng là các vật nặng được treo thẳng đứng. Ở giữa màn
là thanh gỗ chuyển động qua lại. Bên dưới là các chú nhện, đỏ được đạt bên tay
trái, trắng nằm ở phía bên tay phải. Người chơi cắt các vật nặng rơi, va chạm với
các quả bóng rơi vào các chú nhện.
Man 6

Background Đường
thẳng

Mối
nối

Vật
nặng

Vật
nặng

Vật
nặng

Vật
nặng

Thanh gỗ

di chuyển

Bóng
trắng

Bóng
trắng

Bóng
đỏ

Nhện
trắng

Nhện
đỏ

NguoiDung

Tạo nét cắt
Vẽ nét cắtVa cham
Hủy liên kết

Va chạm
Lăn trên

Tạo nét cắt
Vẽ nét cắt
Va chạm


Va cham
Chụp lấy bóng trắng

Hủy liên kết

Va chạm
Lăn trên

Tạo nét cắt
Vẽ nét cắt
Va chạm

Va cham
Chụp lấy bóng đỏ

Hủy liên kết

Tạo nét cắt
Vẽ nét cắtVa chạm

Va chạm
Lăn trên

Hủy liên kết

Va chạm

Va chạm
Chụp lấy bóng trắng 2


Hình 1.7: Sơ đồ tuần tự màn chơi thứ 6.
– Màn 7: trong màn gồm có 2 quả bóng trắng - đỏ, 2 chú nhện trắng đỏ, 1
lò xo, 3 vật nặng, và một số khúc gỗ làm vật cản. Người chơi cắt quả bóng trắng
để va chạm với vật nặng thứ 1 và thứ 2, rơi xuống bên dưới va chạm với lò xo.
Lò xo bắn bóng trắng trúng vật nặng thứ 3 và rơi trúng nhện trắng. Tiếp theo cắt
quả bóng đỏ rơi thẳng đứng và bên dưới là chú nhện đỏ.

Chuyên ngành Kỹ Thuật Phần Mềm

22

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Man 7

Background

Đường
thẳng

Vật
nặng

Mối nối


Vật
nặng 2

Bóng
trắng

Khúc
gỗ

Bóng
đỏ

Bóng
xanh

Nhện
trắng

Nhện
đỏ

Nhện
xanh

NguoiDung
Tạo nét cắt

Vẽ nét cắt

Tạo nét cắt

Vẽ nét cắt

Tạo nét cắt

Va chạm
Hủy liên kết
Va cham

Hủy liên kết

Va chạm
Chụp lấy bóng xanh

Vẽ nét cắt

Va chạm

Hủy liên kết

Va cham
Chụp lấy bóng đỏ

Tạo nét cắt

Tạo nét cắt

Vẽ nét cắt

Vẽ nét cắt


Va chạm

Hủy liên kết

Va chạm

Hủy liên kết

Va cham
Chụp lấy bóng trắng

Hình 1.8: Sơ đồ tuần tự màn chơi thứ 7.
– Màn 8: trong màn có 2 quả bóng trắng – đỏ, 2 chú nhện trắng đỏ, 3 vật
nặng và có 2 cái lò xo quay một góc 20 độ. 2 quả bóng được treo phía bên trên
còn 2 lò xo được đặt bên dưới các quả bóng, nhưng bị lệch về phía bên tay trái
khoảng 100 pixel. Các vật nặng thứ nhất treo sao cho khi cắt dây liên kết thì rới
trúng bóng trắng, làm đung đưa nó. Cắt bóng trắng cho rơi để va chạm với vật
nắng thứ 2 và 3. Đồng thời bóng trắng rơi vào lò xo, bắn lên trúng nhện trắng.
Vật nặng thứ 3 va chạm với lò xo thứ 2, bắn va chạm với bóng đỏ. Làm đung
đưa bóng đỏ, cắt bóng đỏ sao cho rơi vào nhện đỏ.

Chuyên ngành Kỹ Thuật Phần Mềm

23

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015


Trường ĐHCT

Man 8

Background

Đường
thẳng

Bóng
trắng

Mối nối

Vật
nặng

Vật
nặng 2

Nhện
trắng

NguoiDung
Tạo nét cắt

Vẽ nét cắt

Va chạm


Hủy liên kết

Va chạm

Va chạm
Chụp lấy vật va chạm

Ném vật nặng đi
Va chạm
Chụp lấy vật va chạm
Ném vật nặng đi
Tạo nét cắt

Vẽ nét cắt

Va chạm

Hủy liên kết

Va chạm
Chụp lấy bóng trắng

Hình 1.9: Sơ đồ tuần tự màn chơi thứ 8.
– Màn 9: tương tự như ở màn 2, ở màn này có thêm bóng xanh và nhện
xanh, mức độ khó của màn được tăng lên.
Man 9

Background

Đường

thẳng

Mối nối

Vật
nặng

Lò xo

Bóng
trắng

Bóng
đỏ

Nhện
trắng

Nhện
đỏ

NguoiDung
Tạo nét cắt

Vẽ nét cắt

Va cham
Hủy liên kết
Va chạm
Bắn

Va chạm

Va chạm
Chụp lấy bóng trắng

Va chạm
Va cham
Chụp lấy bóng đỏ

Hình 1.10: Sơ đồ tuần tự màn chơi thứ 9.
– Màn 10: ở màn này xuất hiện thêm một chú nhện thứ 3 (nhện xanh), dựa
vào vị trí các vật cản trong màn, người chơi cố gắng cắt các sợi dây một cách
logic nhất để đưa bóng vào đúng nhện.
Chuyên ngành Kỹ Thuật Phần Mềm

24

Khoa CNTT & TT


Luận văn tốt nghiệp Đại học khóa 37 - 2015

Trường ĐHCT

Man 10

Background
NguoiDung
Tạo nét cắt


Đường
thẳng

Vẽ nét cắt

Mối nối

Vật
nặng

Vật
nặng 2

Va cham
Hủy liên kết
Va chạm

Thanh gỗ di
chuyển

Thanh gỗ di
chuyển 2

Lăn trên

Bóng
trắng

Bóng
xanh


Nhện
trắng

Nhện
xanh

Va chạm
Ném vật nặng đi

Tạo nét cắt

Vẽ nét cắt

Va chạm

Hủy liên kết
Lăn trên

Tạo nét cắt

Va chạm
Chụp lấy bóng xanh

Vẽ nét cắt

Va chạm

Hủy liên kết
Lăn trên


Va cham
Chụp lấy bóng trắng

Hình 1.11: Sơ đồ tuần tự màn chơi thứ 10.
– Màn 11: trong màn gồm có 2 quả bóng trắng – xanh, 2 chú nhện trắng –
xanh. Các khúc gỗ được đặt chia làm thành 2 bên trái và phải, trong đó có 2
thanh gỗ được di chuyển qua lại ở phía giữa tạo cầu nối cho 2 bên. 2 cặp bóng
nhện được đặt so le nhau. Người chơi cố gắng cắt vật nặng trước để va chạm với
một số vật nặng khác tạo khoảng trống để đưa bóng vào nhện. Cần canh thời
gian để đưa bóng từ bên này qua bên kia, vì 2 thanh gỗ này di chuyển qua lại.
Man 11

Background
NguoiDung
Tạo nét cắt
Tạo nét cắt

Đường
thẳng

Vẽ nét cắt

Mối nối

Khúc
gỗ

Khúc gỗ
(Đòn bẩy)


Vật
nặng

Bóng
trắng

Bóng
đỏ

Nhện
trắng

Nhện
đỏ

Va cham
Hủy liên kết

Vẽ nét cắt

Va chạm

Hủy liên kết
Lăn trên
Va cham

Tạo nét cắt

Tạo nét cắt


Chụp lấy bóng trắng
Vẽ nét cắt

Vẽ nét cắt

Va chạm

Hủy liên kết
Lăn trên

Va chạm
Hủy liên kết

Va chạm mạnh

Va chạm

Va cham
Chụp lấy bóng đỏ

Hình 1.12: Sơ đồ tuần tự màn chơi thứ 11.
Chuyên ngành Kỹ Thuật Phần Mềm

25

Khoa CNTT & TT



×