1) Khái quát về game. 2) Phân tích các chức năng. 3) thiết kế ứng dụng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM
KHOA CNTT – MÔN CNPM
o0 o0o 0o
-ĐỀ TÀI : PHẦN MỀM C# GAME FLAPPY BIRDS
(Có sử dụng Framework để gọi XNA 2D)
*Giảng viên hướng dẫn : ThS Trương Thị Ngọc Phượng
Mã nhóm: 11 -Thành viên nhóm-Nguyễn Xuân Hoàng (1151020091)
Võ Hoàng Việt (1151020184) Hoàng Đức Việt (1151020182)
Lớp: 11DTH02
Tp.Hồ Chí Minh ,tháng 04 năm 2014
Trang 2Mục lục đề tài
I Khái quát, sơ lược Game
1/ Giới thiệu trang 2
2/ Mô tả đề tài trang 2
II Phân tích yêu cầu
1/ Yêu cầu chức năng trang 3
2/ Yêu cầu phi chức năng trang 4
III Thiết kế ứng dụng
1/ Use Case Diagram trang 5
2/ Mô hình DFD trang 6
3/ Mô hình PDM trang 7
4/ Thiết kế giao diện trang 8
5/ Sequence Diagram trang 11
6/ Activity Diagram trang 12
IV Kết luận sơ bộ
Trang 3I Khái quát, sơ lược Game
1/ Giới thiệu
_ Trước tiên, khi nhắc tới game Flappy Birds, ai cũng phải nhớ đến với những tình huống dở
cười vì cách chơi tuy đơn giản nhưng không hề dễ để lấy điểm cao Thực sự khi nói đến game
này, người ta sẽ không nghĩ tới một thể loại game đình đám về cả cấu hình, AI, hay cả trí tuệ
nhân tạo tuyệt đỉnh, mà đó là 1 sự thách thức giữa những người chơi với nhau, tạo nên một mối
liên kết cộng đồng Đây chính là sự thành công có hơi chút may mắn của người cha đẻ game
Flappy Birds – Nguyễn Hà Đông
_ Game tuy đơn giản về lối chơi, nhưng lại nhận được đón nhận đông đảo của công chúng khắp
nơi, nó tạo nên một tiền đề về nhận thức mới cho Code Game của nhiều hãng game nổi tiếng
toàn cầu – không cầu kỳ, không hoa mỹ, chỉ cần đơn giản, dễ nhìn, dễ sử dụng – và thế là nhiều
hãng đua nhau thiết kế những loại game đơn giản như thế này, nhanh gọn 500 - 1000$/bản game
*Có thể bạn chưa biết: một chiếc Iphone bản quyền có tải bản cập nhật cuối cùng của game
Flappy Birds từ AppStore, được rao giá bán gấp 10 lần chiếc Iphone đó trên Ebay ?!!
Tái bút: nhóm đã chọn đề tài này vì không phải mục đích ăn cắp bản quyền, mà đó là thể hiện
một sự ngưỡng mộ đến sự thành công mà game Flappy Birds đã từng khuấy đảo trị trường game
di động trong khoảng thời gian không hề ngắn Có thể mọi người sẽ nói game đơn giản – những
người coder giỏi – nhưng đối với những sinh viên năm 3 thì đó là cả một hành trang vô cùng quý
báu trước khi tiến bước đến những công nghệ hoàn mỹ hơn !
2/ Mô tả đề tài
*Đề tài: Game FlappyBird
*Mô tả:
_ Game cấu hình nhẹ, đơn giản, giải trí lành mạnh
*Cách chơi:
_ Người chơi click chuột/space để FlappyBird nhảy liên tục vượt qua các ống nước với:
+ Điều kiện lên điểm: vượt qua ½ ống nước, không phạm lỗi chạm ống, không bị rớt xuống đất,
mỗi lần như thế + 1 điểm
+ Điều kiện thất bại (GameOver): vi phạm lỗi trên (lập tức tính điểm tổng kết và so sánh best
score)
Đề tài có sử dụng công nghệ C#, XNA 2D Project.
Trang 4II Phân tích yêu cầu
1/ Yêu cầu chức năng
_ Các buttons (phím ấn):
• F: Mở rộng màn hình hết cỡ (Toggle Full screen) – Mặc định màn hình game: 650x500.
• P: Chương trình game dừng hẳn trong vòng 10 giây rồi tiếp tục cho chơi tiếp (gần giống
Pause).
• Spacebar, Left-Click, Right-Click: Dùng để làm Flappy Bird nhảy lên.
• ESC: Thoát game.
_ Animations (hoạt họa cho các đối tượng trong game):
a/ FlappyBirds
• Liên tục đổi ảnh (chọn 1 ảnh có 3 cử động khác nhau), split theo vị trí và thời gian hạn định,
giúp Flappy Birds (FB) trông như đang hoạt động vỗ cánh.
• Khả năng quay (chúi, nghểnh đầu) khi FB được click và không click.
• Trọng lực: tạo một đoạn code sao cho nếu thả click ra FB rơi với tốc độ nhanh chậm bao
nhiêu, bay nhảy độ cao thế nào cho đến khi chạm đất.
• Vị trí khởi điểm của FB, vị trí tương đối so với màn hình di chuyển các ống nước.
b/ Ống nước
• Luân phiên các ống nước xuất hiện với kích thước khác nhau.
• Độ rộng-dài (X-Y) của ống nước đóng vai trò để tính xác định điểm:
+ Khi FB vượt qua ½X => cho phép tăng điểm.
+ chiều dài Y để code rotated pipes hoạt động (luân phiên ống nước).
Trang 5c/ Camera Moving: Kết hợp với các Rotated Pipes trên, Camera Moving giúp người chơi cảm giác như
FB đang bay vì các ống nước liên tục tiến và thay đổi kích thước.
_ Phát Huy Chương: Dựa trên số điểm của người chơi mà chương trình hiện kết
quả đồng thời hiện thành tích huy chương cho người đó ứng với số điểm tương
thích.
_ Tính điểm: FB vượt qua mỗi ống nước nhận +1 điểm cho đến khi thất bại (rớt
hoặc chạm ống)
_ Lưu Điểm:
• Tạo một file txt lưu trữ số điểm cao nhất, có tên là “fb_top.txt” trong folder chính
MyDocument.
• Mỗi lần tính điểm cuối cùng trong game, chương trình sẽ tự động so sánh điểm cuối cùng
đang chơi đó và điểm số ghi trong file txt trên Nếu điểm số đang chơi lớn hơn điểm lưu thì
chương trình tự động lưu điểm đó thành điểm mới cho vào file txt.
• Giả sử người chơi vô ý xóa mất file lưu điểm trên, chương trình tự động phục hồi file và gán
giá trị mặc định bằng 0 (điểm).
_ Hướng dẫn: Trước khi vào game, sẽ có 1 bảng loading, trong bảng đó có phần
hướng dẫn cụ thể cách chơi, các phím dùng cho người chơi.
2/ Yêu cầu phi chức năng
_ Tự động đổi ảnh nền bầu trời, ảnh màu sắc khác của FB theo code random load content
_ Font chuẩn game Flappy Bird
_ Màn hình loading game
_ Một số hiển thị chữ thông báo trong quá trình chơi game
_ Âm thanh sống động, chân thực
Trang 6III Thiết kế ứng dụng
1/ Use Case Diagram
Mô hình UCD
Splash screen
Normal Mode
Play guides
Play Game
Control
Save Scores
Cross to exe
Compare
Save new player
Trang 72/ Mô hình DFD
• Cấp 1
Mô hình DFD cấp 1
• Cấp 2
Mô hình DFD cấp 2 – Phân tích xử lý “Play Game”
Trang 8• Cấp 3
Mô hình DFD cấp 3 - – Phân tích xử lý “Control Bird”
3/ Mô hình PDM
_ Vì chương trình game Flappy Birds không sử dụng database nên mô hình PDM sẽ được thay
thế bằng dạng mô hình ERD mô phỏng dữ liệu:
Mô hình ERD cho game FlappyBird
4/ Thiết kế giao diện
Trang 9*Forum.Game2K.Net*
thành viên Nguyễn Xuân Hoàng sẽ khởi tạo
“Forum chia sẻ Open Sources” trong thời gian tới
Mẫu giao diện cho màn hình chào (Splash Screen)
Trang 103 Giao diện nền thời buổi trong ngày (Sky)
4 Giao diện màu của hoạt ảnh cho chú chim Flappy Birds
Và một số giao diện huy chương
Trang 11Hình ảnh thô sơ mô phỏng các ống nước luân phiên (rào cản)
- Có hướng dẫn cụ thể về random size –
(Sau khi “tinh chế” lại thì các Pipes trông mượt mà và bắt mắt hơn)
Trang 125/ Sequence Diagram
6/ Activity Diagram
Splash Screen
Splash Screen Guides ScreenGuides Screen ScreenGame ScreenGame GameOver GameOver ScreenScreen
1.Find guide
2 Show
3 Check Modes
4.1 Lose
4.2 Score
5
Compare Score &
Save
6 Show
Gamer
Y/c chọn
Mode
Choose
Mode
Exit
Tự thay đổi Best Score
Trang 13Splash Screen
Guide Selection
Guide Selection
Mode Selection
Mode Selection
GAME OVER
[exit]
[exit]
[continue]
Display Error Data Auto Fix
Ref.: Đưa về giá trị mặc định = 0 điểm
Ref.: Đưa về giá trị mặc định = 0 điểm
[wait for showing]
[select]
[error]
[continue]
Ref.: F,
ESC, P,
Ref.: F,
ESC, P,
[fail]
[alive]
[select]
Trang 14IV Kết luận sơ bộ
• Demo Ứng dụng (Cách chạy chương trình – source)
- 1 Giải nén “font flappybird.rar” để copy font này vào folder FONT của hệ điều hành.
Hỗ trợ Font đặc biệt cho Game
- 2 Install XNA Project để run source:
a XNA Game studio FRAMEWORK
-Link: http://www.microsoft.com/en-ph/download/details.aspx?id=23714
b XNA FRAMEWORK REDIST 4.0
-Link: http://www.microsoft.com/en-ph/download/details.aspx?id=20914
- 3 Tiến hành chạy Source như thường.
• Kết luận – giải pháp cải thiện
- Chương trình trước mắt đã chạy theo đúng như yêu cầu và chỉ tiêu đề ra, không mắc phải
các lỗi nghiêm trọng cũng như chiếm dụng bộ nhớ Ram không hề cao, không quá cầu kỳ và
rất dễ sử dụng – thân thiện với người dùng.
- Tuy nhiên, đây chỉ là lấy ý tưởng game của người khác, chưa mang tính sáng tạo thực tiễn và
game chưa nhạy bén hoàn hảo như bản gốc của tác giả Nguyễn Hà Đông.
Ngoài những vấn đề cần cải thiện trên, trong tương lai nhóm có thể phát triển thêm:
+ Chế độ Hard Mode, Hell Mode với cách thức chơi lạ mắt, sáng tạo hơn.
+ Thêm các rào chắn mới, khung nền hiển thị mới.
+ Thêm màn mới với những nhân vật mới.
Cảm ơn giảng viên phụ trách và các bạn đã đọc qua.
Chúc một ngày vui vẻ !
Nhóm 11