Những ngày đầu tháng 2, cái tên Flappy Bird là chủ đề hot nhất của làng game thế giới. Trò chơi này đã đạt hơn 50 triệu lượt tải và đem lại 50.000 USDngày cho người phát triển trò chơi. Đột nhiên, tác giả Nguyễn Hà Đông tuyên bố gỡ bỏ trò chơi này, chỉ bởi vì “Tôi không thể tiếp tục hơn nữa”. Điều gì đã xảy ra? Theo Times, Hà Đông đã đạt được thành công vang dội với Flappy Bird. Trò chơi phổ biến với tốc độ chóng mặt trên khắp thế giới. Thành công của nó là điều mà mọi nhà thiết kế game mơ ước, fan của trò chơi thuộc đủ mọi lứa tuổi, tầng lớp. Thế rồi đột nhiên, hàng chục triệu người chơi game bị sốc khi tác giả quyết định xóa bỏ trò chơi và sau đó im lặng. Không ai biết Con chim Flappy có lại bay nữa hay không. Còn hiện nay, những người đã cài game trên điện thoại vẫn có thể tiếp tục chơi. Và Nguyễn Hà Đông hứa hẹn sẽ tiếp tục phát triển game. Hai game khác của Đông vẫn đang hoạt động và hy vọng chúng sẽ là những thành công tiếp theo đưa tên tuổi Việt Nam đến với thị trường phát triển game thế giới.
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN
-*** -CHUYÊN ĐỀ 2
ĐỀ TÀI XÂY DỰNG ỨNG DỤNG ANDROID GAME FLAPPY
BIRDS
Giảng viên hướng dẫn:
Sinh viên thực hiện:
Lớp:
ThS Nguyễn Tuấn Anh Trần Thị Khánh (1721050490) MMT K62B
Trang 2Những ngày đầu tháng 2, cái tên Flappy Bird là chủ đề hot nhất của làng game thế giới.Trò chơi này đã đạt hơn 50 triệu lượt tải và đem lại 50.000 USD/ngày cho người phát triển tròchơi Đột nhiên, tác giả Nguyễn Hà Đông tuyên bố gỡ bỏ trò chơi này, chỉ bởi vì “Tôi khôngthể tiếp tục hơn nữa” Điều gì đã xảy ra? Theo Times, Hà Đông đã đạt được thành công vangdội với Flappy Bird Trò chơi phổ biến với tốc độ chóng mặt trên khắp thế giới Thành côngcủa nó là điều mà mọi nhà thiết kế game mơ ước, fan của trò chơi thuộc đủ mọi lứa tuổi, tầnglớp Thế rồi đột nhiên, hàng chục triệu người chơi game bị sốc khi tác giả quyết định xóa bỏ tròchơi và sau đó im lặng Không ai biết Con chim Flappy có lại bay nữa hay không Còn hiệnnay, những người đã cài game trên điện thoại vẫn có thể tiếp tục chơi Và Nguyễn Hà Đông hứahẹn sẽ tiếp tục phát triển game Hai game khác của Đông vẫn đang hoạt động và hy vọng chúng
sẽ là những thành công tiếp theo đưa tên tuổi Việt Nam đến với thị trường phát triển game thếgiới
Chính vì sự nổi tiếng của game và cũng vì em rất thích game Flappy Birds nên em đã làmbài Tiểu luận làm game Flappy Bird trên Android Studio Bài tiểu luận do sinh viên Trần ThịKhánh biên soạn dựa trên những kiến thức mà thầy ThS Nguyễn Tuấn Anh đã chỉ dạy và thôngqua sự tìm hiểu, nghiên cứu tích cực của em Mặc dù em đã rất cố gắng song vẫn không tránhkhỏi một số thiếu sót mong thầy đóng góp ý kiến để em hoàn thiện hơn tiểu luận này
Trang 3MỤC LỤC
DANH MỤC HÌNH VẼ
HÌNH 1.2.1: BIỂU TƯỢNG CỦA HỆ ĐIỀU HÀNH ANDROID.
HÌNH 1.3.1: GIAO DIỆN TRANG CHỦ GOOGLE PLAY.
HÌNH 1.4.1: CÁC PHIÊN BẢN HỆ ĐIỀU HÀNH ANDROID
HÌNH 1.4.2: PHIÊN BẢN ĐẦY ĐỦ CỦA HỆ ĐIỀU HÀNH ANDROID
Trang 4HÌNH 4.1: GIAO DIỆN KHI CHUẨN BỊ VÀO GAME HÌNH 4.2: GIAO DIỆN KHI ĐANG CHƠI GAME HÌNH 4.3: GAME OVER
Trang 5ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ANDROID GAME FLAPPY BIRDS
1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID
1.1 Giới thiệu hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị
di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu Androiđược phát triển bới Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này đượcchính Google mua lại vào năm 2005 Android ra mắt vào năm 2007 cùng với tuyên bố thànhlập Liên minh thiết bị cầm tay mở: gồm các công tay phần cứng, phần mềm, và viễn thông vớimục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạyAndroid được bán vào tháng 10 năm 2008
Android có mã nguồn mở và Google phát hành mã nguồn theo giấy phép Apache Chính
mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triểnthiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android 1cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết cácứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh nhất thế giới,vượt qua cả Symbian, và được các công ty công nghệ lựa chọn Android chiếm 75% thị phầnđiện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng 500 triệu thiết
bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũngkhiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cáigọi là “Cuộc chiến điện thoại thông minh” giữa các công ty công nghệ
1.2 Lịch sử phát triển
Vào tháng 10/2003, trước khi thuật ngữ “điện thoại thông minh” được hầu hết công chúng
sử dụng và vài năm trước khi Apple công bố iPhone đầu tiên và hệ điều hành iOS, công tyAndroid Inc được thành lập ở Palo Alto, California Bốn người sáng lập là Rich Miner, NickSears, Chris White và Andy Rubin Vào thời điểm thành lập, ông Rubin nói rằng Android Inc
sẽ phát triển “thiết bị di động thông minh hơn hơn về vị trí và sở thích của chủ sở hữu”
Trang 6Theo PC World, Rubin sau này đã tiết lộ trong một bài phát biểu vào năm 2013 tại Tokyorằng hệ điều hành Android đã được ra mắt để cải thiện hệ điều hành của máy ảnh số Rõ ràng,nhóm nghiên cứu tại Android đã không nghĩ ngay từ đầu về việc tạo ra một hệ điều hành có thểphục vụ như phần cốt lõi của một hệ thống máy tính di động hoàn chỉnh.
Nhưng sau đó, thị trường máy ảnh kỹ thuật số giảm sút, Android Inc đã quyết định chuyểnsang hệ điều hành trên điện thoại di động Như Rubin đã nói vào năm 2013, “Cùng một nềntảng, cùng hệ điều hành chúng tôi xây dựng cho máy ảnh, nó đã trở thành Android cho điệnthoại di động.”
Năm 2005, chương lớn tiếp theo trong lịch sử của Android được thực hiện khi Googlemua lại công ty gốc Ông Andy Rubin và các thành viên sáng lập khác vẫn tiếp tục phát triển hệđiều hành dưới quyền chủ sở hữu mới của họ Quyết định này được đưa ra để sử dụng Linuxlàm nền tảng cho hệ điều hành Android và điều đó cũng có nghĩa là Android sẽ được cung cấpmiễn phí cho các nhà sản xuất điện thoại di động của bên thứ ba Google và nhóm Android cảmthấy công ty có thể kiếm tiền với các dịch vụ khác sử dụng hệ điều hành, bao gồm cả ứng dụng
Hình 1.2.1: Biểu tượng của hệ điều hành Android.
Trang 7Hệ điều hành Android được chính thức ra mắt từ năm 2007 cùng với tuyên bố thành lậpLiên minh thiết bị cầm tay mở Chiếc điện thoại Android đầu tiên được bán vào năm 2008
1.3 Ứng dụng Android
Android có lượng ứng dụng của bên thứ 3 ngày càng nhiều, được chọn lọc và đặt trên mộtcửa hàng ứng dụng Google Play hay Amazon AppStore để người dùng lấy về, hoặc tải xuốngrồi cài đặt tập tin APK từ trang web khác Các ứng dụng trên Cửa hàng Play cho phép ngườidùng duyệt, tải về và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành.Cửa hàng Play được cài đặt sẵn trên các thiết bị thoả mãn điều kiện tương thích của Google.Ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tương thích với thiết bị của ngườidùng, và nhà phát triển có thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố địnhhoặc những quốc gia cố định vì lý do kinh doanh
Hình 1.3.1: Giao diện trang chủ Google Play
Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ phát triểnphần mềm Android (SDK) SDK bao gồm một bộ đầy đủ các công cụ dùng để phát triển, gồm
có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại trên QEMU, tài liệu hướng dẫn, mãnguồn mẫu và hướng dẫn từng bước Môi trường phát triển tích hợp (IDE) được hỗ trợ chínhthức là Eclipse sử dụng phần bổ sung Android Development Tools (ADT) …
Trang 81.4 Các phiên bản hệ điều hành Android qua các đời
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép cácnhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phânphối Android một cách tự do khiến cho kho ứng dụng của hệ điều hành Android phát triển mộtcách nhanh chóng
Android phổ biến tới mức mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng,
nó còn được các nhà sản xuất tùy chỉnh để cài đặt trên các Smart TV, máy chơi game và cácthiết bị điện tử khác Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trìnhviên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản
lý Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặcđưa Android vào các thiết bị ban đầu chạy hệ điều hành khác
Hệ điều hành Android ra mắt đầu tiên năm 2008 và đã trải qua hàng loạt các thay đổi nângcấp để được như hiện nay
Trang 9Hình 1.4.1: Các phiên bản hệ điều hành Android
Hình 1.4.2: Phiên bản đầy đủ của hệ điều hành Android
2 MÔI TRƯỜNG LẬP TRÌNH ANDROID STUDIO
2.1 Giới Thiệu Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức cho việc phát triển ứngdụng Android Nơi mà các nhà phát triển viết code và lắp ráp các ứng dụng của họ từ các gói
Và thư viện khác nhau
Thư viện phần mềm, công cụ lập trình tiện dụng, nhiều hơn để giúp bạn xây dựng, kiểmthử Cũng như gỡ lỗi các ứng dụng Android
Android Studio hỗ trợ một loạt các giả lập để xem trước ứng dụng, vì vậy ngay cả khi bạnkhông có thiết bị thử nghiệm, bạn vẫn có thể chắc chắn rằng mọi thứ đều hoạt động trơn tru.Bên cạnh đó, loạt công cự như lời khuyên tối ưu hóa, đồ thị doanh số bán hàng, và số liệulấy từ phân tích sẽ giúp các nhà phát triển quản lý ứng dụng đang bán của mình và tìm rahướng đi cụ thể với từng thiết bị Android
Trang 10Android Studio hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chínhthức của Google để phát triển ứng dụng Android gốc để thay thế cho Android DevelopmentTools (ADT) dựa trên Eclipse
Hình 2.1.1: Phần mềm Android Studio
2.2 Cài đặt Android Studio
2.2.1 Yêu cầu phần cứng máy tính
- Microsoft® Windows® 8/7 (32 or 64-bit)
- 4 GB RAM (Tốt nhất là 8GB)
- 400 MB hard disk space + ít nhất 1GB cho Android SDK, emulator
system images và caches
- Độ phân giải tối thiếu 1280 x 800
-Java Development Kit ()
Trang 112.2.2 Phần mềm Android Studio
Vào đường dẫn: "http://developer.android.com/sdk/index.html" và tải file cài đặt về.Sau khi tải xong bạn nhấp đúp vào file cài đặt để tiến hành cài đặt Quá trình cài đặtkhông có gì đặc biệt và bạn có thể tự mình hoàn tất công đoạn này
Sau khi cài đặt xong máy tính sẽ khởi động chương trình Android Studio để bạn có thể bắtđầu phát triển ứng dụng Android đầu tiên
+ Bước 1: Chuẩn bị laptop Như đã nói, để trong quá trình lập trình không xảy ranhững khó chịu thì bạn nên chuẩn bị một chiếc laptop RAM có dung lượng lớn (> 8GB) vàchip i5 (hoặc tương đương) trở lên Nếu máy có cài ổ SSD thì càng tốt
+ Bước 2: Tải Java về máy Như bạn đã biết, để cài đặt android studio cần phải cài đặtJava trước tiên
+ Bước 3: Sau khi tải Java xong thì bạn hãy nhấn vào Install để cài Java vào máy tính.Bạn sẽ phải đợi khoảng 5 phút
+ Bước 4: Khi máy tính hoàn tất tải Java về máy thì bạn bạn không cần thao tác gì thêmvới Java nữa mà chỉ cần để nó một chỗ là được
+ Bước 5: Nhấn nút Next ở phần cửa sổ chào mừng của phần mềm android studio + Bước 6: Tiếp tục nhấn nút Next để tiếp tục, sau đó vẫn ấn Next ở cửa sổ tiếp theo + Bước 7: Bạn sẽ lựa chọn tên hiển thị trên Start menu rồi nhấn Install để cài đặt
+ Bước 8: Nhấn Install để cài đặt Sau đó bạn bấm tiếp Finish Tuy nhiên đây chưa phảibước cuối cùng đâu nhé!
+ Bước 9: Sẽ xuất hiện một bảng và bạn chỉ cần đợi ô update biến mất rồi sau đó nhấntiếp phím Next
+ Bước 10: Chọn giao diện trắng hoặc đen cho android studio
+ Bước 11: Bạn sẽ phải đợi một lúc lâu để hệ thống tải dữ liệu và Xong!
Trang 12Hình 2.2.2.1: Giao diện Android Studio khi cài đặt hoàn tất.
2.3 Các tính năng nổi bật của Android Studio
Android studio có rất nhiều lợi ích cũng như tính năng mà người dùng có thể khai thácđược và đặc biệt việc cài đặt android studio còn có thể giúp lập trình viên mô phỏng để có thểtiến hành sửa lỗi và nâng cấp sản phẩm của mình khi cần thiết
Trên trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, Android Studio cungcấp nhiều tính năng nâng cao hiệu suất của bạn khi xây dựng ứng dụng Android, chẳng hạnnhư:
+ Một hệ thống xây dựng Gradle linh hoạt
+ Trình mô phỏng nhanh và tính năng phong phú
+ Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android + Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xâydựng một APK mới
+ Tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mãmẫu
Trang 13+ Các công cụ và khuôn khổ thử nghiệm mở rộng.
Lint công cụ để bắt hiệu suất, khả năng sử dụng, tương thích phiên bản, và các vấn đềkhác
Hỗ trợ C ++ và NDK
Tích hợp hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging
và App Engine
Hỗ trợ tích hợp sâu Firebase vào trong các ứng dụng chỉ sau một click chuột
3 TRIỂN KHAI XÂY DỰNG ỨNG DỤNG GAME FLAPPY BIRDS
3.1 Khái quát Game Flappy Birds
Flappy Bird (tạm dịch là "chú chim vỗ cánh") là một trò chơi điện tử trên điện thoại doNguyễn Hà Đông, một lập trình viên ở Hà Nội, Việt Nam phát triển, và do dotGEARS, mộtstudio phát triển game quy mô nhỏ, hoạt động độc lập có trụ sở tại Việt Nam phát hành vàonăm 2013 Trò chơi được trình bày theo phong cách side-scroller (phong cách game với các đốitượng được nhìn thấy ở mặt bên (side-view) và di chuyển từ cạnh trái sang cạnh phải của mànhình), trong đó người chơi điều khiển một chú chim, cố gắng vượt qua các hàng ống màu xanh
lá cây mà không chạm vào chúng
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ữngngười chơi với nhau, tạo nên một mốiliên kết cộng đồng
Trang 14Hình 3.1.1: Flappy Birds.
Lý do chọn đề tài
Đây thực sự là một trò chơi điện tử thú vị và không quá khó để lập trình do vậy em quyếtđịnh đề tài viết về game “Flappy Bird” trên Android Studio Đề tài nhằm mục đích giúp hiểu rõhơn về cách thức hoạt động cũng như quy trình để tạo ra 1 con chim biết vượt chướng ngại vật,ngoài ra đề tài còn mang tính giải trí cao, giúp giải toả căng thẳng và kích thích niềm đam mêlập trình
3.2 Thiết kế ứng dụng
3.2.1 Use Case Diagram
Trang 16Hình 3.2.2.3: Mô hình DFD cấp 2.
• Cấp 3
Trang 17Hình 3.2.2.4: Mô hình DFD cấp 3 – Phân tích xử lý “Control Bird”
3.3 Mô tả Game Flappy Birds.
Ý tưởng của trò chơi:
Trang 18Việc xây dựng game flappy bird là một game đơn giản, dễ chơi giúp người giải trí sau khilàm việc hoặc lúc rảnh rỗi.Việc xây dựng game flapppy bird giúp em học hỏi và tìm hiểu vềlàm game 2D trong lập trình android.
Chương trình đã giải quyết được:
Xây dựng luồng trong android
Thực hiện vẽ hình bằng Canvas
Kết nối database
Hạn chế của chương trình:
Hiện tại ứng dụng vẫn chưa hoàn chỉnh và phát sinh nhiều lỗi cần test
Chưa giải quyết được thuật toán tối ưu để game chay mượt
Game còn đơn giản và sơ sài
Định hướng và phát triển:
Hoàn thiện game để game có thể chơi mượt hơn và tạo cảm giác hấp dẫn khi chơi game.Thêm một số chức năng và tạo độ khó cho game
3.4 Phân tích bài toán
3.4.1 Phân tích yêu cầu
- Animations (hoạt hoạ các đối tượng trong game)
Trang 19• Luân phiên các ống xuất hiện với kích thước khác nhau.
• Độ rộng – dài của ống nước đóng vai trò để tính xác định điểm: khi Flappy Birdsvượt qua độ rộng => cho phép tăng điểm
3.4.2 Xây dựng đối tượng
Background: Image background nạp cố định lên màn hình
Ống trôi liên tục về bên trái ngay khi game bắt đầu
Con chim: Bird
• gameState trạng thái của con chim (0 là game chưa bắt đầu,1 startgame,2 làgameover)
• int score (điểm con chim đạt được khi bay qua các ống)
• đập cánh liên tục được gọi ngay khi game bắt đầu
• justTouched chạm vào màn hình chim sẽ nhảy lên
Ống: Tube
• Trôi liên tục về trái (nếu vượt quá màn hình thì tự động ẩn)
• gap: khoảng cách ống trên ống dưới
• Khi chim đi qua ống thì cộng điểm
• Khi chim chạm ống thì gameState=2
Màn hình game
• justTouched được gọi khi người dùng chạm màn hình
• Khi chim chết thì gameState=2
• Nạp background, nạp Bird, nạp Score - gọi khi reset lại Game
• Nạp hai ống có khoảng hở 400 - được gọi tuần tự sau một khoảng thời gian chotrước
3.4.3 Code với libGDX
• Sử dụng gdx-setup-ui.jar để tạo project FlappyBird
• Copy toàn bộ resource vào thư mục assets