Hệ thống và tính khả chuyển (portability):

Một phần của tài liệu Xây dựng game 3D chém trái cây trên Windows và ĐTDĐ sử dụng HĐH Android. (Trang 42 - 46)

CHƯƠNG 3 PHÂN TÍCH TRÒ CHƠI

3.1. Hệ thống và tính khả chuyển (portability):

3.1.1. C/C++ và thư viện

Để đạt được yêu cầu đặt ra của bài toán, là hệ thống có thể chạy được trên cả hai Hệ điều hành: Windows, Android . Và trong quá trình làm không cần mất nhiều thời gian, chúng ta cần phải phân tích kỹ lưỡng và đề xuất phương án phù hợp để tiến hành đề ra giải pháp và xây dựng bài toán.

Nhận xét:

Cả hai hệ điều hành đều cung cấp môi trường lập trình trên ngôn ngữ ANSI C/C++.

 Windows: Hổ trợ sẵn.

 Android: JNI từ Android 1.5, Native Activity từ Android 2.3.  Cả hai hệ điều hành đều cung cấp thư viện OpenGL ES 2.0.

 Android: Từ phiên bản 2.1.

 Windows: Thông qua bộ giả lập OpenGL ES 2.0 của PowerVR.

Môi trường C/C++ trên cả hai hệ điều hành tương đối giống nhau. Tuy nhiên số lượng các thư viện hổ trợ khác nhau, do đó chúng ta chỉ sử dụng các thư viện chuẩn mà cả hai đều hỗ trợ.

Có thể dễ dàng chuyển một thư viện C chuẩn lên cả hai hệ điều hành (trong trường hợp ứng dụng này, tôi đã chuyển thành công thư viện LIB PNG – hổ trợ đọc và xử lí tập tin hình ảnh PNG trong C/C++).

SVTH: Nhữ Thị Trà My- 08CNTT02 Trang 43

 Do đó, trong quá trình lập trò chơi, chúng ta nên sử dụng hợp lí các công cụ, thư viện, mã nguồn và lập trình một cách tối ưu để có thể sử dụng lại trên cả hai nền tảng khác nhau này.

3.1.2. Phân tích tính khả chuyển (portability) của các thành phần trong trò chơi

Thông thường, trong một trò chơi (tức là một ứng dụng) sẽ có các thành phần như sau: - Vòng lặp trò chơi: là trung tâm của trò chơi, quản lí vòng đời, trạng thái của trò chơi. - Logic: là phần xử lí của trò chơi, xử lí thuật toán, trí thông minh nhân tạo, tương tác với người chơi.

- Đồ Họa: là phần thể hiện của trò chơi.

- Âm thanh: là phần không thể thiếu của trò chơi, giúp trò chơi trở nên sinh động hơn. - Nhập: đối với các thiết bị Android thì tương tác chủ yếu thông qua cảm ứng chạm (touch screen), giúp người dùng tương tác với trò chơi.

- Giao diện ứng dụng: là bộ khung tương tác với nền tảng của ứng dụng: cho phép ứng dụng khởi chạy, tạm ngưng, ngưng, và xử lí các sự kiện liên quan.

Đối với các thành phần trên, ta có bảng thực tế như sau:

Nền tảng / Yếu tố Windows Android Vònglặp trò chơi Có thể cài đặt giống nhau

trên cả hai hệ thống do đều viết bằng C/C++.

Có thể cài đặt giống nhau trên cả hai hệ thống do đều viết bằng C/C++.

Logic Tương tự, ta có thể cài đặt giống nhau trên cả ba hệ thống.

Tương tự, ta có thể cài đặt giống nhau trên cả ba hệ thống.

Đồ Họa - Direct X.

- OpenGL.

OpenGLES (thông qua bộ giả lập).

- OpenGL ES 1.1.

OpenGL ES 2.0. (C/C++: từ Android 2.1; Java: từ Android 2.2).

SVTH: Nhữ Thị Trà My- 08CNTT02 Trang 44

Âm thanh Có thể sử dụng các bộ thư viện âm thanh.

- MediaPlayer. - SoundPool. - Open SL ES (Từ Android 2.2). Hổ trợ các định dạng: midi, wav, m4a, mp3 … Nhập Nhận thông điệp từ windows. Từ View – phương thức OnTouchEvent(). Không hổ trợ nhận sự kiện cảm ứng trực tiếp từ JNI.

Giao diện ứng dụng: main()  tạo cửa sổ và tương tác.

- Activity viết bằng Java. Native activity viết bằng C/C++. (từ Android 2.3). Xuất nhập tập tin Dùng thư viên <stdio.h>. Đọc tập tin từ res/raw qua

JNI.

Bảng 3. Thực tế của các thành phần trong trò chơi trên 3 hệ thống

Từ bảng thực tế trên, ta có bảng nhận xét sau: Yếu tố Tính Khả Chuyển Giải Pháp Vòng lặp trò

chơi  Cài đặt bằng C/C++.

Logic Trò Chơi  Cài đặt bằng C/C++. Đồ Họa

 Dùng OpenGL ES 2.0. API 2.0 mạnh mẽ hơn nhiều so với 1.1 và hầu hết các thiết bị hiện tại đều hổ trợ.

Âm thanh

 Không có một chuẩn chung về âm thanh. Tuy nhiên ở mức độ đơn giản, chúng ta không xử lí nhiều tới âm thanh (âm thanh nổi, v.v…).

- Trên windows: không cài đặt âm thanh. - IOS: Sử dung AVAAudioPlayer.

SVTH: Nhữ Thị Trà My- 08CNTT02 Trang 45

- Android OS: Sử dụng MediaPlayer. Nhập

 Tương tự, ta không có một API chung để nhận cảm ứng, do đó phần này ta phải viết riêng trên từng hệ thống.

Giao diện ứng

dụng  Phần này ta phải viết riêng trên từng hệ thống.

Xuất nhập tập

tin  Phần này ta phải viết riêng trên từng hệ thống.

Bảng 4. Bảng nhận xét các thành phần trò chơi trên cả 3 hệ thống.

Với lựa chọn trên, trò chơi của chúng ta sẽ chạy được trên các nền tảng với cấu hình như sau:

Windows: 32 bit, card đồ họa hỗ trợ OpenGL ES 2.0. Android: phiên bản 2.1 trở về sau.

Dựa vào bảng phân tích trên, ta tiến hành chia phần cài đặt ra các phần sau. Phần có thể sử dụng chung:

Chung cho tất cả các trò chơi: các thành phần chung cho toàn bộ các trò chơi. Riêng biệt của trò chơi hiện tại: ví dụ thuật toán, logic, ý tưởng trò chơi.

Phần phải cài đặt riêng: đây là phần mình phải cài đặt riêng cho từng hệ thống, tuy nhiên, các phần này đơn giản hơn nhiều so với các phần còn lại, chúng ta sẽ thiết kế để cài đặt phần này có thể sử dụng chung cho toàn bộ các trò chơi.

SVTH: Nhữ Thị Trà My- 08CNTT02 Trang 46

Hình 19. Biễu diễn quá trình xây dựng và chuyển trò chơi.

Ta sẽ ưu tiên xây dựng các thành phần chung nhất, sau đó hoàn thành trò chơi trên windows. Nơi chúng ta được sự trợ giúp của các công cụ và môi trường quen thuộc giúp chúng ta cài đặt và gỡ rối một cách dễ dàng. Sau đó chúng ta sẽ thực hiện đưa lên các nền tảng khác một cách dễ dàng.

Một phần của tài liệu Xây dựng game 3D chém trái cây trên Windows và ĐTDĐ sử dụng HĐH Android. (Trang 42 - 46)

Tải bản đầy đủ (PDF)

(83 trang)