Mục tiêu chính của Báo cáo Xây dựng ứng dụng game Fun Math trên android là việc xây dựng game Funsmath sẽ giúp trẻ ôn tập những phép toán, cải thiện bộ nhớ, phát triển tư duy logic, phát triển tư duy kết hợp.
BỘ CƠNG THƯƠNG TRƯỜNG ĐẠI HỌC SAO ĐỎ BÁO CÁO ĐỀ TÀI MƠN HỌC LẬP TRÌNH HỆ THỐNG NHÚNG Đề tài: XÂY DỰNG ỨNG DỤNG GAME FUN MATH TRÊN ANDROID Nhóm thực hiện: Sv. Nguyễn Thị Trang Sv. Vũ Thị Thủy CNTT DK04 Lớp: Hải Dương, tháng 09/2017 LỜI MỞ ĐẦU Hiện nay, tốn học được coi là nền tảng của sự phát triển. Hàng triệu người từ các nền văn hóa khác nhau đều nỗ lực trong mơn học này. Ở Việt Nam tốn học cũng đã thể hiện được vị trí quan trọng kể từ khi đất nước bắt đầu phát triển. Tất cả mọi lĩnh vực đều cần có trình độ tốn. Vì đó tốn học là một mơn rất quan trọng mà chúng ta nên học và rèn luyện hàng ngày đặc biệt là trẻ nhỏ. Khi còn nhỏ, trẻ sẽ dễ dàng tiếp thu tốn nhanh nhất để thúc đẩy sự suy tư của trẻ thay vì học thụ động như khi trưởng thành. Độ tuổi này các em có khả năng tự mình tìm ra các quy tắc riêng cho bản thân theo một cách hồn tồn bản năng. Nhờ đó, trẻ sẽ học nhanh và dễ dàng tiếp thu kiến thức mà giáo viên truyền đạt. Cùng với đó sự phát triển của cơng nghệ di động đã bùng nổ trong vài năm qua. Các thiết bị cầm tay đã trở nên rất mạnh mẽ và phổ biến. Trong vài năm trở lại đây, hệ điều hành Android ra đời và trở thành nền tảng điện thoại thơng minh phổ biến nhất thế giới. Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng của các nhà sản xuất. Hầu như tất cả những smartphone sử dụng hệ điều hành Android đều dễ sử dụng, đơn giản tùy biến theo sở thích cá nhân. Với sự phát triển mạnh mẽ như vậy của Android, và lập trình game trên Android, cơ hội cho lập trình viên là rất lớn. Vì vậy, nhóm đã chọn đề tài “Lập trình ứng dụng game Fun Math trên Android”. Trong đề tài này, nhóm sẽ trình bày cái nhìn cơ bản về lập trình game trên Android và demo ứng dụng game trong đó. MỤC LỤC LỜI MỞ ĐẦU 3 MỤC LỤC 4 DANH MỤC HÌNH 6 MỞ ĐẦU 7 1. Lý do chọn đề tài 7 2. Mục đích nghiên cứu 7 3. Đối tượng của đề tài 7 4. Phạm vi nhiên cứu 7 5. Phương pháp nghiên cứu 7 6. Bố cục đề tài 7 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 9 1.1.Tổng quan về Android 9 1.1.1.Tầng hạt nhân Linux 9 1.1.2.Tầng Library 10 1.1.3. Phần Android runtime 10 1.1.4. Tầng Application Framework 10 1.1.5. Tầng Application 11 1.2. Tổng quan về Game ENGINE 11 1.2.1.Khái niệm 11 1.2.2.Mục đích 12 1.2.3.Ảo hóa phần cứng (Hardware Abstraction) 12 1.2.4.Phần mềm trung gian 13 1.2.5.Kiến trúc tổng quan 13 1.3.Tổng quan về Unity 15 1.3.1.Tổng quan về Unity 15 1.3.2.Các thành phần trong Unity 15 CHƯƠNG 2. THIẾT KẾ ỨNG DỤNG GAME 18 2.1.Thiết kế game 18 2.1.1.Tạo và cấu hình game 2D 18 2.1.2. Load Back ground 21 2.1.3.Sự kiện thực hiện phép toán 22 2.1.4.Sự kiện kích nút Button 23 2.1.5.Điêm số và hiển thị 24 2.1.6.Thời gian trong game 24 2.1.7.Âm thanh trong game 25 2.2.Xây dựng game Fun Math 27 2.2.1.Giới thiệu game 27 2.2.2.Quy luật chơi 28 2.2.3.Điểm số 28 2.2.4.Cách biên dịch ra file APK trong unity 29 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 34 1. Cài đặt 34 2. Kết quả 34 2.1. Ưu điểm 34 2.2. Nhược điểm 34 3. Hướng phát triển 34 TÀI LIỆU THAM KHẢO 35 DANH MỤC HÌNH Hình 1.1.Tổng quan kiến trúc Unity 14 Hình 1.2.Khung Inspector 16 Hình 1.3.Giao diện Prefabs 17 Hình 2.1.Tạo project mới 18 Hình 2.2.Giao diện First look 19 Hình 2.3.Giao diện Chọn phép chiếu vng góc 20 Hình 2.4.Giao diện tạo folder 21 Hình 2.8.Thơng tin file âm thanh 26 Hình 2.9.Thêm thành phần Audio Source 27 Hình 2.10.Thêm file âm thanh cho thành phần AudioSource 27 Hình 2.11.Giao diện Menu game 28 Hình 2.12.Giao diện game Play 28 Hình 2.13.Giao diện game Over 29 Hình 2.14.Giao diện External Tools 30 Hình 2.15.Giao diện BuildSettings 30 Hình 2.16.Giao diện Inspector 31 Hình 2.17.Giao diện Resolution and presentation 31 Hình 2.18.Giao diện Splash Image 32 Hình 2.19.Giao diện Other setting 32 MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay, tốn học được coi là nền tảng của sự phát triển. Hàng triệu người từ các nền văn hóa khác nhau đều nỗ lực trong mơn học này. Ở Việt Nam tốn học cũng đã thể hiện được vị trí quan trọng kể từ khi đất nước bắt đầu phát triển. Tất cả mọi lĩnh vực đều cần có trình độ tốn. Vì đó tốn học là một mơn rất quan trọng mà chúng ta nên học và rèn luyện hàng ngày đặc biệt là trẻ nhỏ. Khi còn nhỏ, trẻ sẽ dễ dàng tiếp thu tốn nhanh nhất để thúc đẩy sự suy tư của trẻ thay vì học thụ động như khi trưởng thành. Độ tuổi này các em có khả năng tự mình tìm ra các quy tắc riêng cho bản thân theo một cách hồn tồn bản năng. Nhờ đó, trẻ sẽ học nhanh và dễ dàng tiếp thu kiến thức mà giáo viên truyền đạt. Nhận thấy tầm quan trọng đó nhóm em quyết định tìm hiểu và thực hiện đề tài: “Lập trình ứng dụng game Funsmath trên Android” 2. Mục đích nghiên cứu Việc xây dựng game Funsmath sẽ giúp trẻ ơn tập những phép tốn , cải thiện bộ nhớ, phát triển tư duy logic, phát triển tư duy kết hợp 3. Đối tượng của đề tài Trò chơi phù hợp cho học sinh tiểu học 4. Phạm vi nhiên cứu Tìm hiểu kĩ thuật lập trình bằng Unity Các phép tốn trong bảng cửu chương 5. Phương pháp nghiên cứu Nghiên cứu lỹ thuyết Khảo sát thực tế Xây dựng chương trình theo mục tiêu đã đặt ra Phân tích, thiết kế hệ thống chương trình sao cho phù hợp 6. Bố cục đề tài Nội dung đồ án gồm các thành phần sau: MỞ ĐẦU Chương 1. Cơ sở lý thuyết Chương 2. Thiết kế ứng dụng KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 1.1.Tổng quan về Android Android là một hệ điều hành dựa trên nền tảng Linux ,được chạy trên 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, được phát triển bởi Tổng cơng ty Android, với nguồn vốn từ Google và sau này được chính Google mua lại vào năm 2005.Năm 2007 android ra mắt cùng với tun bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các cơng ty phần mềm, phần cứng, và viễn thơng với mục tiêu đẩy mạnh các tiêu chuẩn cho thiết bị di động Tháng 10 năm 2008 điện thoại đầu tiên chạy Android được bán trên thị trường Kiến trúc hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (phiên 2.6), tầng Libraries & Android runtime, tầng Application Framework và trên cùng là tầng Application 1.1.1.Tầng hạt nhân Linux Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều thực hiện mức cấp thấp Ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process) Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và chỉnh sửa rất nhiều để phù hợp với tính chất của những thiết bị cầm tay, như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng khơng dây Tầng này có các thành phần chủ yếu: Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng trên màn hình (di chuyển, cảm ứng…) Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth USB driver: Quản lý hoạt động của các cổng giao tiếp USB Keypad driver: Điều khiển bàn phím Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vơ tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thơng được thực hiện MSystem Driver: Quản lý việc đọc ghi lên các thiết bị như thẻ nhớ SD, flash Power Management: Giám sát việc tiêu thụ điện năng 1.1.2.Tầng Library Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như: Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghi các loại định dạng âm thanh, hình ảnh, video thơng dụng Thư viện web (LibWebCore): đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều cơng nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX… Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng 1.1.3. Phần Android runtime Phần này chứa các thư viện mà một chương trình viết bằng ngơn ngữ Java có thể hoạt động. Runtime có 2 bộ phận tương tự như mơ hình chạy Java trên máy tính thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như Java IO, Collection, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngơn ngữ Java nhưng một ứng dụng Java của Android khơng được chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát triển 1.1.4. Tầng Application Framework Tầng này xây dựng bộ cơng cụ – các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài ngun Đây là một nền tảng mở, điều đó có 2 điều lợi: Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng như để có thể có nhiều mẫu mã, style hợp thị hiếu người dùng. Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác với Motorola, HTC, TMobile, Samsung… 10 Hình 2.4.Giao diện tạo folder Kết quả như hình sau: Hình 2.5.Giao diện Assets 2.1.2. Load Back ground Game 2D được xây dựng từ nhiều mơ hình 2D được đặt lên khơng gian 2 chiều sao cho hài hòa với nhau để tạo thành cảnh vật trong game. Do đó việc nạp 21 và hiển thị được mơ hình 2D trong game là vơ cùng quan trọng Engine Unity hỗ trợ rất nhiều định dạng mơ hình 2D, 3D khác nhau như: PNG, JPG khi mơ hình được load vào project ta sẽ chuyển mơ hình sang mục Prefab để có thể tái sử dụng nhiều lần Unity có hỗ trợ load mơ hình bằng cách kéo thả Prefab vào vị trí bất kỳ trong Scene. Tuy nhiên, để linh hoạt hơn thì chúng ta có thể xử lý bằng code Trước tiên, ta tạo ra một file script và gắn nó vào đối tượng Back ground để đoạn script có thể thức thi. Trong file script này, ta khai báo để khởi tạo Back ground này để có thể đổ màu tự động nên back ground private Camera cam; void Awake () { cam = gameObject.GetComponent ();} void Start () { RandomColor (); } public void RandomColor () { cam.backgroundColor = new Color(Random.value,Random.value, Random.value);} 2.1.3.Sự kiện thực hiện phép tốn Một số xử lý cơ bản: Phép tốn có 3 phần phép tốn bên trái, bên phải, tốn tử của phép tốn. Trong file script ta khai báo 3 biến này: private int leftNumber; // so ben trai phep toan private int rightNumber; // so ben phai phep toan private int mathOperator; // toan tu cua phep toan (+,-,*) Khi người chơi bắt đầu vào màn hình chơi thì các biến này sẽ tự động hiển thị các số một các ngẫu nhiên trong khoảng các số đã giới hạn từ 1 đến 9: leftNumber = Random.Range (1, 10); // Random so 1-> rightNumber = Random Range (1,10); mathOperator = Random.Range(0, 3);//Randomtoán tử phéptốn(+,-,*) Phần kết quả của phép tốn thì ta có 2 biến kết quả: kết quả đúng của phép tốn và kết quả hiển thị ra ngồi màn hình của phép tốn: private int trueResult; // private dan an dung cua phep toan int falseResult; // dan an se hien man hinh Để thực hiện phép toán ta thực thi trong cấu lệnh như sau: switch (mathOperator) { // + case 0: 22 // ket qua dung trueResult = leftNumber + rightNumber; // ket qua da bi thay doi falseResult = trueResult + Random.Range (-2, 3); Đối với phép toán trừ và nhân ta làm tương tự như với phép cộng ở trên. Để hiển thị phép tốn ra ngồi màn hình game, ta sử dụng UI.Text. Trước khi thao tác với UI, ta cầm import thư viện như sau: using UnityEngine.UI; resultText.GetComponent ().text = falseResult.ToString (); Hình 2.6.Giao diện Scene game 2.1.4.Sự kiện kích nút Button Trong sự kiện này ta phải gắn cho button sự kiện On Click Đâu tiên, ta tạo ra một file script và gắn nó vào đối tượng để đoạn script có thể thức thi lệnh click: public void onTrueButtonClick(){ // ket qua show trung voi dap an dung > D if (trueResult == falseResult) { currentTime = 0; createMath (); // Tao lai phep toan moi } else { // neu tinh sai LoseGame(); } } 23 Hình 2.6.Giao diện On Click Button 2.1.5.Điêm số và hiển thị Điểm số trong game được sử dụng duy nhất trong Fun Math, do game khơng hỗ trợ các tính năng như Leaderboard (bảng xếp hạng), hay Statistic (bảng thống kê các số liệu người chơi đạt được), … nên bạn hồn tồn có thể lưu trữ điểm số ở GameController.cs. Để hiện thực tổng qt, tơi đặt biến lưu trữ điểm số tại lớp: public static int currentScore Ta thấy, với mỗi button đều có hai trường hợp xảy ra. Nếu currentScore được cập nhật trực tiếp mỗi button.Nếu để ý, bạn sẽ thấy với mỗi trường hợp trả lời đúng, hàm createMath sẽ được gọi để tạo thử thách tiếp theo, bất kể là với phím hay button nào. Do đó, tơi thêm đoạn code xử lý currentScore vào hàm như sau currentScore += Trong trường hợp chọn sai kết quả trò chơi kết thúc điểm số trò chơi sẽ được cập nhật lại trong một file class lưu trữ GameValues.cs. Điểm số sẽ được so sách với nhau để lấy điểm số cao nhất tro trò chơi GameValues.currentScore = currentScore; int highScore = PlayerPrefs.GetInt ("HIGH_SCORE", 0); if (currentScore > highScore) { PlayerPrefs.SetInt ("HIGH_SCORE", currentScore); 2.1.6.Thời gian trong game Progress Timer trong game được biểu diễn dưới dạng Panle (cả màn hình là một thanh thời gian). Khoảng thời gian đã trơi qua của một level được thể hiện bằng tỉ lệ phần màn hình bị mờ đi 24 Hình 2.7.Giao diện thanh time Đồng bộ Progress Timer với thời gian thực của game Progress Timer tạo ra ở trên chỉ là hình ảnh hiển thị của thời gian chơi trong game, chúng ta sẽ quản lý thời gian với Script. Để quản lý thời gian, ta sử dụng hai thuộc tính LimitTime và currentTime. CurrentTime là thời gian hiện tại, tính từ thời điểm một level mới được bắt đầu, LimitTime chính là thời gian tối đa người chơi có được trong level đó. Ngồi ra, để thay đổi tỉ lệ vẽ của ProgressTimer, tơi sử dụng thêm một thuộc tính UI Text. Khai báo các thuộc tính trên như sau: public GameObject timeProgress;// time game private float limitTime; // time gioi han cho moi cau hoi private float currentTime; // thoi gian da troi qua cho moi cau hoi Tại hàm Start, ta thêm phần khai báo giá trị ban đầu cho các thuộc tính trên như sau : limitTime = 7f; // 7s currentTime = 0.0f; // moi vao game la 0s Quản lý thời gian và cập nhật Progress Timer : currentTime += Time.deltaTime; //mi vong lap troi qua if (currentTime > limitTime) { // het thoi gian LoseGame ();} Cuối cùng, để currentTime cập nhật lại từ đầu sau mỗi level, tơi thêm dòng sau vào hàm ButtonOnClick: currentTime = 0; 2.1.7.Âm thanh trong game 25 Âm thanh là yếu tố không kém phần quan trọng trong ứng dụng game. Thật nhàm chán khi một cảnh đánh đánh nhau, bắn nhau hay các hiệu ứng đẹp mắt mà khơng có âm thanh. Âm thanh 3 chiều sẽ làm cho game thực hơn và sống động hơn Để chơi được một file âm thanh trong Unity có 2 cách: bằng code hoặc trên giao diện. Dù chọn cách nào thì trước hết chúng ta phải có sẵn các file âm thanh và import vào project. Sau khi import âm thanh vào project, nếu file hợp lệ chúng ta sẽ thấy như hình sau và có thể nhấn nút play để nghe thử. Hình 2.8.Thơng tin file âm thanh Trên menu của Unity, vào GameObject Create Empty Chọn đối tượng vừa tạo và gắn thành phần “AudioSource” cho đối tượng này. AudioSource là một đối tượng âm thanh. Muốn Play hay Stop, thay đổi cách lặp, tăng giảm volume nhạc thì phải thơng qua đối tượng này 26 Hình 2.9.Thêm thành phần Audio Source Sau khi gắn thành phần âm thanh cho đối tượng vừa tạo, chúng ta dễ dàng chỉnh sửa các thơng số và gán file âm thanh cho thành phần AudioSource này. Hình 2.10.Thêm file âm thanh cho thành phần AudioSource 2.2.Xây dựng game Fun Math 2.2.1.Giới thiệu game Đặc trưng của dòng game mà em đã xây dựng tại 1 thời điểm chỉ có một người chơi, trò chơi sẽ có 1 màn hình chơi, người chơi sẽ chọn đúng hoặc sai thơng qua hai nút tên màn hình game. Nếu người chơi chọn sai đán án thì màn hình GameOver sẽ xuất hiên thơng báo cho người chơi số điểm. Màn hình sẽ có tính thời gian, vì vậy ta phải nhìn nhanh và tính kỹ trước khi ấn chọn nút đáp án đúng để 27 nâng cao điểm số Hình 2.11.Giao diện Menu game 2.2.2.Quy luật chơi Người chơi sẽ chọn nút đúng hoặc sai cho một đáp án phép tốn Hình 2.12.Giao diện game Play 2.2.3.Điểm số Người chơi sẽ được cộng 1 điểm khi chọn đúng 1 đáp án. Và điểm số cứ cộng dồn theo số màn mà người chơi đạt được, và kết quả cuối cùng sẽ được hiển thị khi người chơi chọn sai đáp án: 28 Hình 2.13.Giao diện game Over 2.2.4.Cách biên dịch ra file APK trong unity Để thực hiện biên dịch được các bạn làm theo các bước sau: * Bước 1: Download: + File android sdk + File JDK tại đây (Với jdk các bạn phải chọn phiên bản đúng với hệ điều hành của chúng ta là 32bit hay là 64bit) Sau khi down load xong các bạn giải nén và trỏ vào thư mục như hình ảnh phía dưới: (Nằm trong Menu>edit>References) 29 Hình 2.14.Giao diện External Tools *Bước 2: Trong giao diện unity vào File>BuildSettings Hình 2.15.Giao diện BuildSettings Bản thân unity chúng ta có thể biên dịch ra rất nhiều mơi trường khác nhau, nhưng trong bước này các bạn lưu ý phần android và các phân mà tơi bơi màu đỏ * Bước 3: Các bạn chọn Player Settings trong phần màu đỏ ở bước 2, sau khi chọn xong xuất hiện cửa sổ bên phía tay phải của các bạn như sau: 30 Hình 2.16.Giao diện Inspector Trong phần hình ảnh của bước 3 này các bạn lưu lý phần tơi đánh dầu là phần 1, 2 Với phần 1 các bạn phải nhập tên cơng ty hay tập thể cá nhân của các bạn, và 2 các bạn phải đưa kích thước ảnh icon cho game Bước 4: Các thành phần trong cửa số player setting Với phần Resolution and presentation Hình 2.17.Giao diện Resolution and presentation Trong hình này phần 1 chúng ta thực hiện chọn chế độ tự động cho phép màn hình game của chúng ta tự động xoay hoặc đặt chế độ thẳng đứng hay nằm ngang 31 Màn hình thẳng đứng chúng ta để là: Portrait Còn nằm ngang chúng ta để là: Landscape Với phần Icon Là phần biểu tượng cho game, các bạn có thể thay đổi theo kích thước đối với mỗi độ phân giải của điện thoại Với phần Splash Image Hình 2.18.Giao diện Splash Image Là ảnh được hiển thị khi bắt đầu vào game của chúng ta, thơng thường thì với bản unity free khi vào game các bạn sẽ thấy xuất hiện ảnh của Unity, còn phiên bản có bản quyền hay crack chúng ta có thể đặt ảnh của chúng ta tại đây khi bắt đầu mở game Với phần Other setting Hình 2.19.Giao diện Other setting Các bạn chú ý 3 phần đánh dấu, trong đó 1 chúng ta phải đặt tên identifier cho game chúng ở trên trong đó các bạn khơng được đặt số ban đầu. Phần 2 là phiên bản game chúng ta biên dịch và phần 3 là thiết bị có hỗ trợ cho chíp ARMv7 hay x86 có thể cài đặt được khơng, lưu ý khi chúng ta chọn 2 chế độ này thì dung lượng game của chúng ta sẽ thay đổi. (Nếu armv7 dung lượng game sẽ cao hơn so với x86) *Bước 5: Thực hiện Build trong cửa sổ build setting 32 Hình 2.20.Giao diện Build 1. Chúng ta dành cho nhà phát triển 2. Dành cho debug game 3. Build ra thư mục nào đó trên máy tính 4.Thực hiện build và chạy ln, lưu ý các bạn phải cắm đây lối tới điện thoại 33 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 1. Cài đặt Ứng dụng được Build dưới dạng file .apk Copy file .apk vào điện thoại chạy hệ điều hành Android Mở file .apk đã copy vào để fiel tự cài đặt trên diện thoại. 2. Kết quả Game có giao diện thân thiện, đẹp mắt, dễ sử dụng Game đã đạt được u cầu cơ bản của trò chơi 2.1. Ưu điểm Hiểu được cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng trên Unity Nâng cao kiến thức lập trình và tiếng anh chun ngành thơng qua những tài liệu về Unty bằng tiếng anh Tổ chức load các màn tương ứng thơng qua các button Xây dựng các chức năng như điểm, màn chơi thơng qua ngơn ngữ lập trình C# trên MonoDevelop Tạo âm thanh cho cho trò chơi và 1 số chức năng khác 2.2. Nhược điểm Do kiến thức của em về Unity còn hạn hẹp nên các chức năng trong game còn nghèo nàn Chưa xây dựng được hồn chỉnh 1 game như mong muốn 3. Hướng phát triển Tối ưu hóa các xử lý giúp game chạy nhanh hơn Tăng thêm số lượng màn chơi để người chơi thêm nhiều lựa chọn Cung cấp thêm các cơng cụ để người chơi có thể trợ giúp các câu khó hoặc tạo ra nhiều mức độ chơi khác nhau, hiệu ứng âm thanh, … 34 TÀI LIỆU THAM KHẢO [0] Ryan Henson Creighton, Unity 3D Game Development by Example, Packt Publishing, 2010 [0] Will Goldstone, Unity Game Development Essential, Packt Publishing, 2009 [0] Efraim Meulenberg, Game Development with Unity, VTC, 2010 [0] Efraim Meulenberg, Game Development for iPhone/iPad Using Unity iPhone, VTC, 2010 [5] Sue Blackman, Beginning 3D Game Development with Unity 4 AllinOne, MultiPlatform Game Development 2nd Edition , 2013 [6] Terry Norton , Learning C# by Developing Games with Unity 3D Beginner's Guide , 2013 [7] Jeff Murray , C# Game Programming Cookbook for Unity 3D, 2014 [8] Charles Bernardoff, NGUI for Unity, 2014 35 ... Nhận thấy tầm quan trọng đó nhóm em quyết định tìm hiểu và thực hiện đề tài: “Lập trình ứng dụng game Funsmath trên Android 2. Mục đích nghiên cứu Việc xây dựng game Funsmath sẽ giúp trẻ ơn tập những phép tốn , cải thiện bộ nhớ, phát triển tư duy logic, phát triển tư duy kết hợp... sự phát triển mạnh mẽ như vậy của Android, và lập trình game trên Android, cơ hội cho lập trình viên là rất lớn. Vì vậy, nhóm đã chọn đề tài “Lập trình ứng dụng game Fun Math trên Android . Trong đề tài này, nhóm sẽ trình bày cái nhìn cơ bản... Để tạo ra một prefab, ta đơn giản chỉ cần kéo một Game Object vào cửa sổ Project Hình 1.3.Giao diện Prefabs 17 CHƯƠNG 2. THIẾT KẾ ỨNG DỤNG GAME 2.1.Thiết kế game Ý tưởng thiết kế game Đặc trưng của dòng game mà em đã xây dựng tại 1 thời điểm chỉ