Đề tài Xây dựng ứng dụng game Fun Math trên Android

LỜI MỞ ĐẦU Hiện nay, toá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 toá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 độ toán. Vì đó toá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 toá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 hoàn toà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 đó.

doc30 trang | Chia sẻ: thanhlinh222 | Lượt xem: 3521 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng ứng dụng game Fun Math trên Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 Lớp: CNTT - DK04 Hải Dương, tháng 09/2017 LỜI MỞ ĐẦU Hiện nay, toá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 toá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 độ toán. Vì đó toá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 toá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 hoàn toà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 DANH MỤC HÌNH Hình 1.1.Tổng quan kiến trúc Unity 11 Hình 1.2.Khung Inspector 13 Hình 1.3.Giao diện Prefabs 14 Hình 2.1.Tạo project mới 15 Hình 2.2.Giao diện First look 15 Hình 2.3.Giao diện Chọn phép chiếu vuông góc 16 Hình 2.4.Giao diện tạo folder 17 Hình 2.6.Giao diện On Click Button 19 Hình 2.7.Giao diện thanh time 20 Hình 2.8.Thông tin file âm thanh 22 Hình 2.9.Thêm thành phần Audio Source 22 Hình 2.10.Thêm file âm thanh cho thành phần AudioSource 23 Hình 2.11.Giao diện Menu game 23 Hình 2.12.Giao diện game Play 24 Hình 2.13.Giao diện game Over 24 Hình 2.14.Giao diện External Tools 25 Hình 2.15.Giao diện BuildSettings 25 Hình 2.16.Giao diện Inspector 26 Hình 2.17.Giao diện Resolution and presentation 26 Hình 2.18.Giao diện Splash Image 27 Hình 2.19.Giao diện Other setting 27 Hình 2.20.Giao diện Build 28 MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay, toá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 toá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 độ toán. Vì đó toá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 toá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 hoàn toà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 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. 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 toá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 tuyên 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 các thiết bị di động . Tháng 10 năm 2008 chiếc đ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 bả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. - M-System 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 nguyên. Đâ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, T-Mobile, Samsung Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao 1.1.5. Tầng Application Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng như: - Các ứng dụng cơ bản, được cài đặt đi liền với hệ diều hành: gọi diện, quản lý danh bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, quay phim chụp ảnh, - Các ứng dụng cài thêm như các trò chơi, từ điển, các phần mềm học tiếng anh. Các chương trình có đặc điểm là: - Viết bằng Java có phần mở rộng là apk. - Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho nó. - Android là hệ diều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình chạy cùng một lúc, tuy nhiên với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. - Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống. - Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng đó chỉ có một hạn chế là không được phép sử dụng quá 5% công suất CPU. Điều đó nhằm tránh độc quyền trong sử dụng CPU. - Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu. 1.2. Tổng quan về Game ENGINE 1.2.1.Khái niệm Một Game Engine (hay công cụ tạo Game / động cơ Game) là một phần mềm được viết cho mục đích thiết kế và phát triển video Game. Có rất nhiều loại Game Engine dùng để thiết kế Game cho các hệ máy như hệ Consoles hay máy tính cá nhân (PC). Chức năng cốt lõi của Game Engine phần lớn nằm trong công cụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2 chiều (2D) hay 3 chiều (3D), công cụ vật lý (hay công cụ tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động (Animation), trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị, và kết nối mạng. Quá trình phát triển Game tiết kiệm được rất nhiều thời gian và kinh phí vào việc tái sử dụng và tái thích ứng một Engine để tạo nhiều Game khác nhau. 1.2.2.Mục đích Game Engine cung cấp một bộ các công cụ phát triển trực quan và có thể tái sử dụng từng thành phần trong đó. Nói chung các bộ công cụ này cung cấp một môi trường phát triển tích hợp được đơn giản hóa. Phát triển ứng dụng nhanh (Rapid Application Development) cho Game theo cách lập trình hướng dữ liệu. Những Game Engine này đôi khi còn được gọi là các "phần mềm trung gian cho Game" (Game Middleware), như ý nghĩa của thuật ngữ, chúng cung cấp một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để có thể phát triển một ứng dụng Game đồng thời giảm giá thành, độ phức tạp, và kịp thời hạn phát hành - tất cả các yếu tố quan trọng trong ngành công nghiệp Game đầy cạnh tranh. Giống như các phần mềm trung gian khác, Game Engine thường cung cấp một nền tảng trừu tượng hóa, cho phép một Game có thể chạy trên nhiều hệ máy bao gồm các hệ console hoặc máy tính cá nhân với một vài thay đổi (nếu cần) trong mã nguồn của Game đó. Thông thường, phần mềm trung gian cho Game được thiết kế với một nền tảng kiến trúc dựa trên các thành phần khác, cho phép các hệ thống khác nhau trong Engine có thể thay thế hoặc mở rộng với các phần mềm trung gian khác chuyên biệt hơn như là Havok cho hệ thống vật lý trong Game, Miles Sound System cho âm thanh, hay Bink cho các đoạn video. Một số Game Engine chỉ cung cấp khả năng dựng hình (kết xuất) 3D thời gian thực hay một khả năng riêng biệt nào khác thay vì rất nhiều chức năng trong phạm vi rộng mà Game yêu cầu. Loại Engine này thường được gọi là: "Graphics Engine", "Rendering Engine," hay "3D Engine" thay vì thuật ngữ bao quát hơn là "Game Engine”. 1.2.3.Ảo hóa phần cứng (Hardware Abstraction) Thông thường, Engine 3D hay hệ thống kết xuất đồ họa trong Game Engine thường được xây dựng trên một nền tảng giao diện lập trình ứng dụng đồ họa như Direct3D hay OpenGL cung cấp sẵn một hệ ảo hóa cho GPU hay card đồ họa. Thư viện mã nguồn cấp thấp (cấp cơ bản) như DirectX, SDL, và OpenAL (thư viện âm thanh mã nguồn mở) cũng thường được sử dụng trong các Game khi chúng cung cấp khả năng truy cập phần cứng độc lập. 1.2.4.Phần mềm trung gian Một số hãng hiện nay chuyên tập trung vào phát triển các bộ phần mềm gọi là phần mềm trung gian (Middleware). Các nhà phát triển Middleware cố gắng phát triển một bộ phần mềm mạnh mẽ bao gồm hầu hết các yếu tố mà một nhà phát triển Game cần đến để xây dựng một Game. Phần lớn các Middleware cung cấp các cơ sở để phát triển game một cách dễ dàng, như hình ảnh, âm thanh, hệ thống vật lý và chức năng AI. Gamebryo và RenderWare là hai phần mềm trung gian được sử dụng khá rộng rãi. Một số Middleware chỉ làm một chức năng nhưng nó còn hiệu quả hơn cả toàn bộ Engine. Phân loại Game Engine theo mức độ chuyên biệt Roll-your-own Game Engine Mostly-ready Game Engine Point-and-click Game Engine 1.2.5.Kiến trúc tổng quan Engine Unity hỗ trợ cho chúng ta UnityAPI để viết script game. UnityAPI là API lập trình game trong Unity rất mạnh. UnityAPI chứa các đối tượng và phương thức hỗ trợ hầu hết các đối tượng và các loại thành phần trong Unity.Trong một scene thường có nhiều đối tượng game. Mỗi đối tượng này có thể có hoặc không có đoạn script nào gắn lên đó. Nếu muốn gắn script vào đối tượng, ta bắt buộc phải kế thừa class đó từ lớp MonoBehaviour của UnityAPI và tên class phải trùng với tên file script. Mỗi script khi gắn lên đối tượng game đều được đối tượng game xem như một thành phần bên trong và được cấp phát vùng nhớ khi chạy game. Hình 1.1.Tổng quan kiến trúc Unity Bên trong UnityAPI chứa rất nhiều lớp hỗ trợ lập trình game, trong đó có một số lớp quan trọng như : MonoBehaviour: tất cả các script muốn gắn vào một đối tượng game bắt buộc phải kế thừa từ lớp này. GameObject: lớp cha của tất cả các thực thể trong scene. Component: lớp cha của tất cả các thành phần có thể gắn vào đối tượng. Transform: giúp thay đổi vị trí, xoay, biến đổi tỉ lệ mô hình. Input: hỗ trợ lập trình với chuột, cảm ứng đa điểm, cảm biến gia tốc. Camera: giúp lập trình camera. Light: giúp tạo ánh sáng trong game. Projector: giúp chiếu texture lên bề mặt vật thể. ParticleEmitter: hỗ trợ tạo các hiệu ứng particle đẹp mắt. Audio: hỗ trợ lập trình với âm thanh. Animation: chạy chuyển động của mô hình nhân vật. Rigidbody: giúp tạo hiệu ứng vật lý liên quan đến trọng lực như bóng nẩy, lăn. CharacterController: giúp điều khiển nhân vật di chuyển theo độ cao địa hình. Collider: hỗ trợ lập trình va chạm giữa các vật thể. GUI: giúp lập trình giao diện người dùng trên Unity. 1.3.Tổng quan về Unity 1.3.1.Tổng quan về Unity - Unity3D là một môi trường phát triển tích hợp, mạnh mẽ, hỗ trợ thao tác kéo thả, tuỳ biến giao diện nhanh chóng, trực quan. - Cung cấp các công cụ xử lý đồ hoạ, tích hợp sẵn thư viện vật lý, tính toán va chạm... - Hỗ trợ phát triển cả game 2D và 3D. - Hỗ trợ nhiều nền tảng thông dụng như OSX, Linux, Window, Web, iOS, Window Phone 8, Android, PS3, BB - Cộng đồng người dùng, hỗ trợ rộng lớn. - Có phiên bản miễn phí có thể chạy được trên Window và Mac OSX. Unity3D hướng tới người sử dụng chuyên nghiệp và cả nghiệp dư, nên khá dễ để sử dụng. Với ngôn ngữ lập trình bằng C#, JavaScript hoặc BOO. Ngày nay rất nhiều nhà phát triển game lựa chọn Unity3D để phát triển bởi khả năng hỗ trợ đa nền tảng và sự mạnh mẽ tiện dụng của Unity3D. Đến với Unity, các bạn sẽ không cần phải băng khoăn về các vấn đề xử lý, các khái niệm đồ hoạ phức tạp... tất cả đều trở nên dễ dàng và nhanh chóng với Unity. Một số game được phát triển trên Unity như AngryBird, Elegy of War,  1.3.2.Các thành phần trong Unity - Assets: Assets là tài nguyên xây dựng nên một dự án trên Unity. Những tài nguyên có thể là hình ảnh, âm thanh, mô hình 3D, chất liệu (material), texture,  hoặc cả một project hoàn chỉnh. Các asset do chính những nhà phát triển game tạo ra và có thể được download miễn phí hoặc trả phí trên Unity Asset Store. Đây là một trong những tính năng rất hay của Unity. Các asset này sẽ giúp giảm thiểu rất nhiều thời gian cho việc thiết kế và lập trình game. - Scenes: là một cảnh chơi (hoặc một phân đoạn) là những màn chơi riêng biệt, một khu vực trong game hoặc thành phần có trong nội dung của trò chơi (các menu). Các thành phần này được gọi là Scene. Bằng cách tạo ra nhiều Scenes, chúng ta có thể phân phối thời gian và tối ưu tài nguyên, kiểm tra các phân đoạn trong game một cách độc lập. - Game Objects: Khi Asset được sử dụng trong các Scene, Unity định nghĩa đó là Game Object. Đây là một thuật ngữ thông dụng, đặc biệt trong mảng lập trình. Tất cả các Game Object đều chứa ít nhất một thành phần cơ bản là Transform, lưu trữ thông tin về vị trí, góc xoay và tỉ lệ của Game Object. Thành phần Transform có thể được tuỳ biến và chỉnh sửa trong quá trình lập trình. - Components: Components là các thành phần trong game, bổ sung tính năng cho các Game Object. Mỗi Component có chức năng riêng biệt. Đa phần các Component phụ thuộc vào Transform, vì nó lưu trữ các thông số cơ bản của Game Object. Bản chất của Game Object là không có gì cả, các đặc tính và khả năng của Game Object nằm hoàn toàn trong các Component. Do đó chúng ta có thể xây dựng nên bất kỳ Game Object nào trong game mà chúng ta có thể tưởng tượng được. Hình 1.2.Khung Inspector - Scripts: Scripts được Unity xem như một Component. Đây là thành phần thiết yếu trong quá trình phát triển game. Bất kỳ một game nào, dù đơn giản nhất đều cần đến Scripts để tương tác với các thao tác của người chơi, hoặc quản lý các sự kiện để thay đổi chiều hướng của game tương ứng với kịch bản game. Unity cung cấp cho lập trình viên khả năng viết Script bằng các ngôn ngữ: JavaScript, C#. Unity không đòi hỏi lập trình viên phải học cách lập trình trong Unity, nhưng trong nhiều tình huống, chúng ta cần sử dụng Script trong mỗi phần của kịch bản game. Để viết Script, chúng ta có thể làm việc với một trình biên tập Script độc lập của Unity, hoặc làm việc trên Mono Developer được tích hợp vào Unity trong những phiên bản gần đây. Mono Developer là một IDE khá tốt, cung cấp nhiều chức năng tương tự Visual Studio. Mã nguồn viết trên Mono Developer sẽ đươc cập nhật và lưu trữ trong dự án trên Unity. - Prefabs: Prefabs thực chất là Game Object được lưu trữ lại để tái sử dụng. Các Game Object được nhân bản từ một prefab sẽ giống nhau hoàn toàn, ngoại trừ thành phần Transform để phân biệt và quản lý được tốt hơ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 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ỉ 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 để nâng cao điểm số. 2.1.1.Tạo và cấu hình game 2D * Tạo dự án - Bật Unity lên, vào menu File/New Project Hình 2.1.Tạo pro