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

Lập trình game Unity 2D

51 152 1

Đ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

Định dạng
Số trang 51
Dung lượng 2,1 MB

Nội dung

TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: LẬP TRÌNH GAME UNITY 2D: CRUSH LOVE NGUYỄN QUỐC KHÁNH BIÊN HOÀ 11/2018 TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: LẬP TRÌNH GAME UNITY 2D: CRUSH LOVE Sinh viên thực hiện: NGUYỄN QUỐC KHÁNH Giảng viên hướng dẫn: ThS PHAN THỊ HƯỜNG BIÊN HOÀ 11/2018 LỜI CẢM ƠN Em xin chân thành cảm ơn thầy, cô Khoa CNTT Trường Đại Học Lạc Hồng thầy, cô tham gia giảng dạy cho lớp 14SE111 khóa 2014 hết lịng truyền đạt kiến thức cho chúng em trình học tập trường Đặc biệt, em xin chân thành cảm ơn Cơ ThS Phan Thị Hường tận tình giúp em thực đề tài Xin chân thành cảm ơn gia đình bạn bè giúp đỡ, động viên tinh thần, đóng góp nhiều ý kiến để giúp em hoàn thành đồ án Học viên Nguyễn Quốc Khánh LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi, tài liệu kết nghiên cứu đồ án trung thực Học viên Nguyễn Quốc Khánh TÓM TẮT ĐỒ ÁN Ngày với phát triển mạnh mẽ kỹ thuật cơng nghệ máy tính, cơng cụ hỗ trợ đắc lực người ngày trở nên mạnh mẽ Theo hình thức giải trí dùng điện thoại động phát triển theo điển hình Game 2D thiết bị di động Nhưng để xây dựng trị chơi có chất lượng tốt mặt hình ảnh âm thanh, cần nhiều thời gian cơng sức Từ đó, Game Engine đời giải vấn đề vướng mắc Game Engine cung cấp công cụ phát triển trực quan tái sử dụng thành phần Các mơi trường ngồi mặt hỗ trợ dựng cảnh vật, nhân vật, hiệu ứng đặt biệt, với công cụ xây dựng sẵn giúp phát triển trò chơi nhanh dễ dàng Trên thị trường xuất nhiều công cụ phát triển game như: Unity, Cry, Orge, Panda engine v.v… Trong đó, Unity đánh giá phù hợp cho người phát triển game không chuyên lại đảm bảo chất lượng sản phẩm Mặt khác, Unity hỗ trợ nhiều tảng như: Windows, Linux, Mac OS, hệ máy cầm tay PlayStation Sony, Xbox, Wii U, iOS, Android, Flash trình duyệt hỗ trợ HTML5 Từ xu hướng phát triển bất cập trên, tác giả chọn đề tài Nghiên cứu Unity2D Game Engine thiết kế trò chơi điện thoại di động nhằm mục đích phục vụ cơng tác tuyển sinh Đồ án trình bày phương pháp thực kết nghiên cứu theo bố cục sau: Phần mở đầu trình bày lý do, mục tiêu, đối tượng nghiên cứu, phương pháp nghiên cứu phạm vi đề tài Chương Trình bày tổng quan Engine Unity Chương Trình bày việc lập trình Unity 2D Chương Ứng dụng game phát triển Unity 2D Chương Tổng kết thành đạt suốt trình phát triển game Unity 2D MỤC LỤC Lý thực đề tài Mục tiêu .2 Đối tượng nghiên cứu Phương pháp nghiên cứu Phạm vi nghiên cứu .3 Chương Tổng Quan Về Engine Unity 1.1 Engine Unity gì? 1.2 Sơ lược lịch sử hình thành phát triển Unity .6 1.2.1 Hình thành .6 1.2.2 Giải thưởng .6 1.3 Tính Unity Chương Unity Engine 2.1 Giới thiệu chung Unity Engine 2.2 Các đặc điểm tính Unity 10 2.2.1 Rendering (kết xuất hình ảnh) 10 2.2.2 Lighting (ánh sáng) .10 2.2.3 Terrains (địa hình) 10 2.2.4 Substances (Texture thông minh) 11 2.2.5 Physics (vật lí) 11 2.2.6 Pathfinding (tìm đường) .11 2.2.7 Audio (âm thanh) 11 2.2.8 Programming (lập trình) .11 2.2.9 Networking 12 2.3 Các thành phần Unity 12 2.3.1 Assets 12 2.3.2 Scenes 12 2.3.3 Game Object 13 2.3.4 Components 14 2.3.5 Scripts 15 2.3.6 Prefabs 17 2.4 Giao diện Unity .17 2.4.1 Giao Diện 17 2.4.1 Cửa sổ Scene va Hierarchy 18 2.4.2 Cửa sổ Inspector 20 2.4.3 Cửa sổ Project .21 2.4.4 Cửa sổ Game 22 Chương Ứng dụng Game phát triển Unity .24 3.1 Giới thiệu Game 24 3.2 Các quy luật chơi .24 3.2.1 Di chuyển 25 3.2.2 Điểm số 25 3.2.3 Màn chơi .25 3.2.4 Kết nối với mạng xã hội Facebook .29 3.3 Source nguồn .29 3.3.1 Màn hình bắt đầu 29 3.3.2 Code game 29 3.4 Một số class quan trọng game 30 3.4.1 Play Game .30 3.4.2 Thông số người chơi .31 3.4.3 Bong bóng .32 3.5 Ứng dụng công tác tuyển sinh 34 3.6 Phân tích sơ đồ Error! Bookmark not defined 3.6.1 Sơ đồ Use Case Error! Bookmark not defined 3.6.2 Sơ đồ Sequence Error! Bookmark not defined Chương Kết luận 38 4.1 Đạt 38 4.2 Chưa đạt 38 4.3 Thuận lợi 38 4.4 Khó khăn 39 4.5 Kinh nghiệm rút .39 4.6 Hướng phát triển 39 TÀI LIỆU THAM KHẢO 40 DANH MỤC HÌNH Hình 1.1 Hình minh họa đa Hình 2.1 Asset Uinty .12 Hình 2.2 Các Scene Unity 13 Hình 2.3 Kéo tài nguyên vào Scene để sử dụng .14 Hình 2.4 Các thành phần đối tượng Camera 15 Hình 2.5 Cách tạo file script 15 Hình 2.6 Một file Script gắn vào đối tượng 16 Hình 2.7 Một số đối tượng Prefabs 17 Hình 2.8 Giao diện Unity 17 Hình 2.9 Các nút chức cho cửa sổ Scene .18 Hình 2.10 Cửa sổ Hierarchy 19 Hình 2.11 Cửa sổ Inspector .20 Hình 2.12 Cửa sổ Project 21 Hình 2.13 Các loại hình ảnh cửa sổ game .22 Hình 3.1 Sơ đồ use case tổng quát .23 Hình 3.2 Sơ đồ use case người chơi 25 Hình 3.3 Màn tải game 26 Hình 3.4 Màn chơi .26 Hình 3.5 Cửa hàng .27 26 Màn chơi gồm: Hình 3.3 Màn tải game Màn chơi có nhiệm vụ khởi chạy liệu trước vào chơi khác Hình 3.4 Màn chơi Đây chơi game Ở có button bắt đầu, thơng tin, cửa hàng, đánh giá, xếp hạng, đối tượng Player bong bóng 27 + Button bắt đầu (1): Khi ấn vào, chướng ngại vật rơi xuống nhiệm vụ phải bảo vệ bong bóng lâu tốt Các button biến đối tượng Player bong bóng + Button thơng tin (2): Hướng dẫn cách chơi cho người chơi + Button cửa hàng (3): Mở cửa hàng nơi người chơi mở khóa mẫu bong bóng khác + Button đánh giá (4): Xem ứng dụng CH Play sử dụng Android, AppStore sử dụng iOS + Button xếp hạng (5): Mở bảng xếp hạng người chơi Người chơi thấy thứ hạng so với người chơi khác + Đối tượng bong bóng (6): Đối tượng người chơi bảo vệ + Đối tượng Player (1): Ẩn phía sau button bắt đầu Hình 3.5 Cửa hàng Điểm số cao mà người chơi đạt dùng để mở khóa mẫu vật phẩm khác cửa hàng Trong cịn có button Fanpage trường Đại học Lạc Hồng chụp hình thành tích đạt game lên mạng xã 28 hội Facebook để chia sẻ với bạn bè Scene dùng để tiếp cận người chơi đến Fanpage trường giúp ích cho cơng tác tuyển sinh internet Hình 3.6 Màn xếp hạng người chơi Xem điểm số người chơi khác thân bảng xếp hạng Tích hợp Google API để lưu điểm số người chơi lên bảng xếp hạng Xếp hạng theo khu vực người chơi ứng dụng việc tuyển sinh theo khu vực khác [9] Từ tặng giải thưởng cho người chơi cao điểm theo khu vực mà diễn cơng tác tuyển sinh trường Hình 3.7 Bảng xếp hạng người chơi 29 Hình 3.5 cho thấy điểm số người chơi xếp hạng họ bảng xếp hạng Google API [10] 3.2.4 Kết nối với mạng xã hội Facebook Chia sẻ điểm số cao đạt được, kết nối người với Fanpage trường thông qua mạng xã hội Facebook từ biết thơng tin, sở thích người dùng ứng dụng công tác tuyển sinh [11] Việc hướng người chơi đến với Fanpage trường giúp ích công tác thu thập thông tin người chơi từ tổ chức kiện mà người chơi quan tâm đẩy mạnh khâu tuyển sinh 3.4 Source nguồn 3.3.1 Màn hình bắt đầu Hình 3.8 Màn hình tổng thể game Unity 3.3.2 Code game Ngôn ngữ tác giả chọn để lập trình game ngơn ngữ C# Visual Studio 2010 30 Hình 3.9 Một số Class có game + Class cloudgo dùng để tạo đám mây game + Class EnemieFo dùng để tạo chướng ngại vật rơi từ xuống + Class DestroyEnemie dùng để hủy chướng ngại vật khỏi vùng nhìn thấy camera + Class MenuShop dùng mở khóa vật phẩm cửa hàng + Class FBShare dùng để đăng nhập vào Facebook tiếp cận người chơi đến Fanpage thực nghiệm + Class Crush Class quan trọng dùng để di chuyển Player kiểm tra trạng thái bắt đầu hay kết thúc game, lưu trữ biến khác, kết nối đến Scene khác game,… 3.5 Một số class quan trọng game 3.4.1 Play Game if (isStar2) { Mous = Camera.main.ScreenToWorldPoint(Input.mousePosition); Mous = new Vector3(Mous.x, Mous.y, 0); 31 transform.position = Mous; } if (isStar) { if (!checkEnemie) { checkEnemie = true; Instantiate(Enemies, new Vector3(0, 6, 0), Quaternion.identity); Instantiate(Background, new Vector3(0, 0, 0), Quaternion.identity); } isStar = false; } Code di chuyển đối tượng Player để bảo vệ bong bóng cách lấy tọa độ người chơi chạm tay vào hình gán tọa độ cho Player 3.4.2 Thông số người chơi public Vector3 Mous; public Text txtScore, txtHighScore, txtScoreShare; private int scorepresent, highscore, scene, playgames, audiotest; private int score; public float timeEnemie; public float score2, timetest, timevisit; public bool isAlive, isStar, check, isStar2, loadscenes, checkEnemie; public GameObject Fanpage,Background, Player, Enemies, PanelInform, ImgLogo, ImgHighScore, 32 btnShareScore, btnStar, btnRank, btnQuestion, btnVote, btnShop, btnReStarGame, txtGameOver, txtScorepresent, txtSco; public AudioSource audioSource; public AudioClip music1, music2, music3, music4, music5; Khai báo số biến dùng để lấy tọa độ, lưu điểm số, thời gian, kiểm tra trạng thái bắt đầu hay kết thúc, GameObject lưu trữ, âm thanh,… 3.4.3 Bong bóng void ChangeImg() { if (select == 1) { this.GetComponent().sprite = heartballon0; } if (select == 2) { this.GetComponent().sprite = heartballon2; } if (select == 3) { this.GetComponent().sprite = heartballon3; } if (select == 4) 33 { this.GetComponent().sprite = heartballon4; } if (select == 5) { this.GetComponent().sprite = heartballon5; } if (select == 6) { this.GetComponent().sprite = heartballon6; } if (select == 7) { this.GetComponent().sprite = heartballon7; } if (select == 8) { this.GetComponent().sprite = heartballon8; } if (select == 9) { this.GetComponent().sprite = heartballon9; } if (select == 10) 34 { this.GetComponent().sprite = heartballon10; } } Thay đổi hình ảnh bong bóng tương ứng mở khóa vật phẩm cửa hàng cách kiểm tra biến select lưu trữ PlayerPrefs 3.6 Ứng dụng công tác tuyển sinh Bằng cách tạo Fanpage Facebook để thử nghiệm cho công tác tuyển sinh đến thời điểm kết nối tương tác nhiều người chơi [12] Game cịn có hệ thống chat live giúp cho Admin thông báo thông tin cần thiết trường kiện trường tố chức đến người chơi Ngồi game cịn có tích hợp thông tin tuyển sinh để thay cho chữ Game Over nhàm chán giúp người chơi có thêm nhìn trường Đại Học Lạc Hồng Button logo Lạc Hồng xuất vòng 3s sau người chơi ấn button bắt đầu game Và đạt điểm số cao lần chơi trước xuất button chia sẻ điểm số lên Facebook hướng người chơi tiếp cận Fanpage trường từ giúp cho việc thu thập thông tin người chơi cách hiệu 35 Hình 3.10 Button chia sẻ điểm số đạt lên Facebook Hình 3.11 Button Fanpage trường Đại Học Lạc Hồng 36 Hình 3.12 Lượt tiếp cận tương tác với viết Fanpage thử nghiệm Hình 3.13 Lượt chia sẻ với viết Fanpage thử nghiệm 37 Hình 3.14 Tổng thể viết Fanpage thử nghiệm Như hình 3.8, 3.9, 3.10 ta thấy Fanpage có gần 1000 người tương tác 3000 người tiếp cận viết Fanpage thực nghiệm Từ ta có thêm thơng tin người chơi qua Facebook gmail họ Hình 3.15 Một số người tương tác với Fanpage thử nghiệm Hình 3.11 cho ta thấy số người dùng tương tác với Fanpage thử nghiệm 38 Chương Kết luận Sau nhiều ngày suy nghĩ kĩ để chọn đề tài NCKH, cuối tác giả chọn đề tài làm game 2D offline Unity Bước đầu tìm hiểu Unity Game Engine gặp nhiều khó khăn việc tìm tài liệu xây dựng ý tưởng game tài liệu Unity đa phân tiếng Anh, sau khoảng thời gian dài cố gắng tìm tịi, học hỏi tác giả làm game Crush Love gần hoàn chỉnh để phục vụ cho đồ án tốt nghiệp Trong thời gian làm đề tài tác giả có số vấn đề đạt chưa đạt 4.1 Đạt  Xây dựng game chạy Androi Ios  Ứng dụng công tác tuyển sinh trường việc hướng người chơi tiếp cận đến Fanpage trường  Lập Fanpage thử nghiệm để tiếp cận người dùng Facebook  Tương tác kết nối người chơi mạng xã hội Facebook ứng dụng cho công tác tuyển sinh  Thu thập thông tin người dùng qua mạng xã hội Facebook gmail  Gửi thông tin trực tiếp từ Admin đến người chơi thông qua hệ thống chat live  Hiển thị thông tin tuyển sinh trường đến người chơi  Xếp hạng người chơi theo khu vực để thuận tiện công tác tuyển sinh 4.2 Chưa đạt  Chưa xây dựng hoàn chỉnh game mong muốn  Các Script Unity tổ chức chưa thực rõ ràng  Sắp xếp vật phẩm chưa logic  Kiến thức công tác tuyển sinh yếu nên việc tổ chức kiện chưa tốt mục tiêu đề 4.3 Thuận lợi  Vận dụng kiến thức học trường để làm đồ án 39  Được dạy tận tình thầy bạn  Tài liệu nhiều Internet 4.4 Khó khăn  Unity mơi trường lập trình nên bắt tay vào làm cảm thấy bỡ ngỡ  Việc thu thập tài liệu kết nối người mạng xã hội khó khăn  Ý tưởng hạn hẹp  Kiến thức cơng tác tuyển sinh cịn thiếu xót 4.5 Kinh nghiệm rút  Phải biết xếp thời gian cách hợp lý khơng gặp nhiều khó khăn  Làm việc phải tập trung hồn thành tốt  Dành thêm thời gian tìm hiểu người chơi phản hồi họ 4.6 Hướng phát triển  Tối ưu hóa để game chạy nhanh  Tăng thêm đọ khó để người chơi cảm thấy thú vị  Thêm nhiều vật phẩm  Cung cấp thêm cơng cụ để người chơi chọn chỉnh sửa vật phẩm theo ý thích,…  Kết hợp với Fanpage trường để tạo thêm nhiều kiện nhằm đẩy mạnh công tác tuyển sinh tương lai 40 TÀI LIỆU THAM KHẢO [1] Gameplay in 2D unity3d [Online] 10 10, 2018 10, 2018 https://docs.unity3d.com/Manual/Overview2D.html [2] Sprite Renderer unity3d [Online] 10 https://docs.unity3d.com/Manual/class-SpriteRenderer.html [3] Physics unity3d [Online] 10 10, 2018 10 10, 2018 https://docs.unity3d.com/Manual/PhysicsSection.html [4] Audio unity3d [Online] https://docs.unity3d.com/Manual/Audio.html [5] UI Canvas unity3d [Online] 10 10, 2018 https://docs.unity3d.com/Manual/UICanvas.html [6] Unity 4.3 2D Tutorial: Getting Started raywenderlich [Online] 2018 https://www.raywenderlich.com/2573-unity-4-3-2d-tutorial-getting-started [7] Matthieu Creating a 2D game with Unity pixelnest [Online] 2016 https://pixelnest.io/tutorials/2d-game-unity/ [8] Chowdhuri, Shahed Ninja Cat Flyer – Unity 2D Tutorial wakeupandcode [Online] 10, 2015 http://wakeupandcode.com/ninja-cat-flyer-unity-2d-tutorial/ [9] Leaderboards Google Play Games Services [Online] 25, 2018 https://developers.google.com/games/services/common/concepts/leaderboards [10] Google Play Games Services SDK Downloads Google Play Games Services [Online] 25, 2018 https://developers.google.com/games/services/downloads/sdks [11] API Library Google developer [Online] https://console.developers.google.com/apis/library? [12] Login with Facebook developers facebook https://developers.facebook.com/docs/facebook-login/android [Online] 2018 ... bày tổng quan Engine Unity Chương Trình bày việc lập trình Unity 2D Chương Ứng dụng game phát triển Unity 2D Chương Tổng kết thành đạt suốt trình phát triển game Unity 2D MỤC LỤC Lý thực đề... Programming (lập trình) Lập trình yếu tố quan trọng phát triển Game Lập trình cho phép nhà phát triển tạo nên khả tương tác, trí thơng minh yếu tố Gameplay cho trị chơi 12 Unity cho phép lập trình. .. dung thiết kế, tài liệu trình bày việc lập trình Unity giới thiệu ngơn ngữ lập trình lớp, hàm thư viện dựng sẵn Unity thông qua ví dụ thực tế phát triển game Crush Love 2D Cuối giới thiệu trò

Ngày đăng: 25/07/2020, 10:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Gameplay in 2D. unity3d. [Online] 10 10, 2018. https://docs.unity3d.com/Manual/Overview2D.html Link
[6]. Unity 4.3 2D Tutorial: Getting Started. raywenderlich. [Online] 2018. https://www.raywenderlich.com/2573-unity-4-3-2d-tutorial-getting-started Link
[7]. Matthieu. Creating a 2D game with Unity. pixelnest. [Online] 2016. https://pixelnest.io/tutorials/2d-game-unity/ Link
[8]. Chowdhuri, Shahed. Ninja Cat Flyer – Unity 2D Tutorial. wakeupandcode. [Online] 3 10, 2015. http://wakeupandcode.com/ninja-cat-flyer-unity-2d-tutorial/ Link
[9]. Leaderboards. Google Play Games Services. [Online] 5 25, 2018. https://developers.google.com/games/services/common/concepts/leaderboards Link
[10]. Google Play Games Services SDK Downloads. Google Play Games Services. [Online] 5 25, 2018. https://developers.google.com/games/services/downloads/sdks.[11]. API Library. Google developer. [Online]https://console.developers.google.com/apis/library Link
[12]. Login with Facebook. developers facebook. [Online] 2018. https://developers.facebook.com/docs/facebook-login/android Link

TỪ KHÓA LIÊN QUAN

w