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

GAME STAR WARS

22 454 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Game Star Wars
Tác giả Lê Đức Tiên, Lương Hữu Minh
Người hướng dẫn ThS. Phan Nguyệt Minh
Trường học Đại Học Quốc Gia TP.Hồ Chí Minh - Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Báo cáo
Năm xuất bản 2011
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 22
Dung lượng 316,42 KB

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

Nội dung

Hiện nay, công việc lập trình trên thiết bị di động ngày càng phát triển

Trang 1

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA : CÔNG NGHỆ PHẦN MỀM

BÁO CÁO MÔN HỌC : LẬP TRÌNH NHÚNG CĂN BẢN

GAME STAR WARS

Giảng viên hướng dẫn : ThS PHAN NGUYỆT MINH Sinh viên thực hiện : LÊ ĐỨC TIÊN, LƯƠNG HỮU MINH

Lớp : CNPM04 Khóa : 04

TP Hồ Chí Minh, tháng 12 năm 2011

Trang 2

công nghệ đã ra đời giúp chúng ta hiện thực hóa ý tưởng của mình lên trên các thiết bịnhỏ gọn ấy Ngoài công nghệ NET Compact Framework của Microsoft, có thể nói côngnghệ Java nói chung và J2ME (Java 2 Micro Edition) nói riêng do Sun phát triển đã tạonên một bước ngoặt lớn cho nhân loại Giờ đây, chúng ta có thể làm hầu như mọi thứtrên chiếc di động bé nhỏ của mình Và giải trí cũng là một trong những nhu cầu thiếtyếu mà chiếc điện thoại di động có thể đáp ứng cho người sử dụng Cùng với sự pháttriển của công nghệ game trên máy tính thì game trên di động cũng ngày một pháttriển.Hơn nữa, game cũng chính là một thành phần cơ bản nhất cho mọi chiếc điện thoại

di động Do vậy, để tạo nên các game hay và hấp dẫn thì việc lập trình game trên di động

là một công việc tất yếu Nhận thức được điều đó, nhóm chúng em đã phát triển một

game nho nhỏmang tên “Game STAR WARS”.

Cấu trúc của bài báo cáo gồm có 5 phần chính :

- Chương 1 – Giới thiệu.

- Chương 2 – Phân tích.

- Chương 3 –Thiết kế.

- Chương 4 – Cài đặt và thử nghiệm.

- Kết luận Nêu lên những vấn đề, kết quả đã đạt được và hướng phát triển

trong tương lai

Trang 3

LỜI CẢM ƠN

Đầu tiên, chúng em xin chân thành cảm ơn côPhan Nguyệt Minh đã truyền đạtcho chúng em những kiến thức quý báu trong môn “Lập trình nhúng căn bản” để chúng

em hoàn thành bài báo cáo này

Chúng em cũng xin gửi lời cảm ơn chân thành đến các thầy cô trong trường ĐHCông Nghệ Thông Tin đã tận tình giúp đỡ chúng em trong thời gian học vừa qua

Do kiến thức có hạn nên bài làm của chúng em không tránh khỏi nhiều thiếu sót.Chúng em rất mong nhận được sự đóng góp quý báu của các thầy cô

Trang 5

MỤC LỤC

Trang 6

CHƯƠNG 1 – GIỚI THIỆU

1.1. Giới thiệu về đề tài

Hiện nay, lập trình game trên di động là một công việc khá khó khăn vàvấtvả.Với số lượng code lớn và phức tạp thì đòi hỏi người lập trình phải tập trung cao.Lập trình game trên di động khó khăn hơn lập trình trên PC rất nhiều do đặc tính về phầncứng của chiếc điện thoại thường rất hạn chế như bộ nhớ ít, bộ vi xử lý chậm, … Vì thế,công việc tối ưu code chương trình, cấp phát và thu hồi bộ nhớ hợp lý để cho game cóthể chạy tốt trên thiết bị thật luôn là vấn đề được quan tâm hàng đầu

Phát triển game trên di động là một công việc rất cần thiết trong cuộc sống Game

di động cũng góp phần nào đó làm cho thế giới xung quanh thêm sinh động, giúp chomọi người giải trí hoặc tìm cảm giác mới mẻ

Game STAR WARS của nhóm chúng em lấy ý tưởng trong bộ phim cùng tên

“Star Wars”và game bắn máy bay Khi chơi bạn sẽ nhập vai vào chiến binh Jedi lái chiếc

phi thuyền của mình chiến đấu với quân xâm lược định thôn tính hành tinh của bạn Bạncần phải vượt qua các thử thách và tiêu diệt chỉ huy của địch để hoàn thành nhiệm vụbảo vệ hành tinh của mình

1.2. Mục tiêu

Mục tiêu của nhóm chúng em là phát triển một ứng dụng đơn giản có thể chạy tốttrên chiếc điện thoại di động Và ứng dụng game chính là sự lựa chọn của nhóm chúngem

Với công nghệ J2ME, kiến thức lập trình hướng đối tượng và sự giúp đỡ tận tìnhcủa cô, nhóm chúng em đã hoàn thành việc mô phỏng game Tuy nhiên trong game cònnhiều thiếu sót do thiếu kinh nghiệm thực tiễn nhưng nhóm chúng em đã cố gắng đểhoàn thành những ý tưởng cơ bản của game Hy vọng rằng phiên bản tiếp theo của game

có thể bù đắp được những thiếu sót hiện có của nó

Trang 7

Trang 7

1.3. Các chức năng chính

Game này sở hữu gần như toàn bộ các yêu cầu, chức năng cơ bản mà một gamebắn máy bay đơn giản cần phải có Các chức năng chính của game có thể được tóm lượcnhư sau :

• Tàu mình sẽ có các đại lượng như áo giáp, máu, điểm số, đạn, … và các chứcnăng như là tăng tốc, bắn đạn, ăn các vật thể để tăng áo giáp, máu, điểm số, …

• Tàu địch sẽ có các đại lượng như tốc độ di chuyển, tốc độ bắn, … và các chứcnăng như là bắn, ẩn nắp, tăng tốc đạn, …

• Chỉ huy địch sở hữu toàn bộ các chức năng như tàu thường nhưng có thêm cácđại lượng máu, điểm thưởng, … và các chứ năng như chuyển hướng di chuyển,tạo ra các cục đá, …

• Để làm cho game thêm sinh động thì không thể thiếu các vật thể lạ xuất hiệnnhư những cục máu, cục đá, …

Trang 8

CHƯƠNG 2 – PHÂN TÍCH

+ Về khái niệm, việc phân tích yêu cầu bao gồm ba loại hoạt động sau:

Làm rõ yêu cầu (Eliciting requirements): giao tiếp với khách hàng và người sử

dụng để xác định các yêu cầu của họ

Xem xét yêu cầu (Analyzing requirements): xác định xem các yêu cầu được đặt

ra có ở tình trạng không rõ ràng, không hoàn chỉnh, đa nghĩa, hoặc mâu thuẫnhay không, và giải quyết các vấn đề đó

Làm tài liệu yêu cầu (Recording requirements): các yêu cầu có thể được ghi lại

theo nhiều hình thức, chẳng hạn các tài liệu ngôn ngữ tự nhiên, các tình huống

sử dụng (use case),câu chuyện sử dụng (user story), hoặc các đặc tả tiến trình.

+ Các yêu cầu về game của nhóm chúng em bao gồm :

• Game thuộc dòng Molibe Java Games 240x320

• Game chạy tốt trên các dòng điện thoại từ cấp trung bình đến cấp cao

• Game có đầy đủ các chức năng cơ bản của một game bắn máy báy thôngthường

• Game có hỗ trợ người chơi các mức chơi khác nhau (dễ, trung bình, khó)

• Game có hỗ trợ phần điều chỉnh âm lượng cho người chơi

• Game có khả năng lưu lại 5 mức điểm số cao nhất của người chơi

• Game có phần liên hệ với người lập trình khi gặp trục trặc về kỹ thuật

• Game có khả năng quay lui khi game over

Trang 9

Trang 9

CHƯƠNG 3 – THIẾT KẾ3.1. Cấu trúc chương trình

3.1.1. Cấu trúc của Game

3.1.2. Cấu trúc của Menu

Trang 10

New Game

Exit Resume

Sound:

MainMidlet

SplashScreen Menu

GameScreen

3.1.3. Cấu trúc của MainMidlet

Cấu trúc của GameManager

Trang 11

SoundBreakout

Trang 12

3.2. Giới thiệu các lớp

3.2.1. Lớp “BackgroundLayer” : được kế thừa từ lớp TiledLayer, dùng để load

hình nền cho màn hình level và màn hình game chính

3.2.2.1. Các thuộc tính chính : active (sống/chết) ; xSpeed, ySpeed (tốc độ

x, y) ; fireTick (thời gian cuối cùng khi nó xuất hiện) ; shootRate(khoảng thời gian giữa 2 lần bắn) ; RATE (tỷ lệ frame trên giây),

3.2.2.2. Các phương thức chính :

• Boss() : constructor dùng để khởi tạo đối tượng mới

• destroy() : hủy đối tượng

• fire() : trả về true nếu khoảng thời gian giữa 2 lần bắn là hợp lý,ngược lại là false

• advance() : vẽ lại đối tượng này lên màn hình tùy theo biến thờigian

3.2.3. Lớp “Bullet” : được kế thừa từ lớp Sprite, dùng để tạo ra đối tượng viên

đạn

3.2.3.1. Các thuộc tính chính : active, ySpeed, RATE, …

3.2.3.2. Các phương thức chính :destroy(), advance() như lớp Boss Ngoài

ra còn có các phương thức sau :

• Bullet() : constructor dùng để khởi tạo đối tượng mới

• shoot() : thể hiện viên đạn lên màn hình

3.2.4. Lớp “Component” : được kế thừa từ lớp Sprite, dùng để tạo ra các đối

tượng như level và warning

3.2.4.1. Các thuộc tính chính : active, RATE, …

3.2.4.2. Các phương thức chính : destroy(), advance() và

• Component() : constructor dùng để khởi tạo đối tượng mới

Trang 13

Trang 13

3.2.5. Lớp “Enemy” : được kế thừa từ lớp Sprite, dùng để tạo ra đối tượng tàu

địch

3.2.5.1. Các thuộc tính chính : active, RATE, damage (tính sát thương),

score (điểm số sau khi bị nổ), …

3.2.5.2. Các phương thức chính : destroy(), advance(), fire() và

• Enemy() : constructor dùng để khởi tạo đối tượng mới

• reAppear() : thể hiện lại đối tượng lên màn hình sau khi ẩn vớitốc độ x, y ngẫu nhiên

3.2.6. Lớp “Explosion” : được kế thừa từ lớp Sprite, dùng để tạo ra đối tượng tàu

nổ (tàu mình, tàu địch và tàu chỉ huy địch)

3.2.6.1. Các thuộc tính chính : active, RATE, …

3.2.6.2. Các phương thức chính : destroy(), advance(), reAppear() và

• Explosion() : constructor dùng để khởi tạo đối tượng mới

• advanceExplosion () : vẽ lại đối tượng này lên màn hình tùytheo biến thời gian

• advanceSplash() : thể hiện hình ảnh tàu mình bị trúng đạnnhưng chưa hết máu

3.2.7. Lớp “Item” : được kế thừa từ lớp Sprite, dùng để tạo ra đối tượng vật thể.

3.2.7.1. Các thuộc tính chính : type (loại vật thể), value (giá trị), …

3.2.7.2. Các phương thức chính : destroy(), advance(), reAppear() và

• Item() : constructor dùng để khởi tạo đối tượng mới

3.2.8. Lớp “Menu” : được kế thừa từ lớp GameCanvas, dùng để vẽ các hình ảnh

menu lên màn hình

3.2.8.1. Các thuộc tính chính : options (mảng các lựa chọn trong menu),

3.2.8.2. Các phương thức chính : destroy(), advance(), reAppear() và

• Menu() : constructor dùng để khởi tạo đối tượng mới

• draw() : vẽ menu ban đầu

• drawNext() : vẽ lại menu khi có sự thay đổi

• keyPressed() : bắt sự kiện bàn phím

3.2.9. Lớp “Ship” : được kế thừa từ lớp Sprite, dùng để tạo ra đối tượng con tàu.

3.2.9.1. Các thuộc tính chính : damageTick(thời gian cuối cùng khi con tàu

trúng đạn), DAMAGED_RATE (khoảng thời gian giữa 2 lần trùngđạn), …

3.2.9.2. Các phương thức chính : destroy(), advance(), fire() và

Trang 14

• Ship() : constructor dùng để khởi tạo đối tượng mới.

• moveLeft(), moveRight(), moveUp(), moveDown() : di chuyểnqua trái, phải, lên, xuống

• isDamageable() : là true nếu khoảng thời gian giữa 2 lần trúngđạn là hợp lý, ngược lại là false

3.2.10. Lớp “SplashScreen” : được kế thừa từ lớp GameCanvas và giao diện

Runnable dùng để tạo ra đối tượng màn hình khởi động game

3.2.10.1. Các thuộc tính chính : image(hình nền), …

3.2.10.2. Các phương thức chính :

• SplashScreen() : constructor dùng để khởi tạo đối tượng mới

• start() : tạo một thread mới

• paint() : vẽ hình nền

• dismiss() : chuyển qua màn hình Menu

• run() : hàm điều khiển chính

3.2.11. Lớp “GameScreen” : được kế thừa từ lớp GameCanvas và giao diện

Runnable dùng để tạo ra đối tượng màn hình chính của game

3.2.11.1. Các thuộc tính chính : tick(biến điều khiển thời gian), delay

(khoảng thời gian giữa 2 lần render), …

3.2.11.2. Các phương thức chính : start(), stop(), run() và

• GameScreen() : constructor dùng để khởi tạo đối tượng mới

• render() : vẽ lại màn hình chính của game

• advance() : gọi hàm advance trong lớp GameManager

3.2.12. Lớp “MainMidlet” : được kế thừa từ lớp MIDlet và giao diện

CommandListener dùng để quản lý các đối tượng settings, high scores, …

và kết hợp các lớp khác lại với nhau

3.2.12.1. Các thuộc tính chính : Menu, SplashScreen, GameScreen, …

3.2.12.2. Các phương thức chính : startApp(), pauseApp(), destroyApp() và

• MainMidlet() : constructor dùng để khởi tạo đối tượng mới

• settingsForm() : khởi tạo Form Settings

• helpForm() : khởi tạo Form Help

• aboutForm() : khởi tạo Form About

3.2.13. Lớp “GameManager” : được kế thừa từ lớp LayerManager, dùng để kết

hợp các đối tượng ở các lớp khác lại với nhau

3.2.13.1. Các thuộc tính chính : các biến tạo hình ảnh, các mảng Enemy, các

Trang 15

Trang 15

• GameManager() : constructor dùng để khởi tạo đối tượng mới

• paint() : vẽ lại các đối tượng lên màn hình

• advance() : xử lý sự kiện bàn phím, va chạm và load sprite

• createUpdateEnemy() : tạo và cập nhật lại vị trí tàu địch

• createBoss(), updateBoss() : tạo và cập nhật lại vị trí tàu chỉ huyđịch

có thời gian chờ vào khoảng 3000ms Nhưng bạn cũng có thể bỏ qua màn hình bằngcách nhấn phím bất kì trên bàn phím điện thoại hoặc dùng tay chạm vào màn hình (đốivới màn hình cảm ứng)

3.3.2. Màn hình Menu

Trang 16

Hình 3.2 Màn hình Menu

Game Menu là phần bắt buộc trong quá trình làm Game Một Game Menu thểhiện đầy đủ các chức năng có trong Game Ở đây chúng em thiết kế Menu gồm có: NewGame, Settings, High Scores, Help, About và Exit

• New Game : Vào game mới

Hình 3.3 Màn hình Level trước khi vào game

Trang 17

Splash Screen Menu Start Game End Game

Trang 17

Hình 3.4 Màn hình game chính

• Settings : Tại đây, người chơi có thể cài đặt âm thanh hay mức chơi chotrò chơi

có thể tăng giảm âm lượng sao cho phù hợp với từng người và có thể chọn mức

chơi Easy, Normal hay Hard

Hình 3.5 Màn hình Settings

• High Scores : Hiển thị điểm của 5 người chơi có điểm số cao nhất

Trang 19

Trang 19

Hình 3.8 Màn hình About

• Exit : Ở phần này, nếu người chơi chọn thì sẽ hiện ra câu hỏi để hỏi người chơi

có muốn thoát game hay không

Hình 3.9 Màn hình Exit

Trang 20

CHƯƠNG 4 – CÀI ĐẶT VÀ THỬ NGHIỆM

• Môi trường : J2ME

• Ngôn ngữ cài đặt : Java

• Thử nghiệm giả lập : Điện thoại DefaultCldcMsaPhone2, DefaultFxPhone1trong Netbeans ; DefaultColorPhone trong Wireless Toolkit

• Thiết bị thật : Nokia N78

• Đánh giá kết quả : Giả lập chạy tốt, thiết bị thật chạy tốt khi không có âm thanh,chạy hơi giật khi load âm thanh lên

Trang 21

Trang 21

KẾT LUẬN

Chúng em đã điểm qua các phần cơ bản nhất của việc lập trình game trên di độngbằng công nghệ J2ME thông qua một ví dụ game cụ thể Qua đó, chúng ta cũng phầnnào thấy được tầm quan trọng của game nói chung và game trên di động nói riêng Gamecủa nhóm chúng em chỉ dừng lại ở mức độ đơn giản, nhằm giúp cho người chơi có mộtcái nhìn tổng quát về nó

Hướng phát triển tiếp theo của chúng em không chỉ dừng lại ở đây, nếu có thểchúng em sẽ tiếp tục nghiên cứu sâu hơn nữa về lĩnh vực này

Để phát triển hơn nữa, hy vọng rằng phiên bản sau của game có thêm các đặc tínhnhư là :

• Sửa các lỗi hiện có

• Tăng số level lên

• Có khả năng kết nối mạng để cập nhật các phiên bản trên mạng về

• …

Trang 22

DANH MỤC TÀI LIỆU THAM KHẢO

[1] Jason Lam, “Settings and High Scores”, J2ME & Gaming.

[2] Martin J.Wells, “The J2ME API”, J2ME TM Game Programming,Course PTR – Course

Technology.

[3] John W.Muchow (2001), “Low-Level User Interface”, Core J2ME, Prentice Hall PTR.

Ngày đăng: 26/04/2013, 15:42

Xem thêm

HÌNH ẢNH LIÊN QUAN

Hình 3.2. Màn hình Menu - GAME STAR WARS
Hình 3.2. Màn hình Menu (Trang 16)
Hình 3.3. Màn hình Level trước khi vào game - GAME STAR WARS
Hình 3.3. Màn hình Level trước khi vào game (Trang 16)
Hình 3.4. Màn hình game chính - GAME STAR WARS
Hình 3.4. Màn hình game chính (Trang 17)
Hình 3.5. Màn hình Settings - GAME STAR WARS
Hình 3.5. Màn hình Settings (Trang 17)
Hình 3.6. Màn hình High Scores - GAME STAR WARS
Hình 3.6. Màn hình High Scores (Trang 18)
Hình 3.8. Màn hình About - GAME STAR WARS
Hình 3.8. Màn hình About (Trang 19)
Hình 3.9. Màn hình Exit - GAME STAR WARS
Hình 3.9. Màn hình Exit (Trang 19)

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w