1 / 43

Lập Trình Game Di Động Với J2ME

Lập Trình Game Di Động Với J2ME. Nhóm sinh viên IT2: Tô Trọng Hiến Nguyễn Việt Phương Nguyễn Ngọc Dũng Phạm Trung Kiên. Mục lục. Cơ Sở Lý Thuyết J2ME Game API Tổng Quan làm game, Kịch Bản Game Xây dựng mô hình UML

Download Presentation

Lập Trình Game Di Động Với J2ME

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lập Trình Game Di Động Với J2ME Nhóm sinh viên IT2: Tô Trọng Hiến Nguyễn Việt Phương Nguyễn Ngọc Dũng Phạm Trung Kiên

  2. Mục lục • Cơ Sở Lý Thuyết • J2ME Game API • Tổng Quan làm game, Kịch Bản Game • Xây dựng mô hình UML • Lập trình Game J2ME trong Netbeans • Giới thiệu luật chơi Kết luận Tài liệu tham khảo

  3. I. Cơ Sở Lý Thuyết • Những hạn chế của lập trình di động • Các loại bộ nhớ: • Heap memory • RMS (Record Management System) • Sự phân mảnh • Sự đa dạng về giao diện điện thoaị

  4. Tổng quan về ngôn ngữ J2ME • Sự phổ biến của J2ME • Nền tảng của J2ME • Căn bản lập trình J2ME

  5. Sự phổ biến của J2ME

  6. Nền tảng J2ME Như vậy J2ME gồm các tầng sau: • Tầng phần cứng thiết bị • Tầng máy ảo Java • Tầng cấu hình • Tầng hiện trạng

  7. Quá trình xây dựng ứng dụng

  8. Căn bản lập trình J2ME Bộ MIDlet: • MIDlet có 3 phương thức: startApp(), pauseApp(), và destroyApp(). importjavax.microedition.midlet.*; public class MIDletExample extends MIDlet{ public void MIDletExample() { } • public voidstartApp() { } • public voidpauseApp() { } • public voiddestroyApp(boolean unconditional) { } }

  9. Các trạng thái và vòng đời của Midlet

  10. API của J2ME

  11. II. J2ME Game API javax.microedition.lcdui.game. • Lớp Canvas • Lớp Layer • Lớp Sprite • Lớp TiledLayer • Lớp LayerManager

  12. J2ME Game API • GameCanvas: kế thừa từ lớp Canvas, có thể coi đây là màn hình điện thoại • Layer: ít được sử dụng trực tiếp nhưng được kết bởi lớp Sprite và TiledLayer • Sprites: lớp để tạo các nhân vật và các đối tượng chuyển động • TiledLayer: lớp để tạo các khung cảnh khác nhau của game và tạo bản đồ • LayerManager: lớp quản lý các Sprites và các TiledLayer

  13. Animation Int[] frameSequence = { 0, 1, 2, 3, 4, 5 ,6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; Chuỗi ảnh tạo chuyển động cho Sprire

  14. TiledLayers • Một số khung cảnh trong game Alpha Wing

  15. Xây dựng background • Một ảnh gồm hai tile

  16. Tile Studio (TS) • Chức năng chính của TS là: • Vẽ các tile set (bộ các tile) có kích thước đa dạng • Vẽ bản đồ dựa vào các tile set đã thiết kế • Export ra ảnh (.bm; .png) để dùng cho game • Vẽ các nhân vật, hỗ trợ làm ra các nhân vật chuyển động • Đặc biệt phần mềm chỉ có khoảng 600 Kb và hoàn toàn miễn phí.

  17. III. Tổng Quan Và Kịch Bản Game • Tổng quan làm game • Kịch bản game

  18. Tổng quan về làm Game Phân loại game: • Action game: Game đua xe Harley. • Game Puzzle: game Tetris • Adventure Game: Game Diablo • Strategy Game: Warcraft • Traditional Game: đánh bài, xúc sắc..

  19. Những đòi hỏi của một game Tùy vào từng loại game mà có những đòi hỏi này khác nhau về mức độ: • Fun – Chơi game phải vui nhộn • Addictive – Game phải có tính cuốn hút • Compelling – Game có tính cạnh tranh • Commercial successful – Cuối cùng game phải thành công trên thị trường

  20. Các nhân vật trong game • Player (Người chơi) có những chức năng sau: • Di chuyển trái phải lên xuống • Quay tại chỗ theo hai chiều – để thiết lập chế độ bảo vệ. • Gặp địch trong bán kính bắnthì có khả năng bắn đạn theo hai chế độ: tự động hay nhấn phím. • Turret (pháo) – nhân vật này không di chuyển. • Bắn Player nếu player nằm trong bán kính bắn của nó

  21. Các nhân vật trong game (2) • Black • Di chuyển trái phải lên xuống • Đi theo quỹ đạo bất kì trong bản đồ • Gặp Player trong bán kính bắnthì bắn • Fighter (Nhân vật này sẽ bổ xung sau này) • Di chuyển trái phải lên xuống • Đi và tìm Player nếu player nằm trong vùng phát hiện của nó • Gặp Player trong bán kính bắn thì bắn

  22. IV. Xây dựng mô hình UML • Use Case Diagram • State Diagram • Class Diagram • Một số luồng quan trọng

  23. Use Case Diagram

  24. State Diagram

  25. Class Diagram

  26. V. lập trình Game J2ME trong Netbeans • GameDesign • VisualMIDlet

  27. Ảnh dùng làm game Ảnh đươc phân chia thành các tile cùng kích thước

  28. Nhân vật chuyển động • Tạo nhân vật chuyển động xang phải

  29. Tạo các TiledLayer

  30. Tạo các tile động trên TiledLayer

  31. Tạo bản đồ • Tạo scene từ các TileLayer và các Sprite

  32. VI. Giới thiệu luật chơi Nhiệm vụ: • Câu chuyện bắt đầu khi máy bay chiến đấu của bạn được giao nhiệm vụ đặc biệt là xung kích vào hang ổ quân địch. Nhiệm vụ là phải tiêu diệt hết số pháo của địch để quân ta có thể vào tiếp ứng. • Bạn phải dè chừng với pháo vì chúng có sức công phá, tầm bắn rất xa, mạng lớn, tuy chỉ có nhược điểm bắn chậm và không di chuyển. Hãy lợi dụng điểm yếu đó vì bạn có tốc độ rất tốt. Tuy nhiên phải luôn luôn cảnh giác trước máy bay của địch . Chúng rất đông và luôn rình rập khắp nơi. Một điều không may là bạn sẽ không thể “xử lý” chúng. Luôn nhớ mục tiêu của bạn là phải diệt hết pháo. Chúc bạn thành công!

  33. Cách chơi • Game có 3 loại bản đồ tương rộng hẹp khác nhau (mặc định là bản đồ trung bình). • Game cho phép chọn chế độ autofire trong Settings. Nếu chọn chức năng này Player sẽ tự bắn khi gặp quân địch (giống với quân địch hễ gặp Player thì bắn).

  34. Một số thông tin về game

  35. Một số hình ảnh trong game

  36. Một số hình ảnh trong game (2)

  37. VII. Kết luận • Những kết quả đạt được • Những hạn chế • Hướng phát triển

  38. Những kết quả đạt được Về kiến thức • Đã nắm bắt được cơ chế hoạt động của máy ảo Java trên điện thoại di động, nhờ đó hoàn thiện kỹ năng xây dựng một ứng dụng bằng ngôn ngữ J2ME. • Học được những kiến thức cơ bản về làm game cũng như lập trình thực tế trên ngôn ngữ J2ME. • Hiểu được những khái niệm cơ bản về ngôn ngữ UML. Về chương trình • Kích thước file JAR là 106 KB, phù hợp với hầu hết các dòng điện thoại có hỗ trợ MIDP 2.0. • Chương trình chỉ sử dụng những thư viện cơ bản của J2ME nên có thể chạy trên nhiều dòng máy

  39. Những hạn chế • Kích thước của chương trình chưa được tối ưu hóa do các nguyên nhân: • Chưa tránh khỏi lối lập trình hướng đối tượng của J2SE. • Chưa có nhiều thời gian để tối ưu hóa các đoạn mã • Chưa có âm thanh cho game – chúng em mới chỉ tìm hiểu công cụ Adobe Audition xử lý âm thanh khá tốt. Nhưng vấn đề tìm dữ liệu bộ âm thanh và cho âm thanh vào game đòi hỏi nhiều thời gian và tỉ mỉ.

  40. Hướng phát triển • Với 6 tuần tìm hiểu và code, em mới chỉ bắt đầu bước vào thế giới làm game di động. Hướng phát triển sau này của chúng em là nghiên cứu thêm các kỹ thuật làm game như tạo âm thanh, tạo game 3D, và tìm hiểu những công cụ mạnh hơn cho việc xây dựng đồ họa của Game.

  41. Tài liệu tham khảo • [1]. J2ME Game Programming – by Martin Wells • [2]. Wireless Game Development in Java with MIDP.2.0 - by Ralph Barbagallo  • [3]. J2ME Game Development with MIDP2 – by Jason Lam

More Related