Công nghệ J2ME xây dựng game cờ caro online trên mobile

81 399 0
Công nghệ J2ME   xây dựng game cờ caro online trên mobile

Đ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ỜI CẢM ƠN Qua thời gian học tập rèn luyện Đại Học Công Nghệ Thông Tin & Truyền Thông - Đại học Thái Nguyên, đến chúng em kết thúc khoá học hoàn thành đồ án tốt nghiệp Để có kết em xin chân thành cảm ơn:  Các thầy cô giáo môn công nghệ phần mềm thầy, cô giáo trường giảng dạy, quan tâm tạo điều kiện thuận lợi để em học tập rèn luyện suốt thời gian theo học trường  Thầy giáo T.S Nguyễn Văn Tảo Cô giáo – Th.s Ngô Thị Lan tận tình hướng dẫn, giúp đỡ em trình học tập đặc biệt suốt thời gian làm đồ án tốt nghiệp  Em xin gửi lời cảm ơn tới gia đình, bạn bè, người động viên, giúp đỡ em nhiều thời gian học tập làm đồ án tốt nghiệp Sinh viên thực hiện: Nguyễn Văn Phong LỜI CAM ĐOAN Đồ án tốt nghiệp sản phẩm tổng hợp toàn kiến thức mà sinh viên học suốt thời gian học tập trường đại học Ý thức điều đó, với tinh thần nghiêm túc, tự giác lao động miệt mài thân hướng dẫn tận tình Thầy giáo T.S Nguyễn Văn Tảo Cô giáo – Th.s Ngô Thị Lan em hoàn thành xong đồ án tốt nghiệp Em xin cam đoan: nội dung đồ án em không chép nội dung từ đồ án khác sản phẩm đồ án thân em nghiên cứu xây dựng lên Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng bảo vệ Sinh viên cam đoan: Nguyễn Văn Phong MỤC LỤC 1.1 Giới thiệu kiến trúc J2ME 1.2 CLDC 1.2.1.Yêu cầu phần cứng: 1.2.2.Yêu cầu phần mềm: 10 1.2.3.Máy ảo Java: 10 1.2.4 Một số hạn chế: 10 1.3.MIDP: .12 1.3.1 Yêu cầu phần cứng: .12 1.3.2 Yêu cầu phần mềm 12 1.3.3 Cấu trúc MID Profile: 12 1.3.4 MIDlet Suite: 13 1.4 Cơ Midlet 15 1.4.1 Cấu trúc 15 1.4.2 Xây dựng ứng dụng MIDlet: 16 1.4.3 Lớp MIDlet: 16 1.4.4 Lớp MIDletStateChangeException: .18 1.4.5.Display 18 1.4.6 Lớp Displayable: 19 1.4.7 Quản lý kiện (event) 21 2.1.Giao diện người dùng cấp cao .26 2.1.1 Đối tượng Display, Displayable Screens 26 2.1.2.Thành phần Form Items 26 2.1.3.Form: 27 2.1.4 Item: 28 2.1.5 TextField 28 2.1.6 ChoiceGroup 29 2.1.7 Thành phần List, Textbox, Alert, Ticker 31 2.2 Giao diện người dùng cấp thấp .32 2.2.1.Các hàm API mức thấp 32 2.2.2 Lớp Canvas kỹ thuật xử lý đồ họa: 32 2.2.3 Hệ thống trục tọa độ 33 2.2.4 Đối tượng Canvas 33 2.2.4.1 Vẽ đối tượng Canvas 33 2.2.4.2 Sự kiện hành động .34 2.2.4.3 Mã phím .34 2.2.4.4 Các hành động xử lý trò chơi .35 2.2.4.5 Xác định hành động trò chơi 36 2.2.4.6 Sự kiện trỏ 37 2.2.5.Lớp Graphics 38 2.2.5.1 Hỗ trợ màu 38 2.2.5.2 Vẽ cung 40 2.2.5.3 Vẽ hình chữ nhật 41 2.2.5.4 Font chữ 41 2.2.5.5 Điểm neo 42 2.2.5.6 Vẽ chuỗi ký tự 43 2.2.5.7 Vẽ ảnh 43 2.2.5.8 Một số phương thức khác lớp Graphics: .43 3.1 Cây phân cấp Connection .45 3.2 Kết nối HTTP 46 3.3 Client Request Server Response 49 3.4 Kết nối socket Datagram (UDP) 53 3.5 Kết nối TCP socket .54 3.6 Giới thiệu media player API 56 4.1 Mô tả trò chơi 60 4.2 Phân tích thiết kế UML 60 4.2.1 Use-case Diagram 60 4.2.2 Sequence Diagram .61 4.2.3 Activity Diagram 62 4.2.4 Class Diagram 64 4.3.Chức game : 64 4.3.1.Đăng nhập 64 4.3.2.Đăng ký tài khoản 65 4.3.3.Chọn mục thông tin (Thông tin User, thông tin Bạn bè ) .66 4.3.4.Tạo Phòng cho người chơi 67 4.3.5.Cho phép người chơi Join vào phòng 68 4.3.6.Cho phép người chơi sẵn sàng .69 4.3.7.Quản lý lượt đánh (Turn) người chơi phòng 69 4.3.8.Quản lý thắng thua .70 4.3.9.Cập nhật tiền người chơi sau ván 71 4.3.10 Tạo ván chơi .72 4.3.11.Xử lý Thoát khỏi phòng 72 4.3.12.Thoát Game 73 4.4.Giao diện game 74 DANH MỤC HÌNH ẢNH Hình 1.1: Kiến trúc J2ME Hình 1.2 : kết cấu CDC CLDC Hình 3: Cấu trúc chương trình J2ME Hình 1.4: Cấu trúc chương trình MIDP Hình 1.5 Cấu trúc thiết bị MID .13 Hình 1.6 Sơ đồ MiDlet 17 Hình 1.7 Command Exit 22 Hình 1.8 Command Label .22 Hình 2.1: Đối tượng Display 26 Hình 2.2 : Cấu hình thành phần Screen 32 Hình 2.3 vẽ cung tròn 41 Hình 3.1 Cấu hình HTTPConnection 46 Hình 3.2 Kết nối UDP 53 Hình 3.3 Kết nối TCP Socket 55 Hình 4.1 Use-case Diagram 60 Hình 4.2: Sequence Diagram 61 Hình 4.3: Activity Diagram 63 Hình 4.4 Class Diagram 64 LỜI MỞ ĐẦU Cùng với phát triển nhanh chóng hệ máy tính đại với mạng internet toàn cầu làm cho nhu cầu giải trí game Mobile ngày phát triển mạnh Trong năm gần phát triển game mạnh mẽ với nhiều thể loại, nhiều phiên khác Từ phiên game control, game 2D, game 3D… với nhiều hình thức chơi khác nhau, chơi độc lập với Mobile , chơi đối kháng hay team qua mạng trợ giúp internet Giải trí game nhu cầu nhiều người không phân biệt tuổi tác giới tính Ngày việc giải trí mở rộng tới thiết bị cầm tay thông minh làm cho việc chơi game mở rộng nhiều người tham gia điều đồng nghĩa với việc phát triển game ngày phải đa dạng đáp ứng nhu cầu chơi game thiết bị khác Trong thời điểm có nhiều bạn trẻ hướng quan tâm vào việc thiết kế lập trình game Đây lĩnh vực tiềm lớn hấp dẫn người lập trình, người thiết kế người chơi Tuy nhiên việc phát game công việc tương đối phức tạp đòi hỏi nhiều kiến thức từ tri thức xã hội để phát triển cốt truyện cho game, kỹ thiết kế đồ họa lập trình với giúp đỡ công cụ đại Chính vậy, bạn yêu thích làm game nên thành lập thành nhóm để thảo luận chia sẻ học hỏi lẫn phát triển game yêu thích Tuy vấn đề làm game khó chắn làm quan tâm mức có đam mê yêu thích lĩnh vực có xu hướng phát triển mạnh đặc biệt giai đoạn internet bùng nổ Nói đến game hệ máy desktop người ta thường hay nhắc tới tên C, C++, C# ……, game ứng dụng RIA mạng người ta thường nhắc tới Flash…., Còn nói tới java người ta thường hay nhắc tới trò game dành cho thiết bị di động mobile… từ đời java ngôn ngữ tiếng với tiêu chí « Viết lần chạy nơi đâu« Do lập trình game java thiết bị động phát triển cộng động mạng, có nhiều tài liệu, diễn đàn lập thảo luận vấn đề Cho nên em nhận đề tài tìm hiểu Game Mobile CHƯƠNG : TỔNG QUÁT J2ME (Java Platform Micro Edition) 1.1 Giới thiệu kiến trúc J2ME Hình 1.1: Kiến trúc 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 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):được thiết kế để nhắm vào thị trường thiết bị cấp thấp (lowend), thiết bị nàythô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 Hình 1.2 : kết cấu CDC CLDC Đến hình dung phần cấu trúc tổng thể chương trình J2ME sau: Hình 3: Cấu trúc chương trình J2ME Nếu chương trình biên dịch với CDC, chạy máy ảo “truyền thống” mang đặc tính chương trình J2SE Nếu chương trình biên dịch với CLDC, chạy với máy ảo chuyên biệt KVM đặc tính riêng CLDC đòi hỏi Với chương trình xây dựng MIDP, có cấu trúc chuyên biệt sau: Hình 1.4: Cấu trúc chương trình MIDP 1.2 CLDC 1.2.1.Yêu cầu phần cứng: Yêu cầu tối thiểu để sử dụng CLDC sau: • 128 kilobytes để chạy JVM thư viện CLDC Không phân biệt loại nhớ sử dụng (Rom, Flash,…), nhớ thiết bị phải bảo lưu nội dung lâu dài, ngắt điện Bộ nhớ thường gọi nonvolatile memory • 32 kilobytes nhớ trống để cấp phát đối tượng (objects) Bộ nhớ thường gọi volatile memory (hay “heap”) 1.2.2.Yêu cầu phần mềm: CLDC có yêu cầu tối thiểu mặt phần mềm Hệ điều hành phải tương thích với JVM có chức quản lý ứng dụng Java, bao gồm: • Cho phép chọn kích hoạt ứng dụng • Cho phép gỡ bỏ ứng dụng khỏi thiết bị 1.2.3.Máy ảo Java: Do thiết bị di động dùng CLDC thường có tài nguyên hạn chế nên Sun đề máy ảo Java KVM phục vụ riêng cho thiết bị Máy ảo KVM thực chất phận máy ảo môi trường J2SE J2EE nên có nhiều hạn chế khác biệt so với hai phiên 1.2.4 Một số hạn chế: • Không hỗ trợ kiểu liệu float: Việc sử lý số float đòi hỏi nhiều tài nguyên xử lý, thiết bị di động cấu hình phần cứng dành riêng cho việc xứ lý số float nên J2ME khai báo biến, mảng float, hàm không nhận tham số trả số float • Phương thức finalize: Trong J2SE, khai báo phương thức finalize (tương tự phương thức destructor) Garbage Collector gọi phương thức trước hủy bỏ đối tượng, phương thức thường dùng để thu hồi tài nguyên hệ thống sockets, file handles… trước đối tượng bị “phá hủy” Tuy nhiên J2ME phương thức finalize • Error Handling: Trong J2ME hỗ trợ công cụ bẫy lỗi (chủ yếu thông qua try catch) Tuy nhiên khả xử lý lỗi J2ME hạn chế với hai phiên lại • Không hỗ trợ việc sử dụng code ngôn ngữ lập trình khác • Không hỗ trợ Reflection: Trong J2SE J2EE, dùng lớp Reflection để tìm hiểu thông số môi trường máy ảo Java thực thi • Không hỗ trợ ThreadGroup: thread quản lý riêng biệt, không lớp ThreadGroup Nếu muốn điểu khiển lúc nhiều threads dùng mảng Vector J2ME số điểm khác biệt so với J2SE J2EE, khác biệt trình Class Verify (tạm dịch 10 4.3.4.Tạo Phòng cho người chơi • Dữ liệu đầu vào : Khi người tao phòng gồm thông tin phòng • Dữ liệu đàu : Phòng tạo • Hành động : Người chơi tạo phòng • Người chơi nhập liệu vào Form tạo phòng gửi liệu lên Server , Server nhận liệu , xem User tạo phòng tồn không có phòng tồn không cho tạo , chưa tồn cho phép tạo phòng 67 4.3.5.Cho phép người chơi Join vào phòng • Dữ liệu đầu vào : gồm thông tin người chơi muốn vào phòng chơi • Dữ liệu đầu : Cho phép người chơi vào chơi không cho vào • Hành động : Người chơi xin vào phòng • Khi người chơi muốn vào phòng chơi thông tin phòng user giử lên server , Sever kiểm tra xem phòng đủ người chưa, phòng bắt đầu chưa, phòng chưa có đủ người, chưa bắt đầu cho phép người chơi vào chơi 68 4.3.6.Cho phép người chơi sẵn sàng • Dữ liệu đầu vào : Thông tin tin user chưa sẵn sàng • Dữ liệu đầu : người chơi sẵn sàng • Hành động : người chơi chọn nút sẵn sàng • Khi người chơi (không phải chủ phòng ) người chơi chọn sẵn sàng để chủ phòng user gửi thông tin đến server , server gửi liệu người chơi sẵn sàng cho người chơi phòng 4.3.7.Quản lý lượt đánh (Turn) người chơi phòng 69 • Dữ liệu đầu vào : thông tin lượt người đánh quân đánh người chơi • Dữ liệu đầu : Quân đánh • Hành động : chọn quân đánh • Khi chọn quân đánh, client gửi liệu lên server , server xử lý lượt đánh gửi cho Client phòng sau chuyển lượt đánh cho người khác phòng 4.3.8.Quản lý thắng thua • Dữ liệu đầu vào : thông số sau lượt đánh người chơi , người bị ăn Vua xét thua • Dữ liệu đầu : thống kê người thắng thua ván cờ • Hành động : người chơi ăn Vua đối phương • Ván chơi kết thúc người chơi bị ăn tướng , Khi client giử thông tin đối phương tướng người chơi người chơi chiến thắng 70 4.3.9.Cập nhật tiền người chơi sau ván • Dữ liệu đầu vào : Tiền người chơi bắt đầu chơi • Dữ liệu đầu : Tiền người chơi sau kết thúc ván • Hành động : Sau kết thúc ván • Sau xét thắng thua ván cờ Server check tiền người chơi Nếu người chơi thắng cộng tiền theo tỉ lệ cược lúc đầu , thua trừ tiền người chơi ! 71 4.3.10 Tạo ván chơi • Dữ liệu đầu vào : liệu chủ phòng yêu cầu tạo ván • Dữ liệu đầu : liệu khởi tạo ván • Hành động : Tạo ván chủ phòng • Khi ván cờ kết thúc người chơi muốn chơi ván giử thông tin lên Server , Server trả lại thông tin cho người chơi phòng - Chủ phòng gửi thông tin cho Reset ván lên Server ( id_room, id_chủ phòng, ) - Server nhận thông tin client giử sau lưu vào data reset ván gửi liệu cho Server 4.3.11.Xử lý Thoát khỏi phòng • Dữ liệu đầu vào : liệu user phòng • Dữ liệu đầu : người chơi thoát khỏi phòng • Hành động : chọn thoát khỏi phòng • Khi người chơi thoát khỏi phòng client giử thông tin để server remove User người khỏi phòng 72 - Người chơi giử Messenger gửi thông tin lên server( id_room, tên user , id_user) - Server nhận thông tin sau xóa người chơi khỏi người chơi phòng tồi giử thông tin cho Client - Client phòng game server load hết thông tin lên phòng tồn cho User 4.3.12.Thoát Game • Dữ liệu đầu vào : thoát khỏi hệ thống • Dữ liệu đầu : đóng data, xóa Session • Hành động : tắt hệ thống • Khi người chơi thoát khỏi hệ thống tắt ứng dựng game client giử lên Server , server đóng kết nối , remove Session liên quan đến User 73 4.4.Giao diện game 74 75 TỔNG KẾT Hiện nay, lập trình điện thoại di động lĩnh vực thu hút nhiều lập trình viên Việc xây dựng ứng dụng thiết bị thiết bị nói chung điện thoại di động nói riêng cần thiết phát triển công nghệ di động Trong phạm vi đồ án, em trình bày phần công nghệ J2ME kỹ thuật lập trình cho điện thoại di động Những phần nghiên cứu, tìm hiểu qua trình học tập làm việc Hi vọng đề tài trở thành công cụ tham khảo có ích cho người tham gia tìm hiểu công nghệ J2ME Tuy vậy, hạn chế trình độ thiết bị thời gian nên em tránh khỏi vướng mắc sai sót trình tìm hiểu, nghiên cứu Em mong đánh giá chỉnh sửa thầy hướng dẫn bạn sinh viên đọc qua đồ án Em xin chân thành cảm ơn Thái nguyên 1/05/2011 Nguyễn Văn Phong Lớp CNPM 76 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Giáo viên hướng dẫn Bộ môn (ký) (duyệt) 77 Phụ Lục A :Tài Liệu Tham khảo Tài liệu tiếng anh 1:>Beginning J2ME, 3rd Edition ,APRESS ,By Jonathan Knudsen , Sing Li 2:>Enterprise_J2ME_Developing_Mobile_Java_Applications , Prentice Hall, Michael Juntao Yuan Tài liệu tiếng việt 1:>Java Mobile Tập ,Biên soạn :Phương Lan 2:> Lap trinh di dong voi J2ME (Khoa CNTT DHKHTN) Diễn đàn trao đổi Java J2ME 1:> http://www.javavietnam.org 2:> http://www.java-tips.org 3:> http://mobilesprogramming.wordpress.com 78 Phụ Lục B: Hướng Dẫn Cài đặt Và Sử Dụng Wireless Toolkit 2.5.2 &NetBean 6.9.1 Lập trình J2ME Bước 1: Download JDK +NetBean 6.9.1 +Wireless Toolkit 2.5.2 trang Web Sun Bước 2: Cài đặt JDK Cài Netbean 6.9.1 cài đặt Wireless Toolkit 2.5.2 Bước 3: Sử dụng NetBean 6.9.1 để lập trình J2ME Bật NetBean 6.9.1 vùa cài đặt xong lên Sau chọn vào newProjectsChọn JavaME  Mobile Application 79 Rồi bấm next  nhập tên Project vào ta tạo xong Project Bây bắt đầu lập trình ta chỉnh thông số Project cách chuột phải vào Project chọn Properties Ta chỉnh thông số cần thiết thư viện , Driver Configuration, Driver Profile Sau viết xong code cho chạy chương trình cách bấm chuột phải  chọn Run Bước Có thể tích hợp Wireless Toolkit 2.5.2 vào Netbean Lý đơn giản chạy ứng dụng Wireless Toolkit 2.5.2 nhẹ mà Button chuẩn chạy Mobile thật Bấm chuột phải vào Project  chọn PropertiesPlatFormManager Emulators 80 Sau chọn Add platform  Chọn dòng Java ME PlatForm Emutors Và bấm next  chọ vào WTK bấm Finish 81 ... MIDlet-Name: Todo List MIDlet-Version: 1.0 MIDlet-Vendor: Core J2ME MIDlet-1: TodoList, /images/Todo.png, Todo.TodoMIDlet MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0 File... làm cho nhu cầu giải trí game Mobile ngày phát triển mạnh Trong năm gần phát triển game mạnh mẽ với nhiều thể loại, nhiều phiên khác Từ phiên game control, game 2D, game 3D… với nhiều hình thức... Icon MIDlet (có thể không cần) MIDlet-Jar-URL Tên lớp nạp thực thi MIDlet Địa URL file Jar Có MIDlet-Jar-Size Kích thước file Jar tính byte Có MIDlet-Data-Size Kích thước tối thiểu tính byte

Ngày đăng: 23/04/2017, 10:12

Từ khóa liên quan

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

Tài liệu liên quan