1. Trang chủ
  2. » Thể loại khác

THIẾT KẾ VÀ XÂY DỰNG GAME LINES TRÊN ĐIỆN THOẠI DIĐỘNG

69 42 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 2,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong số đó game Lines là một game nhỏ nhưng thể hiện được sự tinh tế và chiến thuật của người chơi, và có tính giải trí cao.. .II Mục đích đề tài Tìm hiểu công nghệ J2ME, bước đầu xây d

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN

MÃ NGÀNH : 05115

ĐỀ TÀI : THIẾT KẾ VÀ XÂY DỰNG GAME LINES TRÊN ĐIỆN THOẠI DI

ĐỘNG

Mã số : 06T2-042, 06T2-011 Ngày bảo vệ : 15-16/06/2011

SINH VIÊN: Nguyễn Hữu Toàn

Nguyễn Dương Hải

CBHD : Th.S Phan Chí Tùng

ĐÀ NẴNG, 06/2011

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, chúng em xin chân thành cảm ơn quý thầy cô giáo khoa Công Nghệ Thông Tin, trường Đại Học Bách Khoa – Tp.Đà Nẵng đã dạy dỗ chúng em suốt năm năm học vừa qua và tạo điều kiện cho phép chúng em được thực hiện luận văn tốt nghiệp này.

Đặc biệt, chúng em xin được bày tỏ lòng kính trọng và biết ơn sâu sắc tới thầy giáo Th.S Phan Chí Tùng đã tận tình hướng dẫn và giúp đỡ chúng em trong quá trình hoàn thành luận văn này.

Xin cảm ơn gia đình và bạn bè đã giúp đỡ, động viên chúng em trong thời gian thực hiện đề tài.

Do còn thiếu nhiều kinh nghiệm thực tế nên không tránh khỏi những sai sót Chúng em hy vọng sẽ nhận được những ý kiến nhận xét, góp ý của các nhà khoa học, các thầy cô giáo và bạn bè về những vấn đề được triển khai trong luận văn Xin trân trọng cảm ơn!

LỜI CAM ĐOAN

Trang 3

Chúng tôi xin cam đoan :

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy Th.S Phan Chí Tùng.

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên

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

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

tôi xin chịu hoàn toàn trách nhiệm.

Nhóm sinh viên thực hiện, Nguyễn Dương Hải Nguyễn Hữu Toàn

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Ngày…… tháng……năm 2011

Ký tên

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Trang 5

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Ngày…… tháng……năm 2011

Ký tên MỤC LỤC MỞ ĐẦU 8

.I Bối cảnh thực hiện đề tài 8

.II Mục đích đề tài 9

Trang 6

.III Giới thiệu sản phẩm 9

CƠ SỞ LÝ THUYẾT 12

.I Giới thiệu về J2ME 13

.II Kiến trúc J2ME 14

.III Các thành phần giao diện mức thấp của ứng dụng MIDP 17

PHÂN TÍCH VÀ THIẾT KẾ GAME 26

.I Đặc tả hệ thống 27

.II Biểu đồ lớp 39

39

.III Biểu đồ tuần tự 40

.IV Biểu đồ hoạt động 43

CÀI ĐẶT, TEST VÀ CHẠY THỬ CHƯƠNG TRÌNH 44

.I Cài đặt 44

.II Test và sửa lỗi 52

.III Kết quả chạy thử chương trình 62

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65

.I Kết luận 65

.II Hướng phát triển 66

[1] Phạm Tấn Liêm Phát triển Game di động với J2ME NXB Giao Thông Vận Tải, 2005, 432 tr 67

[2] JavaVietnam.org Lập Trình Mobile Games Bằng J2ME – Những Bước Khởi Đầu NXB Giao Thông Vận Tải, 2005, 30 tr 67

[3] Jason Lam J2ME Game Development with MIDP2, 219 tr 68

[4] Ian Millington Game Phycics Engine Development Morgan Kaufmann, 1 edition, 2007, 480 tr 68

[5] Khanh Le MIDP Game API, 39 tr 68

[6] Tech24 Lập trình J2ME cho thiết bị di động 68

[7] Trần Đức Minh, Vũ Thọ Tuấn Lập trình trên di động với J2ME Trường Đại Học Khoa Học Tự Nhiên Khoa Công Nghệ Thông Tin, 129 tr 68

Trang 7

DANH MỤC HÌNH VẼ

HÌNH 1 – GIỚI THIỆU – MÀN HÌNH GAME LOGO 10

HÌNH 2 - GIỚI THIỆU – MÀN HÌNH IN GAME 12

HÌNH 3 – SO SÁNH 2 VERSION CỦA J2ME 13

HÌNH 4 - CÁC CẤU HÌNH CỦA J2ME 14

HÌNH 5 – KIẾN TRÚC CỦA J2ME 17

HÌNH 6 – HỆ TRỤC TỌA ĐỘ TRONG LỚP CANVAS 18

HÌNH 7 – BÀN PHÍM DI ĐỘNG 22

HÌNH 8 – 64 X 48 PIXELS 25

HÌNH 9 – TILE 25

HÌNH 10 – BIỀU ĐỒ USE CASE 27

HÌNH 11 – MÀN HÌNH GAME LOGO 28

HÌNH 12 – MÀN HÌNH LOADING 29

HÌNH 13 – MÀN HÌNH ASK FOR SOUND 30

HÌNH 14 – MÀN HÌNH MAIN MENU 31

HÌNH 15 – MÀN HÌNH OPTIONS 32

HÌNH 16 – MÀN HÌNH ABOUT 33

HÌNH 17 – MÀN HÌNH HELP 34

HÌNH 18 - MÀN HÌNH IN GAME 35

Trang 8

HÌNH 19 – MÀN HÌNH GAME MENU 36

HÌNH 20 – MÀN HÌNH GAME OVER 37

HÌNH 21 – MÀN HÌNH HIGH SCORE 38

HÌNH 22 – BIỂU ĐỒ LỚP 39

HÌNH 23 – BIỂU ĐỒ TUẦN TỰ: CHƠI GAME 40

HÌNH 24 – BIỂU ĐỒ TUẦN TỰ: PAUSE GAME 41

HÌNH 25 – BIỂU ĐỒ TUẦN TỰ: RESTART GAME 42

HÌNH 26 - BIỂU ĐỒ TUẦN TỰ: END GAME 42

HÌNH 27 – BIỂU ĐỒ HOẠT ĐỘNG 43

HÌNH 28 – MÀN HÌNH GAME 63

HÌNH 29 – MÀN HÌNH KHI CHƠI GAME 64

CHƯƠNG 1

MỞ ĐẦU

.I Bối cảnh thực hiện đề tài

Ngày nay, đi đôi với sự phát triển của ngành Công nghệ thông tin là sự phát triển mạnh mẽ của thế giới game trên PC và trên Điện thoại di động Các hãng sản xuất game lớn trên thế giới đua nhau phát hành vô số các loại game đủ thể loại bao gồm các game Online ( Fifa, Audition, võ lâm, …) , Offline ( Diablo, Warcraft, AOE ,… ) trên PC và vô số các game trên Điện Thoại Di Động thu hút hầu hết các bạn trẻ tham gia

Bên cạnh đó cũng có một số game đã xuất hiện từ lâu nhưng rất được phổ biến và được nhiều người chọn là công cụ giải trí sau những giờ làm việc Trong số

đó game Lines là một game nhỏ nhưng thể hiện được sự tinh tế và chiến thuật của người chơi, và có tính giải trí cao

Nhưng cuộc sống bận rộn, không phải lúc nào người chơi cũng có thể ngồi

trên PC để chơi Để đáp ứng nhu cầu giải trí chúng em đã phát triển ý tưởng “Thiết

Trang 9

kế và xây dựng game Lines trên Điện Thoại Di Động“ để mọi người có thể chơi

bất ký lúc nào trên chiếc di động của mình

.II Mục đích đề tài

Tìm hiểu công nghệ J2ME, bước đầu xây dựng thành công một ứng dụng game trên Điện Thoại Di Động, hiểu và sử dụng được các lớp đối tượng hỗ trợ lập trình game trên J2ME, xử lý âm thanh, thiết kế giao diện cho Game và vận dụng được một số thuật toán về đồ thị khi xử lý trong lập trình Game, cài đặt ứng dụng lên điện thoại

.III Giới thiệu sản phẩm

Trang 10

Hình 1 – Giới thiệu – Màn hình Game Logo

Game Lines 2011 được phát triển cho các dòng điện thoại có hỗ trợ Java và có

độ phân giải màn hình là 240x320(chiều rộng 240, chiều cao 320) Lines 2011 có giaodiện đẹp mắt và bộ cài đặt tương đối nhẹ (159 Kb), có thể chạy trên các dòng điện thoại có cấu hình và bộ nhớ thấp

Luật chơi của Lines Mobile 2011 cũng tương tự như các game Lines trên PC trước đó:

- Mỗi ô vuông nhỏ chứa một viên bi, có nhiều loại bi, mỗi loại là một

màu phân biệt Đầu tiên trong lưới ô vuông chỉ có một số viên bi

- Người chơi chọn một viên bi và chọn vào 1 ô trống để di chuyển

viên bi đó đến vị trí mới

- Khi người chơi ghép được trên 4 viên bi thẳng hàng theo đường

ngang, dọc hoặc theo đường chéo thì số viên bi đó sẽ nổ và người chơi thu được điểm

- Mỗi nước đi của người chơi thì trong lưới ô vuông sẽ mọc thêm một

số viên bi đủ màu vào vị trí bất kỳ

- Trò chơi kết thúc khi lưới ô vuông chứa đầy viên bi Khi đó chương

trình sẽ tính điểm cho người chơi

- Có nhiều mức độ dễ, bình thường, khó cho người chơi chọn lựa, với

mỗi cấp độ sẽ có số màu và số viên bi khác nhau

Trang 12

Hình 2 - Giới thiệu – Màn hình In Game

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

Trang 13

.I Giới thiệu về J2ME

J2ME được phát triển từ kiến trúc Java Card, Embeded Java và PersonalJava của phiên bản Java 1.1 Đến sự ra đời của Java 2 thì Sun quyết định thay thếPersonal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME.Đúng với tên gọi, J2ME là nền tảng cho các thiết bị cấu hình nhỏ

Hình 3 – So sánh 2 version của J2ME

a) Java ban đầu được thiết kế dành cho các máy với tài nguyên bộ nhớ hạnchế

b) Thị trường của J2ME được mở rộng ra cho nhiều chủng loại thiết bị như:

• Các loại thẻ cá nhân như Java Card

• Máy điện thoại di động

• Máy PDA (Personal Digital Assistant - thiết bị trợ giúp cá nhân)

• Các hộp điều khiển dành cho tivi, thiết bị giải trí gia dụng …

Trang 14

.II Kiến trúc J2ME

.II.1 Configuration

Hình 4 - Các cấu hình của J2ME

- Định nghĩa về Configuration (Cấu hình): là đặc tả định nghĩa một môi

trường phần mềm cho một dòng các thiết bị được phân loại bởi tập hợp các đặc tính,

ra có thể mang tính độc lập thiết bị cao nhất có thể Ví dụ như một lập trình viên viếtchương trình game cho điện thoại Samsung thì có thể sửa đổi chương trình của mìnhmột cách tối thiểu nhất để có thể chạy trên điện thọai Nokia

Trang 15

Hiện nay Sun đã đưa ra 2 dạng Configuration:

• CLDC (Connected Limited Device Configuration-Cấu hình thiết

bị kết nối giới hạn): được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị này thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless), dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như là Midlet

• CDC ( Connected Device Configuration - Cấu hình thiết bị kết

nối ): CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE Những thiết bị này có nhiều bộ nhớ hơn (thông thường là trên 2Mb) và

có bộ xử lý mạnh hơn Các sản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị gia dụng trong gia đình…

Cả 2 dạng Cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine) và tập hợp các lớp (class) Java cơ bản để cung cấp một môi trường cho các ứng dụng J2ME Tuy nhiên, bạn chú ý rằng đối với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử lý nên không thể yêu cầu máy ảo hổ trợ tất cả các tính năng như với máy ảo của J2SE, ví dụ, các thiết bị thuộc CLDC không có phần cứng yêu cầu các phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không được yêu cầu hỗ trợ kiểu float và double Các thiết bị thuộc CLDC không có phần cứng yêu cầucác phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không được yêu cầu hỗ trợ kiểu float và double

.II.2 Profile

Profile mở rộng Configuration bằng cách thêm vào các class để bổ trợ các

tính năng cho từng thiết bị chuyên biệt Cả 2 Configuration đều có những Profile liên

quan và từ những profile này có thể dùng các class lẫn nhau Đến đây ta có thể nhận thấy do mỗi profile định nghĩa một tập hợp các class khác nhau, nên thường ta không thể chuyển một ứng dụng Java viết cho một profile này và chạy trên một máy hỗ trợ

Trang 16

một profile khác Cũng với lý do đó, bạn không thể lấy một ứng dụng viết trên J2SE hay J2EE và chạy trên các máy hỗ trợ J2ME Sau đây là các profile tiêu biểu:

• Mobile Information Device Profile (MIDP): profile này sẽ bổ sung

các tính năng như hỗ trợ kết nối, các thành phần hỗ trợ giao diện người dùng

… vào CLDC Profile này được thiết kế chủ yếu để nhắm vào điện thọai di

động với đặc tính là màn hình hiển thị hạn chế, dung lượng chứa có hạn Do đó

MIDP sẽ cung cấp một giao diện người dùng đơn giản và các tính năng mạng

đơn giản dựa trên HTTP Có thể nói MIDP là profile nổi tiếng nhất bởi vì nó

là kiến thức cơ bản cho lập trình Java trên các máy di động (Wireless Java)

• PDA Profile: tương tự MIDP, nhưng với thị trường là các máy PDA

với màn hình vào bộ nhớ lớn hơn

• Foundation Profile: cho phép mở rộng các tính năng của

CDC với phần lớn các thư viện của bộ Core Java2 1.3

Ngoài ra còn có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile

Trang 17

Hình 5 – Kiến trúc của J2ME

.III Các thành phần giao diện mức thấp của ứng dụng MIDP

.III.1 Các hàm API ở mức thấp

Mặc dù các hàm API cấp cao cung cấp một tập đầy đủ các thành phần để xây

dựng giao diện ứng dụng người dùng Tuy nhiên các thành phần cấp cao không cung cấp phương tiện để vẽ trực tiếp lên thiết bị thể hiện Vì thiếu khả năng này nên các ứng dụng được tạo ra sẽ gặp nhiều giới hạn Ví dụ hầu hết các nhà phát triển game di động dựa trên khả năng vẽ các đường thẳng và các hình dạng như là một phần tích hợp quá trình phát triển

Nếu các hàm API cấp cao cho phép chúng ta tạo ra giao diện cho các ứng dụng theo chuẩn, thì các hàm API cấp thấp cho phép chúng ta có thể thể hiện các

ý tưởng của mình

Trang 18

Canvas và Graphics là 2 lớp trái tim của các hàm API cấp thấp Bạn sẽ làm

tất cả các công việc bằng tay Canvas là một khung vẽ cho phép người phát triển có khả năng vẽ lên thiết bị trình bày cũng như là việc xử lý sự kiện Còn lớp Graphics cung cấp các công cụ thật sự để vẽ như drawRoundRect() và drawString().

.III.2 Các lớp Canvas

.III.2.1 Hệ trục tọa độ

Hệ thống tọa độ cho lớp Canvas có tâm tọa độ là điểm trái trên của thiết bị

trình bày Giá trị x tăng dần về phía phải, giá trị y tăng dần khi đi xuống phía dưới Khi vẽ độ dày bút vẽ là một điểm ảnh

Hình 6 – Hệ trục tọa độ trong lớp Canvas

Các phương thức sau đây sẽ giúp xác định chiều rộng và chiều cao của canvas:

- int getWidth(): xác định chiều rộng của canvas

- int getHeight (): xác định chiều cao của canvas

Trang 19

Chiều rộng và chiều cao của Canvas cũng đại diện cho toàn bộ diện tích khung

vẽ có thể trên thiết bị trình bày Nói cách khác, bạn không thể chỉ định kích thước cho

canvas, mà phần mềm trên một thiết bị MIDP sẽ trả về diện tích lớn nhất có thể có

đối với một thiết bị cho trước

.III.2.2 Tạo đối tượng canvas

Bước đầu tiên để làm việc với một lớp Canvas là tạo ra một lớp thừa kế từ lớp Canvas

class TestCanvas extends Canvas implements

CommandListener

{

private Command cmdExit;

display = Display.getDisplay( this );

cmdExit = new Command("Exit", Command.EXIT, 1);

TestCanvas canvas = new TestCanvas( this );

.III.2.3 Vẽ trên đối tượng Canvas

Phương thức paint của lớp Canvas cho phép bạn vẽ các hình dạng, vẽ ảnh, xuấtchuỗi Đoạn mã sau minh họa việc xóa màn hình thể hiện bằng một màu trắng

protected void paint(Graphics g) {

// Set background color to white

g.setColor(255, 255, 255);

// Fill the entire canvas

g.fillRect(0, 0, getWidth(), getHeight());

}

Trang 20

Chúng ta có thể sử dụng một tham chiếu đến một đối tuợng Graphics bên trongthân phương thức paint() để thực hiện công việc vẽ thực sự.

display = Display.getDisplay( this );

cmdExit = new Command("Exit", Command.EXIT, 1);

} }

Trang 21

void keyPressed(int keyCode)

void keyReleased(int keyCode)

void keyRepeated(int keyCode)

boolean hasRepeatEvents()

String getKeyName(int keyCode)

.III.2.6 Xử lý sự kiện hành động của Game

MIDP thường được sử dụng để tạo các trò chơi trên nền Java Các hằng số sau

đã được định nghĩa để xử lý các sự kiện có liên quan đến trò chơi trong MIDP.

Trang 22

phím phải được ánh xạ vào phím số 5, và cứ tiếp tục như thế Hình dưới đây cho thấycác hành động của trò chơi sẽ được ánh xạ lên một thiết bị di động dựa trên khả năng của các phím chỉ hướng

Hình 7 – Bàn phím di động

.III.3 Các hàm API dùng để lập trình Game

Các hàm API dành để lập trình Game được giới thiệu trong bản MIDP

2.0, những hàm này là phương tiện để phát triển game với nhiều phần đồ họa Các

hàm API dành cho Game là một phần của gói javax.microedition.lcdui.game.

Trang 23

.III.3.1 Lớp game canvas

Lớp GameCanvas gần như giống lớp Canvas, GameCanvas cung cấp

nền tảng để tạo giao diện người dùng, nhưng trong trường hợp này chỉ cho việc tạo

games GameCanvas chứa một vùng nhớ tách rời với vùng nhớ màn hình cho

mỗi thể hiện và cung cấp các phương tiện tích hợp để xác định tình trạng các

phím trò chơi Dưới đây là lớp GameCanvas:

public abstract class GameCanvas extends Canvas

GameCanvas cho phép bạn khắc phục được việc vẽ hình theo cách thông

thường và cơ chế sự kiện nhấn phím để cho tất cả các logic của game có thể được

chứa trong một vòng lặp đơn Đầu tiên, GameCanvas cho phép bạn truy xuất trực tiếp đối tượng Graphics của nó sử dụng phương thức getGraphics() Bất kỳ công việc vẽ nào trên đối tượng Graphics được trả về sẽ được hoàn thành trong bộ đệm

ngoài màn hình (offscreen) Sau đó bạn có thể chép bộ đệm vào màn hình sử dụng

flushGraphics(), không cần phải đợi cho đến khi màn hình được cập nhật Cách tiếp

cận này cho phép bạn điều khiển tốt hơn việc gọi repaint() Phương thức repaint()

trả về ngay lập tức và ứng dụng của bạn không cần phải bảo đảm chính xác khi nào

hệ thống sẽ gọi paint() để cập nhật màn hình.

GameCanvas cũng có một phương thức để lấy trạng thái hiện thời của bàn

phím thiết bị, một kỹ thuật được gọi là thăm dò (polling) Thay vì chờ cho hệ thống

gọi phương thức keyPressed(), bạn có thể xác định ngay lập tức các phím nào được nhấn bằng cách gọi phương thức getKeyStates() của GameCanvas.

Một vòng lặp game mẫu sử dụng GameCanvas sẽ giống như thế này:

public void MyGame extends GameCanvas implements

Runnable {

public void run( ) {

Graphics g = getGraphics( );

while ( true ) {

Trang 24

// xử lý và cập nhật giao diện game.

int keyState = getKeyStates( );

Các game hành động 2D điển hình bao gồm một nền và nhiều nhân vật chuyển động Mặc dù bạn có thể tự vẽ loại cảnh này, Game API cho phép bạn xây dựng các

cảnh bằng cách sử dụng các layer Bạn có thể tạo một layer là nền thành phố, và một

layer khác là chiếc xe hơi Đặt layer xe hơi lên trên hình nền sẽ tạo thành một cảnh hoàn chỉnh Sử dụng chiếc xe như là một layer riêng biệt giúp việc thao tác được dễ dàng và độc lập với hình nền, và với bất kỳ layer nào khác trong cảnh game

đáp ứng đầy đủ yêu cầu làm game 2D của bạn

public abstract class Layer extends Object

.III.3.3 Lớp TiledLayer

Có ích trong việc tạo các hình nền Bạn có thể sử dụng một tập nhỏ các hình ảnh nguồn ghép lại với nhau để tạo thành các hình ảnh lớn một cách hiệu quả

TiledLayer tương tự như một bảng tính, với mỗi ô đại diện cho một tấm ảnh Một

TiledLayer đơn giản được dùng để thể hiện các phần tử trực quan có kích thước lớn, như là nền của một trò chơi

Trang 25

Ví dụ, hình sau đây có kích thước là 64 x 48 pixels.

Hình 8 – 64 x 48 pixels

Hình này có thể được chia thành 12 tile, mỗi tile có kích thước 16 x 16 pixels TiledLayer gán cho mỗi tile một con số, bắt đầu từ 1 kể từ góc trái trên Các tile tronghình nguồn được đánh số như sau:

Hình 9 – Tile

Tạo một TiledLayer trong chương trình cũng khá đơn giản Chỉ cần xác định

số cột và số hàng, hình nguồn, và kích thước theo pixel của các tile trong hình nguồn Đoạn chương trình sau biểu diễn cách nạp hình và tạo một TiledLayer

public class TiledLayer extends Layer

.III.3.4 Lớp Sprite

Là một lớp hoạt họa Bạn cung cấp các frame nguồn và có toàn quyền điều khiểnviệc chuyển động Sprite cũng cung cấp khả năng để lật ngược và quay các framenguồn theo bội số của 90o Để thực hiện khả năng chuyển động, các khung ảnhđược thể hiện theo một thứ tự để tạo hiệu ứng di chuyển ảnh Các phép biến đổi như

là phép quay và phép lật ảnh có thể được áp dụng đối với một đối tượng Sprite

public class Sprite extends Layer

Trang 26

.III.3.5 Lớp LayoutManager

Để đơn giản xử lý cho việc vẽ nhiều lớp trong một trò chơi, các hàm API dànhcho việc lập trình trò chơi lại có thê lớp LayoutManager Lớp LayoutManagernày chứa một danh sách có thứ tự các đối tượng Layers và xác định khu vực nàocần được vẽ lại và thể hiện theo đúng trật tự Lớp LayoutManager được thểhiện như sau: public class LayerManager extends Object

CHƯƠNG 3

PHÂN TÍCH VÀ THIẾT KẾ GAME

Trang 28

.I.2.Màn hình game logo

Hình 11 – Màn hình Game Logo

Là màn hình xuất hiện đầu tiên khi chạy Game Màn hình thể hiện logo của Game

và chỉ chuyển màn hình khi người chơi nhấn phím 5

Trang 30

.I.4.Màn hình Ask for sound

Hình 13 – Màn hình Ask for Sound

Màn hình Ask for Sound xuất hiện sau màn hình Loading, màn hình có hộp thoạihỏi người chơi có cho phép chơi âm thanh trong Game hay không

Có 2 sự lựa chọn cho người chơi:

• YES: bật âm thanh, cho phép chơi âm thanh trong quá trình chơi game

• NO: tắt âm thanh, khi chơi game không được chơi âm thanh

Trang 31

.I.5.Màn hình main menu

Ngày đăng: 17/05/2020, 18:12

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w