Đề tài: ứng dụng game phá gạch trên điện thoại - Công nghệ thông tin | Đại học Đà Nẳng - Đại học bách khoa

Đề tài: ứng dụng game phá gạch trên điện thoại - Công nghệ thông tin | Đại học Đà Nẳng - Đại học bách khoa được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN CHUYÊN ĐỀ 1
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI :
ỨNG DỤNG GAME PHÁ GẠCH
TRÊN ĐIỆN THOẠI
SVTH :
1. Lê Quang Vũ
2. Trần Công Chiến
LỚP : 11TLT.PY
GVHD :TS.Huỳnh Hữu Hưng
Website: , E-mail: http://dut.ud.edu.vn/itf/ cntt@edu.ud.vn
Tuy Hòa, ngày 26 tháng 03 năm 2012
Ứng dụng game phá gạch trên điện thoại di động
LỜI CẢM ƠN
Để hoàn thành đề tài này trước hết chúng em chân thành cảm ơn Thầy
Ts.Huỳnh Hữu Hưng trong khoa Công nghệ thông tin trường Đại học bách khoa
Đà Nẵng đã tạo điều kiện giúp đỡ, chỉ bảo chúng em cách tiếp cận ngôn ngữ
J2me để lập trình trên điện thoại di động, nhờ sự chỉ bảo của Thầy nhóm cũng
như các bạn trong lớp tiếp thu được nhiều vấn đề cũng tiền đề để chúng
em hoàn thành đề tài này.
Tuy bản thân đã rất cố gắng tìm hiểu tài liệu từ nhiều nguồn thông tin khác
nhau như giáo trình, sách ,internet,…Cũng như vốn hiểu biết của mình về đề
tài thì không sao tránh khỏi thiếu sót.
Kính mong được sự đóng góp ý kiến của quý thầy cô để tôi có thể hoàn thiện
hơn về báo cáo và là cơ sở vững chắc để sau này ra trường làm việc.
Chúng em xin chân thành cảm ơn!
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 2
Ứng dụng game phá gạch trên điện thoại di động
M c l c
CHƯƠNG I:GIỚI THIỆU TỔNG QUAN.........................................................................................4
1. Lý do chọn đề tài:....................................................................................................................4
2. Mục tiêu ...................................................................................................................................4
3. Đối tượng nghiên cứu:.............................................................................................................4
4. Môi trường thực hiện:.............................................................................................................5
5. Giới thiệu về J2ME và lập trình cho thiết bị di động :..........................................................5
CHƯƠNG II: LẬP TRÌNH J2ME......................................................................................................6
1. MIDP 2.0...................................................................................................................................6
2.1 Lớp Command:................................................................................................................7
2.1 Giao diện người dùng cấp cao.........................................................................................7
CHƯƠNG III: TRÒ CHƠI PHÁ GẠCH.........................................................................................10
1. Giới thiệu các lớp:..................................................................................................................10
2. Nội dung thực hiện:...............................................................................................................10
a) Tạo form chứa menu chương trình:.................................................................................10
b) Tạo form ứng dụng game:.................................................................................................11
c) Tạo form lưu điểm: (hình 7)..............................................................................................15
d) Tạo form Help:...................................................................................................................15
e) Tạo form giới thiệu về tác giả tạo nên ứng dụng:(hình10)..............................................16
f) Tạo nút thoát chương trình:..............................................................................................17
KẾT LUẬN........................................................................................................................................19
CHƯƠNG I:GIỚI THIỆU TỔNG QUAN
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 3
Ứng dụng game phá gạch trên điện thoại di động
1. Lý do chọn đề tài:
Công nghệ thông tin ngày nay vai trò rất quan trọng trong cuộc
sống hàng ngày của chúng ta. Hiện nay rất nhiều công nghệ mới phát
triển song song với việc phát triển công nghệ thông tin như Bluetooth,
Wireless, WAP, SOAP,… nhằm giúp công nghệ thông tin ngày càng thân
thiết với người dùng hơn. Một trong những công nghệ góp phần không nhỏ
trong việc kết nối con người với thông tin cũng như con người với con người
công nghệ di động.Với tốc độ phát triển hiện nay những lợi ích to lớn
của công nghệ di động, thể thấy ảnh hưởng rất lớn đến cuộc sống
của con người. Không giống như trước đây những chiếc điện thoại chỉ
chức năng rất đơn giản đàm thoại, điện thoại hiện nay còn thêm rất
nhiều chức năng, ứng dụng khác như: email, truy cập Internet, video, nghe
nhạc, chơi game, … đồng thời với nó sự phát triển vũ bão của các dịch vụ
gia tăng trên điện thoại di động dựa trên công nghệ WAP và SOAP.
Chúng em chọn đề tài “Viết ứng dụng “game phá gạch” chạy trên
thiết bị di động bằng ngôn ngữ J2ME” đây một số ứng dụng đơn giản
nhằm khai thác các tính năng của các thiết bị di động chủ yếu điện
thoại di động. Qua đó chúng em sẽ cố gắng nắm bắt ứng dụng được tốt
các kỹ thuật lập trình trên thiết bị di động.
2. Mục tiêu .
Khi thực hiện đề tài này, mục tiêu chúng em mong muốn đạt
được là:
Hiểu chi tiết về J2ME ứng dụng của để lập trình trên các
thiết bị di động.
Nắm được các kỹ thuật xử lý form, âm thanh, hình ảnh, lưu trữ
trên điện thoại di động.
Ứng dụng các kết quả đạt được để xây dựng chương trình đơn
giản, có các tiện ích phục vụ nhu cầu của người sử dụng điện thoại
di động.
Nâng cao trình độ, tự nghiên cứu, học hỏi, duy, làm việc theo
nhóm, khả năng thuyết trình cho sinh viên, làm nền tảng vững chắc
cho sinh viên sau này khi đi làm.
3. Đối tượng nghiên cứu:
Hiểu java, J2ME và ứng dụng của nó để lập trình trên các thiết bị di động.
Nắm được các kỹ thuật xử âm thanh, hình ảnh, lưu trữ dữ liệu trên
thiết bị di động
Ứng dụng các kết quả được để xây dựng một ứng dụng thực tiễn trên
thiết bị di động.Phạm vi nghiên cứu:
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 4
Ứng dụng game phá gạch trên điện thoại di động
Nghiên cứu về công nghệ J2ME các kỹ thuật lập trình trên điện thoại
di động. Ứng dụng các kết quả nghiên cứu được để xây dựng ứng dụng
triển khai trên điện thoại di động.
4. Môi trường thực hiện:
Viết trên Hệ điều hành Windows XP, Windows7.
Bằng phần mềm Jcreator 4.50 Pro, JDK 1.6.02 và Wireless Toolkit 2.5.2.
5. Giới thiệu về J2ME và lập trình cho thiết bị di động :
J2ME được phát triển từ kiến trúc JavaCard, EmbededJava
PersonalJava của phiên bản Java 1.1. Đến dự ra đời của phiên bản Java 2
thì Sun quyết định thay thế PersonalJava bằng một phiên bản mới tên
Java 2 Micro Edition, viết tắt là J2ME. J2ME được sử dụng cho các thiết
bị nhỏ gọn với dung lượng bộ nhớ bé và khả năng xử lý thấp.
Mục tiêu của Java cho phép người lập trình viết các ứng dụng
độc lập với thiết bị di động, không cần quan tâm đến phần cứng thật sự.
Để làm được như thế, J2ME được xây dựng bằng các tầng khác nhau để
che giấu đi việc tương tác trực tiếp với phần cứng của thiết bị.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 5
Ứng dụng game phá gạch trên điện thoại di động
CHƯƠNG II: LẬP TRÌNH J2ME
1. MIDP 2.0
Ta tìm hiểu về các thành phần giao diện người dùng(UI) sẵn
trong J2ME nhằm tạo ra sự tương tác giữa người dùng với điện thoại, đây
vấn đề quan trọng bởi kích thước của màn hình điện thoại được giới
hạn. J2ME cung cấp đặc tả MIDP chứa các thành phần giao diện đồ họa,
hiện nay đã rất nhiều phiên bản MIDP 3.0, ta xét MIDP 2.0. Và đây
sơ đồ phân lớp của nó.
MIDP 2.0 cung cấp các lớp UI trong một gói
javax.microedition.lcdui, trong đó lcdui viết tắt của liquid crystal
display user interface(LCD UI). Để show một phần tử UI lên màn hình, ta
phải sử dụng một lớp Displayable. dụ, một lớp Displayable thể
một title, một ticker, và các command liên kết với nó.
Lớp Display quản những cái hiển thị lên màn hình. Phương
thức static getDisplay(MIDlet midlet) cho phép ta truy cập vào Display
của MIDlet. Sau đó, ta sử dụng phương thức setCurrent(Displayable
element) để lựa chọn đối tượng nào extend từ Displayable được hiển thị
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 6
Ứng dụng game phá gạch trên điện thoại di động
lên màn hình. Tại một thời điểm, chỉ một đối tượng Displayable được
hiển thị trên màn hình.
2.1 Lớp Command:
Một MIDlet tương tác với người dùng thông qua các Command. Một
Command tương đương với một menu item trong một ứng dụng thông
thường, chỉ thể kết hợp với một phần tử UI Displayable. Lớp
Displayable cho phép người dùng attacth một Command bằng cách sử
dung phương thức addCommand(Command command). Một đối tượng
Displayable thể cón nhiều Command bên trong nó.Lớp Command
được nắm giữ các thông tin về command. Thông tin này được đóng gói
trong 4 thuộc tính: short label, optional long label, command type
priority. dụ, sử dụng lớp Command để tạo ra đối tượng command
thông qua cung cấp các giá trị trong Constructor:
// adds a command to exit the MIDlet
comExit = Command("Exit", Command.EXIT, 1); new
Nếu xác định command type,ta thể cho phép thiết bị chạy MIDlet
ánh xạ(map) bất kỳ phím định sẵn nào trên thiết bị vào command đó. Ví
dụ, một command với kiểu OK được ánh xạ vào phím OK của thiết bị.
Trong MIDP 2.0, sẵn các kiểu command sau: BACK, CANCEL,
EXIT, HELP, ITEM, SCREEN STOP. Kiểu SCREEN liên quan đến
một command được map trong ứng dụng cho màn hiền hiện thời. Cả
SCREEN ITEM không bất kỳ các phím được ánh xạ trên thiết
bị.Để nhận được phản hồi từ người dùng, ta cần phải listen từ các
command, điều này được thực hiện thông qua thực thi giao diện
CommandListener. Trong dụ Hello World, Interface được thực thi
thông qua phương thức commandAction().
2.1 Giao diện người dùng cấp cao.
Vẽ để được hiển thị bởi hệ thống phần mềm của thiết bị. Ứng
dụng không định nghĩa giao diện trực quan như hình dáng, màu
sắc… của các thành phần high-level.
Điều hướng, cuộn, các tương tác nguyên thủy khác với các
thành phần giao diện người dùng được thực hiện bởi thiết bị.
Tuy nhiên, ứng dụng không nhận biết được các tương tác này.
Ứng dụng không thể truy cập vào các kỹ thuật input cụ thể, như
các phím nhấn cụ thể nào đó.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 7
Ứng dụng game phá gạch trên điện thoại di động
Alert:
Ứng dụng Hello World sử dụng một alert. Phần tử này đại diện cho một
màn hình(Screen) dùng để show dữ liệu đến người dùng đợi một thời
gian trước khi xử đối tượng Displayable tiếp theo. Một Alert thìthể
chứa môt chuỗi text một image.Thông thường, Alert được sử dụng để
thông báo lỗi hay các ngoại lệ khác.
TextBox:
Kế thừa từ lớp Screen, cho phép người dùng nhập chỉnh sửa text. Lớp
này thể được cấu hình để thích nghi với các nhu cầu của người dùng.
Ta thể giới hạn maximum các tự hiển thị trong TextBox. Ngoài ra,
ta thể ràng buộc các kiểu nhập cho TextBox bằng cách sử dụng các
flag được định nghĩa trong lớp TextField. 6 ràng buộc(constrain) để
giới hạn nội dung hiển thị, đó là: ANY, EMAILADRR, NUMBERIC,
PHONENUMBER, URL DECIMAL. 6 ràng buộc ảnh hưởng tới
kiểu nhập: PASSWORD, UNEDITABLE, SENSITIVE,
NON_PREDICTIVE, INITIAL_CAPS_WORD,
INITIAL_CAPS_SENSITIVE. dụ, chỉ cho phép địa chỉ email được
phép nhập trong TextBox, ta thiết lập flag TextField.EMAILADRR sử
dụng phương thức setConstrains(), ngoài ra để kết hợp nhiều ràng buộc
cùng lúc, ta sử dụng toán tử OR giữa các flag. dụ:
setConstraints(TextField.EMAILADDR | TextField.UNEDITABLE);
List:
Một List chứa một danh sách các chọn lựa. Khi List được biểu diễn trên
màn hình, người dùng thể tương tác với bằng cách chon lựa các
phần tử, di chuyển qua lại giữa các phần tử của List. các kiểu cấu
hình sau:
Choice.EXCLUSIVE: chỉ có 1 phần tử được chọn lựa.
Choice.MULTIPLE: có thể có nhiều phần tử được chọn lựa.
Choice.IMPLICIT: phần tử được hightlight được chọn lựa.
Form:
chứa nhiều item, bất kỳ lớp nào extends từ lớp Item để thể được
chứa trong một Form. Việc thực thi xử các layout, traversal,
scrolling. Nội dung của Form thể được cuộn lại với nhau. Các loại
Item có thể được thêm vào trong Form:
StringItem: Là một label và không cho phép người dùng sửa lên nó. Item
này có thể chứa một tiêu đề và một text, và cả hai đều có thể null.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 8
Ứng dụng game phá gạch trên điện thoại di động
DateField: Cho phép người dùng nhập ngày date/time một trong 3 dạng
sau: DATE, TIME và DATE_TIME.
TextField: Tương tự như TextBox.
ChoiceGroup: Tương tự như List.
Gauge: Sử dụng để phỏng process bar, tuy nhiên thể sử dụng
trong kiểu tương tác bởi người dùng, dụ nếu ta muốn dùng nó để show
một Volume Control.
ImageItem: Nắm giữ một image.
CustomItem: một lớp ảo abstract cho phép các subclass tạo ra giao
diện riêng, tương tác riêng chế thông báo riêng của nó. Nếu muốn
một phần tử UI khác so với các phần tử được cung cấp thì thể tạo ra
subclass.
Giao diện người dùng cấp thấp(Low-level User Interface): Các API
của low-level user interface( như lớp Canvas) được thiết kế cho các ứng
dụng cần sự sắp đặt điều khiển các phần tử graphics một cách chính
xác cũng như truy cập vào các low-level input event. dụ điển hình
game board, một chart object hay một graph. Sử dụng low-level user
interface, một ứng dụng có thể:
Kiểm soát những gì được vẽ trên màn hình.
Điều khiển được các sự kiện primitive như các sự kiện nhấn
phím(key press) và nhả phím(key release)
Truy cập vào cụ thể từng phím và các thiệt bị đầu vào khác.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 9
Ứng dụng game phá gạch trên điện thoại di động
CHƯƠNG III: TRÒ CHƠI PHÁ GẠCH
1. Giới thiệu các lớp:
MyMIDlet.java: Dùng để tạo ra menu chương trình
Ball,java: Dùng để tạo ra quả bóng
Brick.java: Dùng để tạo ra gạch
Pad.java: Dùng để tạo ra thanh đỡ quả bóng
Entity.java: Dùng để kiểm tra va chạm giữa bóng, gạch và thanh đỡ
Score.java: Dùng để nhập tên và điểm
Multimedia.java: Dùng để tạo ra âm thanh khi bóng va chạm với
gạch
2. Nội dung thực hiện:
a) Tạo form chứa menu chương trình:
Ý tưởng:
- Tạo ra form chính gồm :(hình 1)
+ New game: dùng để truy cập vào game
+ Score: dùng để lưu điểm khi kết thúc game
+ Help: Hướng dẫn sử dụng ứng dụng game
+ Tác giả: thông tin tác giả.
+ Exit: thoát ứng dụng game.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 10
Ứng dụng game phá gạch trên điện thoại di động
Hình 1: Menu chương trình
b) Tạo form ứng dụng game:
Bước 1: Tạo ra thanh đỡ dưới màng hình để hứng bóng đẩy
bóng lên phá gạch(hình 2). Thanh này mặc định nằm giữa bên dưới
màng hình, dùng nút trái phải để di chuyển
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 11
Ứng dụng game phá gạch trên điện thoại di động
Hình 2: Thanh đỡ bóng
Bước 2: Tạo bóng, bóng được đặt trên thanh đỡ, mỗi lần người
chơi hứng bóng trật thì bóng sẽ xuất hiện lại vị trí ban đầu(Hình 3).
Nhấn nút lên để đẩy bóng lên, nhân nút xuống đế tạm dừng.
Hình 3: Thanh đỡ và bóng
Bước 3: Tạo gạch, gồm 6 hàng gạch mỗi hàng 8 viên, nhấn
nút lên để bắt đầu chơi, khi bóng va chạm vào viên gạch nào thì viên
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 12
| 1/20

Preview text:

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN CHUYÊN ĐỀ 1
NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI :
ỨNG DỤNG GAME PHÁ GẠCH TRÊN ĐIỆN THOẠI SVTH : 1. Lê Quang Vũ 2. Trần Công Chiến LỚP : 11TLT.PY
GVHD :TS.Huỳnh Hữu Hưng

Website: http://dut.ud.edu.vn/itf/, E-mail: cntt@edu.ud.vn
Tuy Hòa, ngày 26 tháng 03 năm 2012
Ứng dụng game phá gạch trên điện thoại di động LỜI CẢM ƠN
Để hoàn thành đề tài này trước hết chúng em chân thành cảm ơn Thầy
Ts.Huỳnh Hữu Hưng trong khoa Công nghệ thông tin trường Đại học bách khoa
Đà Nẵng đã tạo điều kiện giúp đỡ, chỉ bảo chúng em cách tiếp cận ngôn ngữ
J2me để lập trình trên điện thoại di động, nhờ sự chỉ bảo của Thầy nhóm cũng
như các bạn trong lớp tiếp thu được nhiều vấn đề và cũng là tiền đề để chúng
em hoàn thành đề tài này.
Tuy bản thân đã rất cố gắng tìm hiểu tài liệu từ nhiều nguồn thông tin khác
nhau như là giáo trình, sách ,internet,…Cũng như vốn hiểu biết của mình về đề
tài thì không sao tránh khỏi thiếu sót.
Kính mong được sự đóng góp ý kiến của quý thầy cô để tôi có thể hoàn thiện
hơn về báo cáo và là cơ sở vững chắc để sau này ra trường làm việc.
Chúng em xin chân thành cảm ơn!
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 2
Ứng dụng game phá gạch trên điện thoại di động Mục l c ụ
CHƯƠNG I:GIỚI THIỆU TỔNG QUAN.........................................................................................4 1.
Lý do chọn đề tài:....................................................................................................................4 2.
Mục tiêu ...................................................................................................................................4 3.
Đối tượng nghiên cứu:.............................................................................................................4 4.
Môi trường thực hiện:.............................................................................................................5 5.
Giới thiệu về J2ME và lập trình cho thiết bị di động :..........................................................5
CHƯƠNG II: LẬP TRÌNH J2ME......................................................................................................6 1.
MIDP 2.0...................................................................................................................................6 2.1
Lớp Command:................................................................................................................7 2.1
Giao diện người dùng cấp cao.........................................................................................7
CHƯƠNG III: TRÒ CHƠI PHÁ GẠCH.........................................................................................10 1.
Giới thiệu các lớp:..................................................................................................................10 2.
Nội dung thực hiện:...............................................................................................................10 a)
Tạo form chứa menu chương trình:.................................................................................10
b) Tạo form ứng dụng game:.................................................................................................11 c)
Tạo form lưu điểm: (hình 7)..............................................................................................15
d) Tạo form Help:...................................................................................................................15 e)
Tạo form giới thiệu về tác giả tạo nên ứng dụng:(hình10)..............................................16 f)
Tạo nút thoát chương trình:..............................................................................................17
KẾT LUẬN........................................................................................................................................19
CHƯƠNG I:GIỚI THIỆU TỔNG QUAN
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 3
Ứng dụng game phá gạch trên điện thoại di động
1. Lý do chọn đề tài:
Công nghệ thông tin ngày nay có vai trò rất quan trọng trong cuộc
sống hàng ngày của chúng ta. Hiện nay có rất nhiều công nghệ mới phát
triển song song với việc phát triển công nghệ thông tin như Bluetooth,
Wireless, WAP, SOAP,… nhằm giúp công nghệ thông tin ngày càng thân
thiết với người dùng hơn. Một trong những công nghệ góp phần không nhỏ
trong việc kết nối con người với thông tin cũng như con người với con người
là công nghệ di động.Với tốc độ phát triển hiện nay và những lợi ích to lớn
của công nghệ di động, có thể thấy nó có ảnh hưởng rất lớn đến cuộc sống
của con người. Không giống như trước đây những chiếc điện thoại chỉ có
chức năng rất đơn giản là đàm thoại, điện thoại hiện nay còn có thêm rất
nhiều chức năng, ứng dụng khác như: email, truy cập Internet, video, nghe
nhạc, chơi game, … đồng thời với nó là sự phát triển vũ bão của các dịch vụ
gia tăng trên điện thoại di động dựa trên công nghệ WAP và SOAP.
Chúng em chọn đề tài là “Viết ứng dụng “game phá gạch” chạy trên
thiết bị di động bằng ngôn ngữ J2ME” và đây là một số ứng dụng đơn giản
nhằm khai thác các tính năng của các thiết bị di động mà chủ yếu là điện
thoại di động. Qua đó chúng em sẽ cố gắng nắm bắt và ứng dụng được tốt
các kỹ thuật lập trình trên thiết bị di động. 2. Mục tiêu .
Khi thực hiện đề tài này, mục tiêu mà chúng em mong muốn đạt được là:
 Hiểu chi tiết về J2ME và ứng dụng của nó để lập trình trên các thiết bị di động.
 Nắm được các kỹ thuật xử lý form, âm thanh, hình ảnh, và lưu trữ
trên điện thoại di động.
 Ứng dụng các kết quả đạt được để xây dựng chương trình đơn
giản, có các tiện ích phục vụ nhu cầu của người sử dụng điện thoại di động.
 Nâng cao trình độ, tự nghiên cứu, học hỏi, tư duy, làm việc theo
nhóm, khả năng thuyết trình cho sinh viên, làm nền tảng vững chắc
cho sinh viên sau này khi đi làm. 3.
Đối tượng nghiên cứu:
Hiểu java, J2ME và ứng dụng của nó để lập trình trên các thiết bị di động.
Nắm được các kỹ thuật xử lý âm thanh, hình ảnh, và lưu trữ dữ liệu trên thiết bị di động
Ứng dụng các kết quả có được để xây dựng một ứng dụng thực tiễn trên
thiết bị di động.Phạm vi nghiên cứu:
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 4
Ứng dụng game phá gạch trên điện thoại di động
Nghiên cứu về công nghệ J2ME và các kỹ thuật lập trình trên điện thoại
di động. Ứng dụng các kết quả nghiên cứu được để xây dựng ứng dụng
triển khai trên điện thoại di động.
4. Môi trường thực hiện:
Viết trên Hệ điều hành Windows XP, Windows7.
Bằng phần mềm Jcreator 4.50 Pro, JDK 1.6.02 và Wireless Toolkit 2.5.2.
5. Giới thiệu về J2ME và lập trình cho thiết bị di động :
J2ME được phát triển từ kiến trúc JavaCard, EmbededJava và
PersonalJava của phiên bản Java 1.1. Đến dự ra đời của phiên bản Java 2
thì Sun quyết định thay thế PersonalJava bằng một phiên bản mới có tên
Java 2 Micro Edition, viết tắt là J2ME. J2ME được sử dụng cho các thiết
bị nhỏ gọn với dung lượng bộ nhớ bé và khả năng xử lý thấp.
Mục tiêu của Java là cho phép người lập trình viết các ứng dụng
độc lập với thiết bị di động, không cần quan tâm đến phần cứng thật sự.
Để làm được như thế, J2ME được xây dựng bằng các tầng khác nhau để
che giấu đi việc tương tác trực tiếp với phần cứng của thiết bị.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 5
Ứng dụng game phá gạch trên điện thoại di động
CHƯƠNG II: LẬP TRÌNH J2ME 1. MIDP 2.0
Ta tìm hiểu về các thành phần giao diện người dùng(UI) có sẵn
trong J2ME nhằm tạo ra sự tương tác giữa người dùng với điện thoại, đây
là vấn đề quan trọng bởi kích thước của màn hình điện thoại được giới
hạn. J2ME cung cấp đặc tả MIDP chứa các thành phần giao diện đồ họa,
hiện nay đã có rất nhiều phiên bản MIDP 3.0, ta xét MIDP 2.0. Và đây là
sơ đồ phân lớp của nó.
MIDP 2.0 cung cấp các lớp UI trong một gói
javax.microedition.lcdui, trong đó lcdui là viết tắt của liquid crystal
display user interface(LCD UI). Để show một phần tử UI lên màn hình, ta
phải sử dụng một lớp Displayable. Ví dụ, một lớp Displayable có thể có
một title, một ticker, và các command liên kết với nó.
Lớp Display quản lý những cái gì hiển thị lên màn hình. Phương
thức static getDisplay(MIDlet midlet) cho phép ta truy cập vào Display
của MIDlet. Sau đó, ta sử dụng phương thức setCurrent(Displayable
element) để lựa chọn đối tượng nào extend từ Displayable được hiển thị
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 6
Ứng dụng game phá gạch trên điện thoại di động
lên màn hình. Tại một thời điểm, chỉ có một đối tượng Displayable được hiển thị trên màn hình. 2.1 Lớp Command:
Một MIDlet tương tác với người dùng thông qua các Command. Một
Command tương đương với một menu item trong một ứng dụng thông
thường, và nó chỉ có thể kết hợp với một phần tử UI Displayable. Lớp
Displayable cho phép người dùng attacth một Command bằng cách sử
dung phương thức addCommand(Command command). Một đối tượng
Displayable có thể cón nhiều Command bên trong nó.Lớp Command
được nắm giữ các thông tin về command. Thông tin này được đóng gói
trong 4 thuộc tính: short label, optional long label, command type và
priority. Ví dụ, sử dụng lớp Command để tạo ra đối tượng command
thông qua cung cấp các giá trị trong Constructor:
// adds a command to exit the MIDlet
comExit = new Command("Exit", Command.EXIT, 1);
Nếu xác định command type,ta có thể cho phép thiết bị chạy MIDlet
ánh xạ(map) bất kỳ phím định sẵn nào trên thiết bị vào command đó. Ví
dụ, một command với kiểu OK được ánh xạ vào phím OK của thiết bị.
Trong MIDP 2.0, nó có sẵn các kiểu command sau: BACK, CANCEL,
EXIT, HELP, ITEM, SCREEN và STOP. Kiểu SCREEN liên quan đến
một command được map trong ứng dụng cho màn hiền hiện thời. Cả
SCREEN và ITEM không có bất kỳ các phím được ánh xạ trên thiết
bị.Để nhận được phản hồi từ người dùng, ta cần phải listen từ các
command, điều này được thực hiện thông qua thực thi giao diện
CommandListener. Trong ví dụ Hello World, Interface được thực thi
thông qua phương thức commandAction(). 2.1
Giao diện người dùng cấp cao.
 Vẽ để được hiển thị bởi hệ thống phần mềm của thiết bị. Ứng
dụng không định nghĩa giao diện trực quan như hình dáng, màu
sắc… của các thành phần high-level.
 Điều hướng, cuộn, và các tương tác nguyên thủy khác với các
thành phần giao diện người dùng được thực hiện bởi thiết bị.
Tuy nhiên, ứng dụng không nhận biết được các tương tác này.
 Ứng dụng không thể truy cập vào các kỹ thuật input cụ thể, như
các phím nhấn cụ thể nào đó.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 7
Ứng dụng game phá gạch trên điện thoại di động Alert:
Ứng dụng Hello World sử dụng một alert. Phần tử này đại diện cho một
màn hình(Screen) dùng để show dữ liệu đến người dùng và đợi một thời
gian trước khi xử lý đối tượng Displayable tiếp theo. Một Alert thì có thể
chứa môt chuỗi text và một image.Thông thường, Alert được sử dụng để
thông báo lỗi hay các ngoại lệ khác. TextBox:
Kế thừa từ lớp Screen, cho phép người dùng nhập và chỉnh sửa text. Lớp
này có thể được cấu hình để thích nghi với các nhu cầu của người dùng.
Ta có thể giới hạn maximum các ký tự hiển thị trong TextBox. Ngoài ra,
ta có thể ràng buộc các kiểu nhập cho TextBox bằng cách sử dụng các
flag được định nghĩa trong lớp TextField. Có 6 ràng buộc(constrain) để
giới hạn nội dung hiển thị, đó là: ANY, EMAILADRR, NUMBERIC,
PHONENUMBER, URL và DECIMAL. Có 6 ràng buộc ảnh hưởng tới
kiểu nhập: PASSWORD, UNEDITABLE, SENSITIVE, NON_PREDICTIVE, INITIAL_CAPS_WORD, và
INITIAL_CAPS_SENSITIVE. Ví dụ, chỉ cho phép địa chỉ email được
phép nhập trong TextBox, ta thiết lập flag TextField.EMAILADRR sử
dụng phương thức setConstrains(), ngoài ra để kết hợp nhiều ràng buộc
cùng lúc, ta sử dụng toán tử OR giữa các flag. Ví dụ:
setConstraints(TextField.EMAILADDR | TextField.UNEDITABLE); List:
Một List chứa một danh sách các chọn lựa. Khi List được biểu diễn trên
màn hình, người dùng có thể tương tác với nó bằng cách chon lựa các
phần tử, di chuyển qua lại giữa các phần tử của List. Nó có các kiểu cấu hình sau: 
Choice.EXCLUSIVE: chỉ có 1 phần tử được chọn lựa. 
Choice.MULTIPLE: có thể có nhiều phần tử được chọn lựa. 
Choice.IMPLICIT: phần tử được hightlight được chọn lựa. Form:
Nó chứa nhiều item, bất kỳ lớp nào extends từ lớp Item để có thể được
chứa trong một Form. Việc thực thi xử lý các layout, traversal, và
scrolling. Nội dung của Form có thể được cuộn lại với nhau. Các loại
Item có thể được thêm vào trong Form:
StringItem: Là một label và không cho phép người dùng sửa lên nó. Item
này có thể chứa một tiêu đề và một text, và cả hai đều có thể null.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 8
Ứng dụng game phá gạch trên điện thoại di động
DateField: Cho phép người dùng nhập ngày date/time một trong 3 dạng sau: DATE, TIME và DATE_TIME.
TextField: Tương tự như TextBox.
ChoiceGroup: Tương tự như List.
Gauge: Sử dụng để mô phỏng process bar, tuy nhiên nó có thể sử dụng
trong kiểu tương tác bởi người dùng, ví dụ nếu ta muốn dùng nó để show một Volume Control.
ImageItem: Nắm giữ một image.
CustomItem: Là một lớp ảo abstract cho phép các subclass tạo ra giao
diện riêng, tương tác riêng và cơ chế thông báo riêng của nó. Nếu muốn
một phần tử UI khác so với các phần tử được cung cấp thì có thể tạo ra subclass.
Giao diện người dùng cấp thấp(Low-level User Interface): Các API
của low-level user interface( như lớp Canvas) được thiết kế cho các ứng
dụng cần sự sắp đặt và điều khiển các phần tử graphics một cách chính
xác cũng như truy cập vào các low-level input event. Ví dụ điển hình là
game board, một chart object hay một graph. Sử dụng low-level user
interface, một ứng dụng có thể: 
Kiểm soát những gì được vẽ trên màn hình. 
Điều khiển được các sự kiện primitive như các sự kiện nhấn
phím(key press) và nhả phím(key release) 
Truy cập vào cụ thể từng phím và các thiệt bị đầu vào khác.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 9
Ứng dụng game phá gạch trên điện thoại di động
CHƯƠNG III: TRÒ CHƠI PHÁ GẠCH
1. Giới thiệu các lớp:
MyMIDlet.java: Dùng để tạo ra menu chương trình
Ball,java: Dùng để tạo ra quả bóng
Brick.java: Dùng để tạo ra gạch
Pad.java: Dùng để tạo ra thanh đỡ quả bóng
Entity.java: Dùng để kiểm tra va chạm giữa bóng, gạch và thanh đỡ
Score.java: Dùng để nhập tên và điểm
Multimedia.java: Dùng để tạo ra âm thanh khi bóng va chạm với gạch
2. Nội dung thực hiện:
a) Tạo form chứa menu chương trình: Ý tưởng:
- Tạo ra form chính gồm :(hình 1)
+ New game: dùng để truy cập vào game
+ Score: dùng để lưu điểm khi kết thúc game
+ Help: Hướng dẫn sử dụng ứng dụng game
+ Tác giả: thông tin tác giả.
+ Exit: thoát ứng dụng game.
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 10
Ứng dụng game phá gạch trên điện thoại di động Hình 1: Menu chương trình
b) Tạo form ứng dụng game:
Bước 1: Tạo ra thanh đỡ dưới màng hình để hứng bóng và đẩy
bóng lên phá gạch(hình 2). Thanh này mặc định nằm ở giữa bên dưới
màng hình, dùng nút trái phải để di chuyển
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 11
Ứng dụng game phá gạch trên điện thoại di động Hình 2: Thanh đỡ bóng
Bước 2: Tạo bóng, bóng được đặt trên thanh đỡ, mỗi lần người
chơi hứng bóng trật thì bóng sẽ xuất hiện lại vị trí ban đầu(Hình 3).
Nhấn nút lên để đẩy bóng lên, nhân nút xuống đế tạm dừng. Hình 3: Thanh đỡ và bóng
Bước 3: Tạo gạch, gồm có 6 hàng gạch mỗi hàng 8 viên, nhấn
nút lên để bắt đầu chơi, khi bóng va chạm vào viên gạch nào thì viên
SVTH: Lê Quang Vũ-Trần Công Chiến_Lớp 11TLTPY Trang 12