1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát triển ứng dụng trên Android Xây dựng game bắn súng đơn giản

19 354 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 748,37 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

updatePhysicstime,deltaTime : Hàm dùng để update lại vị trí và trạng thái của tất cả đối tượng sau môi frame.. time : xác định thông qua đôê khó của game, dùng để thay đổi trạng thái của

Trang 1

CAO HỌC KHÓA 22



Báo cáo đồ án môn Phát triển ứng dụng trên Android

ĐỀ TÀI

Xây dựng game bắn súng đơn giản

Sinh viên thực hiện

Nguyễn Phan Minh Phúc – 1011047

Trang 2

MỤC LỤC

Trang 3

Tổng quan về môi trường Android

Android là hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google phát triển dựa trên nền tảng của Linux Bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do

sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G, ) (Xem thêm: Android Compatibility Definition Document )

Các nhà sản xuất có thể tự do thay đổi phiên bản Android trên máy của mình một cách

tự do mà không cần phải xin phép hay trả bất kì khoản phí nào nhưng phải đảm bảo tính tương thích ngược (backward compatibility) của phiên bản chế riêng đó

Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware và một số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viên các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java

Những tính năng mà nền tảng Android hổ trợ:

Application framework: Cho phép tái sử dụng và thay thế các thành phần sẳn có của

Android

Dalvik virtual macine: Máy ảo java được tối ưu hóa cho thiết bị di động.

Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa trên WebKit engine

Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES 1.0 SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc.

Trang 4

NÔÔI DUNG BÁO CÁO

Trang 5

1 Các kỹ thuâÔt sử dụng

- Xây dựng giao diêên các activity menu:

o Sử dụng cái layout cơ bản :

 LinearLayout : sử dụng trong hầu hết các activity

 TableLayout : sử dụng trong activity settingScreen

 ScrollView : sử dụng trong activity settingScreen

o Sử dụng các FormWidget như :

 Button

 ToggleButton

 TextView

- Xây dựng giao diêên game:

o SurfaceView để tạo context

o Bitmap để hiển thị hình ảnh

o Thread để tạo các chuyển đôêng

- Xây dựng hình ảnh đồ họa:

o Adobe Photoshop

o Microsoft Paint

2 Các thuâÔt toán sử dụng

activity

i Nén đối tượng gameplay vào bundle thông qua lêênh :

bS.putSerializable("GamePlay",gameplay);

ii Sử dụng hàm :

startActivity(i) để chuyển đối tượng và startActivityForResult(i,1) để chuyển và nhâên giá trị trả về, trong trường hơp này đối tượng gởi và trả về đều là gameplay

Trang 6

2.2 Tạo chuyển đôêng của nhiều đối tượng:

Quá trình chính bao gồm 3 hàm được gọi trong thread :

iii onDraw() : Vẽ ra tất cả các đối tượng tại thời điểm đó, bao gồm:

1 Vẽ các loại đối tượng vụ nô

2 Vẽ các đối tượng hình học (ếch, rắn, cua)

3 Vẽ đối tượng viên đạn

4 Vẽ máu của đối tượng ếch

5 Vẽ thanh menu phía dưới cùng các button ( sound, pause, back)

iv updatePhysics(time,deltaTime) : Hàm dùng để update lại vị trí và trạng thái của tất cả đối tượng sau môi frame Với 2 đối sô

1 time : xác định thông qua đôê khó của game, dùng để thay đổi trạng thái của đối tượng con rắn

2 deltaTime : 1 đối số quan trọng, dùng để lưu trữ thời gian của 1 frame để xác định tiếp vị trí của các đối tượng mà không cần quan tâm đến tốc đôê của thiết bị

VD: Tốc đôê di chuyển của đối tượng của bạn là 5pixel ( x = x + 5) trong 1 frame(thời gian 1 vòng lăêp while) Vâêy nếu game được chạy trên thiết bị có tốc đôê là 60 frame/second (FPS) thì trong 1s đối tượng sẽ đi được 5*60 = 300 pixel Trong khi đó nếu game được chạy trên thiết bị có tốc đôê la 30FPS thì môi giây đối tượng sẽ chỉ đi được là 5*30 = 150pixel Như vâêy gây ảnh hưởng đến cách game-play rất nhiều Từ đó ta đưa them công thức của deltaTime:

deltaTime = TimeCurrentFrame - TimeLastFrame tức là thời gian của 1 frame của thiết bị đó

khi đó, nếu muốn đối tượng của bạn duy chuyển 50pixel / 1s bạn chỉ cần : x = x + 50*deltaTime Khi đó, cac thiết bị đều di chuyển như nhau, chỉ khác ở chổ, thiết bị có số FPS cao hơn thì hình ảnh sẽ mượt mà hơn

Trang 7

3 checkShots: Hàm dùng để kiểm tra va chạm và xử lý khi va chạm,có thể chuyển đối tượng hình học thành đối tượng vụ nô ( sau quá trình nô thì sẽ không sử dụng đối tượng đó nửa ), bao gồm :

a Kiểm tra các đối tượng viên đạn và các đối tượng đầu rắn,đuôi rắn, cua và set hp của các đối tượng đó, nếu hp =

0 thì chuyển thành đối tượng vụ nô Măêc nhiên đối tượng viên đạn sẽ chuyển thành đối tượng vụ nô sau khi va chạm

b Kiểm tra giữa đối tượng ếch và đối tượng rắn,cua

ếch đến điểm vừa touch:

Sử dụng thuâêt toán vẽ đường thẳng DDA của C Mô tả thuâêt toán như sau : ta sẽ vẽ từng pixel nối dài từ điểm bắt đầu đến điểm kết thúc Và 1 đường thằng được vẽ sẽ là tổng hợp của tất cả các pixel đã vẽ từ điểm đầu đến điểm cuối Áp dụng vào đồ án, thay vì ta vẽ từng pixel thì ta sẽ cho đối tượng viên đạn di chuyển theo từng pixel và điểm đầu là tọa đôê của đối tượng ếch, điểm cuối sẽ là tọa đôê của điểm ta vừa touch vào

Áp dụng lại thuâêt toán DDA nhưng thay đổi điểm đầu là tọa đọ của đối tượng rắn, điểm cuối là tọa đôê của đối tượng ếch

Trang 8

2.5 Giới hạn di chuyển của các đối tượng lại là trong màn hình và chế đôê HARD:

Sử dụng thuâêt toán đơn giản

if(x>width || x<0) Vx = -Vx // doi chieu x if(y>height || y<0) Vy = -Vy // doi chieu y

Và thay đổi thêm 1 số thông số để đáp ứng được yêu cầu của đề bài ( như công them chiều rông, chiều dài của đối tượng v.v ) , nhưng k đáng kể, chủ yếu vẫn

là sử dụng thuâêt toán trên

Đối với chế đôê HARD, tức là giới hạn của đối tượng chay ra quá ngoài màn hình,

ta chỉ cần làm như thuâêt toán trên, chỉ cần chỉnh width và height lớn hơn màn hình

Sau khi qua hàm checkShots đã nói ở trên thì đối tương sẽ có thể bị chuyển thành đối tượng vụ nô, khi đó thì trong hàm onDraw sẽ có 1 phần riêng dùng để vẽ các đối tượng vụ nô, và thực chất là thay đổi hình ảnh trong bitmap của các đối tượng vụ nô đó, và hình ảnh về vụ nô đã được cung cấp sẵn trong res/Drawable

Lưu ý là ta có 3 loại vụ nô, và đối với từng loại vụ nô sẽ được các hàm hô trợ để chuyển đổi hình ảnh đúng với các bước của vụ nô thông qua câu lêênh switch để hình ảnh không bị lôên xôên Và khi đã chuyển đổi hết các bước của vụ nô, ta sẽ không sử dụng đối tượng đó nửa

VD về hình ảnh đối với vụ nô của đối tuọng ếch khi va chạm với đối tượng cua hoăêc rắn

Trang 9

3 Sơ lược qua các Class chính của game

o bitmap để lưu trữ hình ảnh

o 2 class con : Speed và Coordinates

Speed: gồm 2 thuôêc tính x và y để lưu giữ tốc đôê và chiều của đối tượng Coordinates: gồm 2 thuôêc tính x và y để lưu giữ tọa đôê

o Biến Int _typeExplesion: để lưu trữ dạng vụ nô

o Biến Int _explosionStep: để lưu trữ các bươc nô ( cho viêêc gán hình ảnh vụ

nô )

Trang 10

3.2 Class Crab:kế thừa lại Class GraphicObject và them vào 2 thuôêc tính:

o Biến Int _hpCarb : số máu của đối tượng

o Biến Bool _collision : trạng thái vụ nổ của đối tượng

o Biến Int _hpTail : số máu của 1 đuôi rắn ( rắn bao gồm nhiều đuôi)

o ArrayList<GraphicObject> body : dùng 1 mảng các graphics object làm thân cho đối tượng rắn, số lượng của mảng là số lượng đuôi của rắn

o Move : di chuyển cả đối tượng rắn ( bao gồm cả mảng body)

o getHead : lấy ra GraphicObject ở vị trí đầu tiên của mảng body ( có thể hiểu

là đầu rắn )

o Draw : vẽ cả đối tượng rắn ( cả mảng body)

Kế thừa Thread, dùng để tạo chuyển đôêng cho game Bao gồm:

o Biến bool _run: chỉ trạng thái hoạt đôêng của thread

o Biến bool _pause: chỉ trạng thái pause của thread

o Biến float _deltaTime: lưu thời gian giữa 1 frame

o Hàm run: tạo 1 vòng lăêp vô hạn ( dừng khi run = false) để update và vẽ game canvas

Trang 11

3.5 Class Panel:

Cass chính, điều khiển tất cả các hoạt đôêng của game, khởi tạo tất cả các class chính có lien quan trong game và các phương thức để game hoạt đôêng, bao gồm:

o Constuctor : khởi taọ và truyền giá trị cho các đối tượng ở các lớp khác

o Hàm onDraw : vẽ tất cả các đối tượng hình học ( GraphicObjects ) với hình ảnh và tọa đôê hiêên tại được lưu trong môi đối tượng

o Hàm UpdatePhysics : Hàm dùng để update lại vị trí và trạng thái của tất cả đối tượng sau môi frame

o checkShots: Hàm dùng để kiểm tra va chạm( thông qua hàm checkcollison )

và xử lý khi va chạm

o điều khiển các sự kiêên ontouch và onkey để update các đối tượng hình học

Trang 12

4 Các giao diêÔn cơ bản và hướng dẫn sử dụng

Menu chính của game

Thông tin về Game Giúp đỡ, hướng dẫn game

Vào game

Tùy chỉnh: máu, số quái

Thoát Chọn độ khó cho game

Trang 13

Giao diện SETTING

Trang 14

Giao diện chơi game

Sound: On/Off Thoát ra menu Pause/Play game

Quái vật rắn khi bình thường (mắt màu trắng và không có nanh)

Người chơi: sử dụng các

phím DPAD để di chuyển

Máu của người chơi

Quái vật cua

Trang 15

Giao diện chơi game

Đạn bắn ra: người chơi nhấp vào màn hình ở điểm muốn bắn

Quái vật chuẩn bị nổi điên: mắt màu đỏ,có nanh và chuẩn bị lao vào người chơi Hiệu ứng đạn nổ khi bắn trúng

Trang 17

Giao diện chơi game

WIN LOSE

Trang 19

Giao diện HELP GAME PLAY

Ngày đăng: 15/07/2015, 19:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w