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

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

Đ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

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

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 : Nguyễn Văn Hiến HÀ NỘI 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 : Nguyễn Văn Hiến MỤC LỤC Giới thiệu đề tài ………………………………………………… Tổng quan J2ME …………………………………………… Xây dựng BrickBreaker ……………………………………… 10 Phát triển đề tài ………………………………………………… 15 Tài liệu tham khảo …………………………………………… 16 GIỚI THIỆU ĐỀ TÀI Đề tài lập trình game BrickBreaker điện thoại di động xuất phát từ yêu cầu tập lớn môn Lập Trình Nâng Cao Đó phát triển chương trình điện thoại di động J2ME Với kiến thức Java , em xây dựng chương trình game đơn giản với đồ họa , gameplay âm Chương trình chạy mô Java Wireless Toolkit Version 2.5.1 chạy thử điện thoại di động BrickBreaker game 2D đơn giản với phong cách chơi BreakOut truyền thống Người chơi điều khiển pad hứng điều chỉnh hướng bay của bóng để bóng chạm vào tất viên gạch phía Bóng chuyển động theo quy tắc phản xạ Người chơi thắng tất viên gạch bị bóng chạm vào , thua để bóng chạm vào biên Trò chơi tạm dừng chọn hai chế độ chơi : tự động 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 tập TỔNG QUAN VỀ J2ME Kiến trúc J2ME: A Giới thiệu thành phần tảng J2ME Định nghĩa Configuration (Cấu hình): đặc tả định nghĩa môi trường phần mềm cho dòng thiết bị phân loại tập hợp đặc tính, ví dụ như: ·Kiểu số lượng nhớ ·Kiểu tốc độ vi xử lý ·Kiểu mạng kết nối Do đặc tả nên nhà sản xuất thiết bị SamSung, Nokia …bắt buộc phải thực thi đầy đủ đặc tả Sun qui định để lập trình viên dựa vào môi trường lập trình quán thông qua quán này, ứng dụng tạo mang tính độc lập thiết bị cao Ví dụ lập trình viên viết chương trình game cho điện thoại Samsung sửa đổi chương trình cách tối thiểu để chạy điện thọai Nokia Qua ta thấy hiệu “Write Once, Run Everywhere” Java không nữa, ta phải đánh giá cao nổ lực Sun việc tạo môi trường phần mềm chung cho vô số chủng loại thiết bị di động có thị trường Hiện Sun đưa dạng Configuration CLDC (Connected Limited Device Configuration-Cấu hình thiết bị kết nối giới hạn): thiết kế để nhắm vào thị trường thiết bị cấp thấp (low-end), thiết bị thông thường máy điện thọai di động PDA với khoảng 512 KB nhớ Vì tài nguyên nhớ hạn chế nên CLDC gắn với Java không dây (Java Wireless ), dạng cho phép người sử dụng mua tải ứng dụng Java, ví dụ Midlet CDC- Connected Device Configuration (Cấu hình thiết bị kết nối): CDC đưa nhắm đến thiết bị có tính mạnh dòng thiết bị thuộc CLDC yếu hệ thống máy để bàn sử dụng J2SE Những thiết bị có nhiều nhớ (thông thường 2Mb) có xử lý mạnh Các sản phẩm kể đến máy PDA cấp cao, điện thoại web, thiết bị gia dụng gia đình … Cả dạng Cấu hình kể chứa máy ảo Java (Java Virtual Machine) tập hợp lớp (class) Java để cung cấp môi trường cho ứng dụng J2ME Tuy nhiên, thiết bị cấp thấp, hạn chế tài nguyên nhớ xử lý nên yêu cầu máy ảo hổ trợ tất tính với máy ảo J2SE, ví dụ, thiết bị thuộc CLDC phần cứng yêu cầu phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không yêu cầu hỗ trợ kiểu float double Bảng so sánh thông số kỹ thuật CDC CLDC B Định nghĩa Profile Profile mở rộng Configuration cách thêm vào class để bổ trợ tính cho thiết bị chuyên biệt Cả Configuration có profile liên quan từ profile dùng class lẫn Đến ta nhận thấy profile định nghĩa tập hợp class khác nhau, nên thường ta chuyển ứng dụng Java viết cho profile chạy máy hỗ trợ profile khác Cũng với lý đó, bạn lấy ứng dụng viết J2SE hay J2EE chạy máy hỗ trợ J2ME Chúng ta điểm qua profile tiêu biểu: Mobile Information Device Profile (MIDP)ban : profile bổ sung tính hỗ trợ kết nối, thành phần hỗ trợ giao diện người dùng … vào CLDC Profile thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính hình hiển thị hạn chế, dung lượng chứa có hạn Do MIDP cung cấp giao diện người dùng đơn giản tính mạng đơn giản dựa HTTP Có thể nói MIDP profile tiếng kiến thức cho lập trình Java máy di động (Wireless Java) PDA Profile: tương tự MIDP, với thị trường máy PDA với hình nhớ lớn Foundation Profile: cho phép mở rộng tính CDC với phần lớn thư viện Core Java2 1.3 Ngoài có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile Bạn đọc hiểu rõ vị trí profile kiến trúc J2ME theo hình bên C Sơ lược MIDP Định nghĩa: Đây Profile định nghĩa dành riêng cho thiết bị di động thành phần J2ME MIDP cung cấp chức cho hầu hết dòng thiêt bị di động phổ biến máy điện thoạI di động máy PDA Tuy nhiên MIDP đũa thần cho lập trình viên biết, MIDP thiết kế cho máy di động có cấu hình thấp Trong phần sau liệt kê qua tính mà MIDP cung cấp giới hạn Những chức MIDP làm được: Phép tính dấu phẩy động (floating point): Phép tính đòi hỏi nhiều tài nguyên CPU phần lớn CPU cho thiết bị di động không hỗ trợ phép tính này, MIDP Bộ nạp class (Class Loader) Hỗ trợ từ khóa finalize() J2SE: Việc “dọn dẹp“ tài nguyên trước bị xóa đẩy phía lập trình viên Không hỗ trợ JNI Hỗ trợ hạn chế thao tác bắt lỗi Phần lớn thư viện API cho Swing AWT sử dụng MIDP Không hỗ trợ tính quản lý file thư mục: Đây làm bạn ngạc nhiên thực tế thiết bị J2ME hỗ trợ thiết bị lưu trữ thông thường ổ cứng v.v Tuy nhiên, điều nghĩa bạn phải liệu quan trọng tắt máy, Sun cung cấp chức khác tương đương gọi Record Management system (RMS) để cung cấp khả lưu trữ cho thiết bị Những chức MIDP cung cấp: Các lớp kiểu liệu: Phần lớn lớp mà lập trình viên Java quen thuộc giữ lại ví dụ lớp gói java.util Stack, Vector Hastable Enumeration Hỗ trợ đối tượng Display: Đúng tên gọi chương trình MIDP hỗ trợ đối tượng Display đối tượng quản lý việc hiển thị liệu hình điện thoại Hỗ trợ Form giao diện người dùng Hỗ trợ Timer Alert Cung cấp tính Record Management System (RMS) cho việc lưu trữ liệu XÂY DỰNG BRICKBREAKER A Xây dựng code Chu trình game hoạt động J2ME : Start : Pause : Stop : Khởi tạo game Tạm dừng game Kết thúc game 10 Giản đồ hoạt động BrickBreaker mô tả rõ ràng sau : Từ giản đồ ta xây dựng lớp quan trọng chương trình là: • MainCanvas: Khởi tạo hình trò chơi, điều khiển cập nhật, vẽ, chuyển tiếp hình • BrickBreakerScreen: Các lớp có chứa logic trò chơi • Ball: Điều khiển chuyển động bóng, va chạm, phát vẽ • Brick: Đại diện viên gạch • BrickField: Đại diện tất viên gạch trò chơi • Paddle: Đại diện pad; lưu ý lớp dựa PaddleController để thực kiểm soát pad • PaddleController: Giao diện thực ComputerPaddleController HumanPaddleController phép người hay máy tính cầm để kiểm soát pad • MenuScreen: Thực game menu 11 Ví dụ code lớp khởi tạo hình Việc khởi tạo hình trò chơi bước quan trọng việc xây dựng toàn trò chơi Việc thực cách xây dựng 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ô chạy thử điện thoại di động Việc mô trò chơi Java Wireless Toolkit dễ dàng Sau xây dựng code cho BrickBreaker Chạy Java Wireless Toolkit Sau load BrickBreaker Và run 12 Các bước chạy mô 13 14 PHÁT TRIỂN ĐỀ TÀI Với phong cách BreakOut , trò chơi phát triển theo nhiều hướng khác , nâng cấp đồ họa , chơi với nhiều level Với đa dạng cách phát triển game J2ME , việc xây dựng game trở nên phong phú Mục tiêu em nghiên cứu xây dựng game 3D điện thoại di động 15 TÀI LIỆU THAM KHẢO J2ME All – Ngô Nhất Phương Java 3d Programming – O’Reilly Mobile Game Programming for Beginner – Fredrik Bornander Programming 2D Game in J2ME – Hoàng Tuấn 16 [...]... đ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 15 5 TÀI LIỆU THAM KHẢO 1 2 3 4 J2ME All – Ngô Nhất Phương Java 3d Programming – O’Reilly Mobile Game Programming for Beginner – Fredrik Bornander Programming 2D Game in J2ME – Hoàng Tuấn 16 ... 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 xây dựng code cho BrickBreaker Chạy Java Wireless Toolkit Sau đó load BrickBreaker Và run 12 Các bước chạy mô phỏng 13 14 4 PHÁT TRIỂN ĐỀ TÀI Với cùng phong... 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:... đồ 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... 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 ...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... BrickBreaker điện thoại di động xuất phát từ yêu cầu tập lớn môn Lập Trình Nâng Cao Đó phát triển chương trình điện thoại di động J2ME Với kiến thức Java , em xây dựng chương trình game đơn... qui định để lập trình viên dựa vào môi trường lập trình quán thông qua quán này, ứng dụng tạo mang tính độc lập thiết bị cao Ví dụ lập trình viên viết chương trình game cho điện thoại Samsung

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan