Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
4,69 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG…………… LUẬN VĂN Tìm hiểu kỹ thuật lập trình Game địa bàn điện thoại di động LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Trƣớc tiên em xin gửi lời cám ơn chân thành sâu sắc tới thầy cô giáo trƣờng Đại học Dân Lập Hải Phịng nói chung thầy cô giáo khoa Công nghệ Thơng tin nói riêng tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt em xin gửi lời cảm ơn đến thầy Đỗ Xuân Toàn tận tình giúp đỡ, trực tiếp bảo, hƣớng dẫn em suốt trình làm đồ án tốt nghiệp Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà cịn học tập đƣợc tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho em trình học tập công tác sau Đồng thời xin chân thành cảm ơn, trƣờng Đại học Dân Lập Hải Phòng tạo điều kiện sở vật chất giúp em có mơi trƣờng tốt để thực đề tài Sau xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, đóng góp ý kiến giúp đỡ trình học tâp, nghiên cứu hoàn thành đồ án tốt nghiệp Hải Phòng, tháng 07/2009 Nguyễn Thị Thuỳ Dương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI CẢM ƠN Lời Mở Đầu Chương Cơ sở lý thuyết 1.1 Máy ảo java cho điện thoại di động 1.2 Lập trình java cho Mobile 1.2.1 Ngôn ngữ java 1.3 Giới thiệu J2ME 1.3.1 J2ME(Java Micro Edition): 1.3.2 Kiến trúc J2ME 1.3.3 - MIDP(Mobile Information Device Profile) 11 1.3.5.Tìm hiểu ứng dụng ĐTDĐ 11 2ME 11 1.3.5.2 Cách quản lý hình ĐTDĐ : 14 1.3.5.3 Kiến trúc tổng quan giao diện ngƣời dùng MIDP 15 Chương 2: J2ME game API 19 GameCanvas class 20 Layer class 20 Sprite Class 20 TiledLayer class 23 LayerManager class 24 Cơng cụ lập trình Netbeans 25 31 31 31 2.1.Các lớp đối tƣợng : 34 2.2 VisualMIDlet 38 Chương 4: Kết đạt 43 Môi trƣờng cài đặt 43 Chạy ứng dụng Game 43 Kết luận hƣớng phát triển 45 45 45 TÀI LIỆU THAM KHẢO 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời Mở Đầu Ngày nay, phát triển nhu cầu sở hữu thiết bị kỹ thuật số mà thiết bị di động có thị phần lớn Sự địi hỏi mẫu mã, chất lƣợng dịch vụ mà đặc biệt tính điện thoại, phần mềm tiện ích kèm kéo theo phát triển Hệ điều hành để nhà phát triển ứng dụng thực ý tƣởng mình.Các hệ điều hành phổ biến nhƣ: Windows Mobile, Linux Mobile, Symbian… Hiển nhiên có nhiều hạn chế cho game ứng dụng điện thoại có nhiều tƣơng tác bàn phím, hình ảnh, sinh động, âm hiệu ứng rung Hơn nữa, lập trình bạn khơng quan tâm đến khác nhà sản xuất mà đến khác dòng sản phẩm nhà sản xuất Mặc dù hầu hết điện thoại đời thị trƣờng hỗ trợ MIDP 2.0, nhiên bạn sử dụng điện thoại cũ hỗ trợ MIDP 1.0 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Cơ sở lý thuyết 1.1 Máy ảo java cho điện thoại di động Để có điện thoại tốt ln địi hỏi phần mềm cao cấp kèm Nhƣng vấn đề lại đặt có nhiều nhà sản xuất điện thoại sử dụng nhiều cơng nghệ khác Chính thế, việc tạo ứng dụng chạy đƣợc tất dòng sản phẩm vấn đề không đơn giản Nhƣng với đời J2ME, khơng đáp ứng đƣợc vấn đề nêu mà tạo nên tiền đề quan trọng việc phát triển đẩy mạnh ứng dụng cho Mobile Độc lập với phần cứng, chạy tảng khác nhà sản xuất khác nhau, mục tiêu đồng thời mạnh mà J2ME mang lại Khi mã nguồn Java đƣợc biên dịch đƣợc chuyển đổi thành mã bytecode Mã bytecode sau đƣợc chuyển thành mã ngôn ngữ máy thiết bị di động Tầng máy ảo Java bao gồm KVM (K Virtual Machine) biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode chƣơng trình Java thành ngơn ngữ máy để chạy thiết bị di động Vai trò máy ảo Java hay KVM dịch mã bytecode đƣợc sinh từ chƣơng trình Java biên dịch sang ngơn ngữ máy Chính KVM chuẩn hóa output chƣơng trình Java cho thiết bị di động khác có vi xử lý tập lệnh khác Khơng có KVM, chƣơng trình Java phải đƣợc biên dịch thành tập lệnh cho thiết bị di động Nhƣ lập trình viên phải xây dựng nhiều đích cho loại thiết bị di động LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình Biểu diễn tiến trình xây dựng ứng dụng MIDlet hồn chỉnh vai trị KVM 1.2 Lập trình java cho Mobile 1.2.1 Ngôn ngữ java a Java ngôn ngữ biên dịch Tuy nhiên khác với ngôn ngữ biên dịch phổ biến khác nhƣ C/C++, chƣơng trình nguồn Java khơng đƣợc biên dịch trực tiếp sang mã máy đích cụ thể mà đƣợc biên dịch sang mã máy ảo Java Mã má ảo đƣợc thực máy ảo Java cần đƣợc thông dịch sang hệ máy cụ thể Ƣu điểm dễ nhận thấy phƣơng thức mã đích không phụ thuộc vào phần cứng hay hệ điều hành cụ thể đảm bảo tính khả chuyển chƣơng trình Nhƣợc điểm phải thực môi trƣờng máy ảo nên tốc độ chậm so với đƣợc dịch sang mã máy thực trực tiếp LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Một ƣu điểm quan trọng khác chế máy ảo cho phép kiểm soát truy cập đến tài nguyên hệ thống b.Q trình phát triển Java c So sánh cơng nghệ Java Microsoft.Net LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1.3 Giới thiệu J2ME 1.3.1 J2ME(Java Micro Edition): J2ME đƣợc phát triển từ kiến trúc Java Card, Embeded Java Personal Java phiên Java 1.1 Đến đời Java Sun định thay Personal Java đƣơc gọi với tên Java Micro Edition, hay viết tắt J2ME Đúng với tên gọi, J2ME tảng cho thiết bị có tính chất nhỏ, gọn Java ban đầu đƣợc thiết kế dành cho máy với tài nguyên nhớ hạn chế Thị trƣờng J2ME đƣợc mở rộng 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 Các cơng cụ phát triển J2ME hầu nhƣ đƣợc cung cấp miễn phí Đây thuận lợi cho ngƣời bắt đầu với J2ME Một số tính ƣu việt J2ME: Cung cấp nội dung linh động, bảo mật, tƣơng thích tảng, tính nâng cao,truy cập ngoại tuyến, mang tính mạnh mẽ ngơn ngữ lập trình hƣớng đối tƣợng đại LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1.3.2 Kiến trúc J2ME Hình Kiến trúc J2ME Kiến trúc J2ME bao gồm thành phần: Cấu hình (configuration), trạng (profile), gói tuỳ chọn (optional package) cho việc xây dựng hồn thiện mơi trƣờng thực thi Java mà đáp ứng yêu cầu cho phạm vi lớn thiết bị thị trƣờng đích Các nhà sản xuất thiết bị phát triển tính thiết bị họ cung cấp dịch vụ, ứng dụng Các cấu hình đƣợc mở rộng với thƣ viện bổ sung cho thiết bị Cấu hình: Cấu hình bao gồm máy ảo Java tập hợp nhỏ hàm API theo đặc tả loại thiết bị định LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình trạng: Để cung cấp mơi trƣờng thực thi hoàn thiện loại thiết bị định, cấu hình phải đƣợc kết nối với tập API mức cao Gói tuỳ chọn: Nền tảng J2ME đƣợc mở rộng gói tùy chọn với cấu hình CLDC, CDC, hình trạng tƣơng ứng Các gói tuỳ chọn đƣa chuẩn cho việc sử dụng công nghệ có cơng nghệ đƣợc sử dụng rộng rãi Bluetooth, dịch vụ Web, nhắn tin không dây, đa phƣơng tiện, kết nối sở liệu Các nhà sản xuất thiết bị kèm theo gói tùy chọn để thúc đẩy tính thiết bị 1.3.3 - MIDP(Mobile Information Device Profile) Tầng J2ME cao tầng trạng mục đích định nghĩa API cho thiết bị di động Một thiết bị di động hỗ trợ nhiều trạng Một trạng áp đặt thêm giới hạn loại thiết bị di động (nhƣ nhiều nhớ hay độ phân giải hình cao hơn) Hiện trạng tập API hữu dụng cho ứng dụng cụ thể Lập trình viên viết ứng dụng cho trạng cụ thể không cần quan tâm đến chạy thiết bị Hiện trạng đƣợc công bố MIDP (Mobile Information Profile) với đặc tả JSR - 37 Có 22 cơng ty thành viên nhóm chuyên gia tạo chuẩn MIDP MIDP cung cấp API cho phép thay đổi trạng thái chu kỳ sống ứng dụng, đồ họa (mức cao mức thấp), tuyến đoạn, timer, lƣu trữ bền vững (persistent storage), mạng Nó khơng định nghĩa cách mà ứng dụng đƣợc nạp thiết bị di động Đó trách nhiệm nhà sản xuất Nó khơng định nghĩa loại mơ hình bảo mật end-toend nào, vốn cần thiết cho ứng dụng kinh doanh nhận số thẻ tín dụng ngƣời dùng Nó không bắt buộc nhà sản xuất cách mà lớp MIDP đƣợc thực LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.GameScreen: p GameDesign : : : Game Over, Running VisualMIDlet Properties Methods GameScreen Properties Methods GameDesign Properties Methods Hình 17 - - Trong lớp GameDesign hỗ trợ API dùng để quản lý layer mạnh linh hoạt giúp việc xây dựng cảnh game phức tạp cách hiệu Tạo đối tƣợng đồ hoạ để ập nhật lên hình – Main Loop While (running){ 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com } Lớp GameCanvas vẽ lên hình đáp ứng lại liệu nhập phần thân vịng lặp game, thay dựa vào thread vẽ nhập liệu hệ thống.Đầu tiên, GameCanvas cho phép bạn truy xuất trực tiếp đối tƣợng Graphics sử dụng phƣơng thức getGraphics() Bất kỳ công việc vẽ đối tƣợng Graphics đƣợc trả đƣợc hoàn thành đệm hình (offscreen) Sau bạn chép đệm vào hình sử dụng flushGraphics(), khơng cần phải đợi hình đƣợc cập nhật Cách tiếp cận cho phép bạn điều khiển tốt việc gọi repaint() Phƣơng thức repaint() trả ứng dụng bạn không cần phải bảo đảm xác hệ thống gọi paint() để cập nhật hình GameCanvas có phƣơng thức để lấy trạng thái thời bàn phím thiết bị, kỹ thuật đƣợc gọi thăm dò (polling) Thay chờ cho hệ thống gọi phƣơng thức keyPressed(), bạn xác định phím đƣợc nhấn cách gọi phƣơng thức getKeyStates() GameCanvas Cuối lớpVisualMIDlet java sử dụng lớp Canvas 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.1.Các lớp đối tượng : // Đối tƣợng GameMIDlet lớp chƣơng trình // gọi đối tựong Display thị Alert hình game khơng hiển thị đƣợc // hiển thị hình menu // thao tác thực Menu : Đồng thời gọi đối tựong MazeCanvaz để thị Game // hàm gọi để hiển thị hình nhƣ ảnh :màn hình About, GameScore… // Hàm thiết lập đối tƣợng mazeCanvaz // Gọi đối tựong Display để thị hình // Hàm bắt đầu ứng dụng //Hàm dừng chƣơng trình để bắt kiện timer // Thiết lập hàm GameOver để thực ghi điểm cho ngƣời chơi 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com // đối tƣợng MazeCanvas kế thừa GameCanvas // Hàm khởi tạo // Hàm lấy trạng thái bàn phím để di chuyển nhân vật // lấy trạng thái bàn phím // Hàm trả giá trị biến MyGameOver // lấy trạng thái phím để di chuyển hiển thị hình ghi điểm // Thực vẽ đồ họa hình,và gọi hàm paint đối tƣợng myManager // Hàm update thay đổi hàm Paint hiển thị lên hình.Nếu khơng hiển thị đƣợc báo lỗi 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com // đối tƣợng MazeGameDesign để thực đối tƣợng đồ họa // Các hàm để load đối tƣợng : Image, Sprite,TiledLayer 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com // Đối tƣợng MazeManager kế thừa lớp thực đồ họa chuơng trình // hàm khởi tạo gọi đối tƣợng MazeDesign // Hàm di chuyển nhân vật Duke Game, gặp xung đột quay lại Gặp nhân vật Jame thắng // Hàm thiết lập chuyển đổi Duke Trong Duke di chuyển hiển thị Sprite // lớp đối tƣợng thiết lập chuyển động SpriteDuke 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com // lớp đối tƣợng GameThread để phân luồng cho đối tƣợng khác chƣơng trình //dừng Game // khởi động lại Game sau dừng chƣơng trình // Bắt đầu Game 2.2 VisualMIDlet 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 17 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 18 thiết kế luồng ứng dụng MazeCanvas 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com SgvMainmenu SgvMainmenu – : , About – – SgvFlashScreenAbout – – Khi : T StartGame Menu StartGame 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 19 Hình ảnh q trình trị chơi : 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương 4: Kết đạt Môi trường cài đặt Ngôn ngữ cài đặt: Java ngơn ngữ lập trình có hiệu cao, cấu trúc độc lập nên ứng dụng cần viết cho chạy đƣợc máy ảo Java cài đặt chạy tốt hệ thống Môi trƣờng soạn thảo: NetBean IDE 6.0 Mơi trƣờng chạy chƣơng trình: Sun J2ME Wireless Toolkit 2.5 (WTK) Chạy ứng dụng Game Một số hình ảnh Game Duke & Jame Launch game Splash screen Hình 20 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Main menu Game running Write Username High Scores Table Hình 21 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kết luận hướng phát triển 3.1 : • J2ME • 2ME • MIDP 2.0 • 3.2 : • • Game cịn đơn giản • 3.3 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU THAM KHẢO JavaVietNam.org & Nhà sách Đất Việt , Lập trình Mobile Games J2ME, NXB Giao Thông Vận Tải Phƣơng Lan & Hoàng Đức Hải , Java(Tập 1),NXB Lao Động Xã Hội Addison Wesley Publisher, Programming Wireless Devices with the Java™ Platform, Micro Edition, Second Edition Sams Publisher, Java™ Micro Edition Application Development Hungry Minds, Wireless Programming with J2ME™: Cracking the code, Inc James White, Java in Small Things, Maning Publications J2ME Game Programming – by Martin Wells Wireless Game Development in Java with MIDP.2.0 - by Ralph Barbagallo J2ME Game Development with MIDP2 – by Jason Lam 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... việc lập trình di động nói chung lập trình game nói riêng dễ dàng nhiều * Lớp GameCanvas vẽ lên hình đáp ứng lại liệu nhập phần thân vịng lặp game, thay dựa vào thread vẽ nhập liệu hệ thống GameCanvas... thiết bị di động 1.3.5.2 Cách quản lý hình ĐTDĐ : Điện thoại di động khơng quản lý trực tiếp hình nhƣ máy tính mà phải thông qua đối tƣợng Display đƣợc lấy qua từ câu lệnh : Display.getDisplay(this)... Profile đƣợc định nghĩa dành riêng cho thiết bị di động thành phần J2ME, cung cấp chức cho hầu hết dòng thiết bị di động phổ biến nhƣ máy điện thoại di động máy PDA Các ứng dụng J2ME đƣợc gọi MIDlet