1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình ứng dụng cho điện thoại di động trên nền tảng J2ME

16 428 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 16
Dung lượng 1,92 MB

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

Nội dung

Lập trình ứng dụng cho điện thoại di động trên nền tảng J2ME

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN TỬ VIỄN THÔNG

BÁO CÁO PROJECT MÔN LẬP TRÌNH NÂNG CAO

ĐỀ TÀI : LẬP TRÌNH ỨNG DỤNG CHO ĐIỆN THOẠI DI ĐỘNG

TRÊN NỀN TẢNG J2ME

Giảng viên hướng dẫn : Thầy Vũ Song Tùng

Sinh viên thực hiện : Nguyễn Văn Hiến

HÀ NỘI

Trang 2

BÁO CÁO PROJECT MÔN LẬP TRÌNH NÂNG CAO

ĐỀ TÀI : LẬP TRÌNH ỨNG DỤNG CHO ĐIỆN THOẠI DI ĐỘNG

TRÊN NỀN TẢNG J2ME

Giảng viên hướng dẫn : Thầy Vũ Song Tùng Sinh viên thực hiện : Nguyễn Văn Hiến

Trang 3

MỤC LỤC

1 Giới thiệu đề tài ……… 4

2 Tổng quan về J2ME ……… 5

3 Xây dựng BrickBreaker ……… 10

4 Phát triển đề tài ……… 15

5 Tài liệu tham khảo ……… 16

Trang 4

1 GIỚI THIỆU ĐỀ TÀI

Đề tài lập trình game BrickBreaker trên điện thoại di động được xuất phát từ yêu cầu của bài tập lớn môn Lập Trình Nâng Cao Đó là phát triển một chương trình trên điện thoại di động trên nền J2ME Với kiến thức căn bản về Java , em đã xây dựng một chương trình game đơn giản với đồ họa , gameplay và âm thanh Chương trình được chạy

mô phỏng trên Java Wireless Toolkit Version 2.5.1 và chạy thử trên điện thoại di động

BrickBreaker là một game 2D đơn giản với phong cách chơi

BreakOut truyền thống Người chơi sẽ điều khiển pad hứng và điều chỉnh hướng bay của của bóng để bóng chạm vào tất cả các viên gạch phía trên Bóng sẽ chuyển động theo quy tắc phản xạ Người chơi sẽ thắng khi tất cả các viên gạch bị bóng chạm vào , và sẽ thua khi để bóng chạm vào biên dưới Trò chơi có thể được tạm dừng và có thể chọn hai chế độ chơi : tự động hoặc có người chơi

Em xin chân thành cảm ơn thầy Vũ Song Tùng đã hướng dẫn em hoàn thành bài tập này

Trang 5

2 TỔNG QUAN VỀ J2ME

Kiến trúc J2ME:

A Giới thiệu các thành phần trong nền tảng J2ME

1 Đị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, ví dụ như:

·Kiểu và số lượng bộ nhớ

·Kiểu và tốc độ bộ vi xử lý

·Kiểu mạng kết nối

Do đây là đặc tả nên các nhà sản xuất thiết bị như SamSung, Nokia …bắt buộc phải thực thi đầy đủ các đặc tả do Sun qui định để các lập trình viên

có thể dựa vào môi trường lập trình nhất quán và thông qua sự nhất quán này, các ứng dụng được tạo 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ết chương trình game cho điện thoại Samsung thì có thể sửa đổi chương trình của mình một cách tối thiểu nhất để có thể chạy trên điện thọai Nokia Qua đây ta thấy khẩu hiệu

“Write Once, Run Everywhere” của Java đã không còn đúng nữa, nhưng

ta cũng phải đánh giá cao sự nổ lực của Sun trong việc tạo ra một môi trường phần mềm chung cho vô số chủng loại thiết bị di động có trên thị

Trang 6

trường Hiện nay Sun đã đưa ra 2 dạng Configuration.

2 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

3 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, đố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

Trang 7

Bảng dưới là sự so sánh các thông số kỹ thuật của CDC và CLDC

B Định nghĩa về 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ợ 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 Chúng ta sẽ điểm qua các profile tiêu biểu:

1 Mobile Information Device Profile (MIDP)ban : 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)

2 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à bộ nhớ lớn hơn

3 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

Bạn đọc có thể hiểu rõ hơn về vị trí của các profile này trong kiến trúc J2ME theo hình bên dưới

Trang 8

C Sơ lược về MIDP

Định nghĩa: Đây là Profile được định nghĩa dành riêng cho các thiết bị

di động và là thành phần chính trong J2ME MIDP cung cấp các chức năng cơ bản cho hầu hết các dòng thiêt bị di động phổ biến nhất như các máy điện thoạI di động và các máy PDA Tuy nhiên MIDP không phải là cây đũa thần cho mọi lập trình viên vì như chúng ta đã biết, MIDP được thiết kế cho các máy di động có cấu hình rất thấp Trong phần sau tôi sẽ liệt kê qua các tính năng mà MIDP cung cấp và những giới hạn của nó

Những chức năng MIDP không thể làm được:

1 Phép tính dấu phẩy động (floating point): Phép tính này đòi hỏi

rất nhiều tài nguyên CPU và phần lớn các CPU cho các thiết bị di động không hỗ trợ phép tính này, do đó MIDP cũng không có

2 Bộ nạp class (Class Loader)

3 Hỗ trợ từ khóa finalize() như trong J2SE: Việc “dọn dẹp“ tài

nguyên trước khi nó bị xóa được đẩy về phía các lập trình viên

4 Không hỗ trợ JNI

5 Hỗ trợ hạn chế thao tác bắt lỗi

6 Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được trong MIDP

7 Không hỗ trợ các tính năng quản lý file và thư mục: Đây có thể làm bạn ngạc nhiên nhưng thực tế là các thiết bị J2ME không có hỗ trợ các thiết bị lưu trữ thông thường như ổ cứng v.v Tuy nhiên, điều đó không có nghĩa là bạn phải mất đi mọi dữ liệu quan trọng mỗi khi tắt máy, Sun đã cung cấp một chức năng khác tương đương gọi là Record Management system (RMS) để cung cấp khả năng lưu trữ cho các thiết bị này

Trang 9

Những chức năng MIDP cung cấp:

1 Các lớp và kiểu dữ liệu: Phần lớn các lớp mà các lập trình viên Java quen thuộc vẫn còn được giữ lại ví dụ như các lớp trong gói java.util như Stack, Vector và Hastable cũng như Enumeration

2 Hỗ trợ đối tượng Display: Đúng như tên gọi một chương trình MIDP

sẽ hỗ trợ duy nhất một đối tượng Display là đối tượng quản lý việc hiển thị dữ liệu trên màn hình điện thoại

3 Hỗ trợ Form và các giao diện người dùng

4 Hỗ trợ Timer và Alert

5 Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ dữ liệu

Trang 10

3 XÂY DỰNG BRICKBREAKER

A Xây dựng code

Chu trình một game hoạt động trên nền J2ME :

Start : Khởi tạo game

Pause : Tạm dừng game

Stop : Kết thúc game

Trang 11

Giản đồ hoạt động của BrickBreaker có thể mô tả rõ ràng hơn như sau :

Từ giản đồ ta xây dựng các lớp quan trọng nhất trong chương trình là:

• MainCanvas: Khởi tạo các màn hình của trò chơi, và điều khiển các bản cập nhật,

vẽ, và chuyển tiếp giữa các màn hình.

• BrickBreakerScreen: Các lớp có chứa logic của trò chơi

• Ball: Điều khiển chuyển động của quả bóng, va chạm, phát hiện và vẽ

• Brick: Đại diện của một viên gạch duy nhất

• BrickField: Đại diện của tất cả những viên gạch trong trò chơi.

• Paddle: Đại diện pad; lưu ý rằng lớp này dựa trên một PaddleController để thực sự kiểm soát pad

• PaddleController: Giao diện được thực hiện bởi ComputerPaddleController và HumanPaddleController để cho phép hoặc là một con người hay một máy tính cầm để kiểm soát pad

• MenuScreen: Thực hiện game menu

Trang 12

Ví dụ về code của lớp khởi tạo màn hình

Việc khởi tạo màn hình trò chơi là một bước rất quan trọng trong việc xây dựng toàn bộ trò chơi Việc này có thể thực hiện bằng cách xây dựng một lớp GameScreen class

Collapse

package com.bornander.games.utils;

import javax.microedition.lcdui.Graphics;

public abstract class GameScreen {

protected Background background;

protected int width;

protected int height;

public GameScreen(int width, int height) {

this.width = width;

this.height = height;

this.background = null;

}

public void setBackground(Background background) {

this.background = background;

}

protected void paintBackground(Graphics graphics) {

if (background != null)

background.paint(graphics);

}

public abstract void activated(GameScreen previousScreen);

public abstract void paint(Graphics graphics);

public abstract int doUpdate();

public abstract void keyPressed(int keyCode, int gameAction); public abstract void keyReleased(int keyCode, int gameAction); }

B Mô phỏng và chạy thử trên điện thoại di động

Việc mô phỏng trò chơi trên Java Wireless Toolkit khá dễ dàng Sau khi

Trang 13

Các bước chạy mô phỏng

Trang 15

4 PHÁT TRIỂN ĐỀ TÀI

Với cùng phong cách BreakOut , trò chơi có thể được phát triển theo nhiều hướng khác nhau , như nâng cấp đồ họa , hoặc chơi với nhiều level hơn nữa

Với sự đa dạng trong cách phát triển game trên nền J2ME , thì việc xây dựng các game sẽ trở nên phong phú hơn nữa

Mục tiêu tiếp theo của em sẽ là nghiên cứu và xây dựng một game 3D trên điện thoại di động

Trang 16

5 TÀI LIỆU THAM KHẢO

1 J2ME All – Ngô Nhất Phương

2 Java 3d Programming – O’Reilly

3 Mobile Game Programming for Beginner – Fredrik Bornander

4 Programming 2D Game in J2ME – Hoàng Tuấn

Ngày đăng: 26/12/2015, 10:18

HÌNH ẢNH LIÊN QUAN

Bảng dưới là sự so sánh các thông số kỹ thuật của CDC và CLDC - Lập trình ứng dụng cho điện thoại di động trên nền tảng J2ME
Bảng d ưới là sự so sánh các thông số kỹ thuật của CDC và CLDC (Trang 7)

TỪ KHÓA LIÊN QUAN

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