Xây dựng game phiêu lưu trên unity

52 494 2
Xây dựng game phiêu lưu trên unity

Đ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

LỜI CẢM ƠN Em xin chân thành cảm ơn Thầy, Cô giáo khoa Công Nghệ Thông Tin, Đại Học Công Nghệ Thông Tin Truyền Thông giảng dạy em môn thời gian vừa qua Đặc biệt Cô Nguyễn Lan Oanh Thạc Sĩ Công Nghệ Thông Tin giáo viên hướng dẫn trực tiếp, tận tình bảo giúp đỡ em hoàn thành đồ án tốt nghiệp Trong trình làm đồ án trình làm báo cáo với giáo viên hướng dẫn khó tránh khỏi sai sót, mong Thầy, Cô bỏ qua Đồng thời trình độ lý luận kinh nghiệm thực tiễn hạn chế nên báo cáo tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp Thầy, Cô để em có thêm nhiều kinh nghiệm Chúc Thầy, Cô có sức khỏe dồi dào, thành công công việc, nghiệp sống Em xin chân thành cảm ơn! Sinh viên Lê Văn Thuyên LỜI CAM ĐOAN Em xin cam đoan rằng: Số liệu kết nghiên cứu đồ án hoàn toàn trung thực chưa sử dụng công bố công trình khác Mọi giúp đỡ cho việc thực đồ án cám ơn thông tin trích dẫn đồ án ghi rõ nguồn gốc Sinh viên Lê Văn Thuyên MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN VỀ UNITY .6 1.1 Giới thiệu Unity .6 1.2 Các khái niệm 1.3 Làm quen với môi trường Unity 10 1.3.1 Các thành phần bố trí .10 1.3.2 Tạo cấu hình với dự án 2D 11 1.3.3 Tạo đối tượng .13 CHƯƠNG PHÂN TÍCH THIẾT KẾ 28 2.1 Phân tích yêu cầu 28 2.1.1 Khảo sát 28 2.1.2 Mục tiêu cần đạt 28 2.2 Phân tích thiết kế hệ thống 29 2.2.1 Các chức chương trình 29 2.2.2 Biểu đồ Use Case (Use Case Diagram) .29 2.2.3 Biểu đồ trình tự (Sequence Diagram) 30 2.2.4 Biểu đồ lớp (Class Diagram) 33 2.2.5 Biểu đồ hoạt động (Activity Diagram) 34 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH 37 3.1 Giới thiệu chương trình 37 3.2 Kịch trò chơi 37 3.2.1 Nhân vật quái vật 37 3.2.2 Đạn, vũ khí 39 3.2.3 Bẫy game 40 3.3 Các công đoạn làm game 41 3.3.1 Tạo khu vực game 41 3.3.2 Tạo giới hạn di chuyển vùng tương tác game 43 3.3.3 Tạo chuyển động game .43 3.3.3 Viết code cho xử lý 45 3.3.4 Thiết lập âm Game 46 3.4 Giao diện trò chơi .47 KẾT LUẬN 50 Nhận xét, đánh giá 50 Hướng phát triển đề tài 50 TÀI LIỆU THAM KHẢO .51 LỜI NÓI ĐẦU Với phát triển cách nhanh chóng vũ bão công nghệ Internet giới nói chung Việt Nam nói riêng game gần không khái niệm xa lạ cá nhân, ngược lại cảm thấy gần gũi sống Chúng ta bắt gặp trò chơi thiết bị công nghệ nhỏ thiết bị công nghệ cao Nói đến game hẳn phần lớn người đồng ý loại hình giải trí có sức thu hút lớn,nhất với giới trẻ Đặc biệt sau đời Internet, game online xuất nhanh chóng gây sức hấp dẫn to lớn Chúng ta chơi game online mạng, game offline PC, game dòng máy chuyên Play Station hãng Sony với phiên PS2, PS3, PS4… game phát triển mạnh thiết bị di động điện thoại di động, máy Xbox…Hàng năm lợi nhuận từ game đem doanh thu lên đến hàng tỉ đô la cho công ty chuyên phát triển sản xuất game nước phát triển Nhật Bản, Mỹ có nhiều công ty chuyên sản xuất game Nintendo, Sony, Sega năm công ty đạt doanh thu hàng tỷ USD Hay với nước sau Hàn Quốc,Trung Quốc có ngành công nghê game mạnh nhờ có đầu tư đắn chiến lược phát triển tốt Một trò chơi mua với giá hàng ngàn hay chí hàng triệu, hàng tỷ đô la Không phải game cấu hình cao, đồ họa khủng đêm nguồn lợi nhuận khủng khiếp mà có game đơn giản cấu hình thấp, đồ họa năm giới công nghệ hấp dẫn thu hút người chơi với lối chơi đơn giản, đề khó hiểu thời đại công nghệ Mặc dù VINASA xếp game định hướng công nghệ chiến lược hiệp hội giai đoạn 2006-2010, bên cạnh định hướng phần mềm nhúng ERP thị trường game Việt Nam yếu CHƯƠNG TỔNG QUAN VỀ UNITY 1.1 Giới thiệu Unity - Unity3D 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ô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 game 2D 3D - Hỗ trợ nhiều tảng thông dụng 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 miễn phí chạy Window Mac OSX - Unity3D hướng tới người sử dụng chuyên nghiệp nghiệp dư, nên dễ để sử dụng Với ngôn ngữ lập trình C#, JavaScript BOO - Ngày nhiều nhà phát triển game lựa chọn Unity3D để phát triển khả hỗ trợ đa tảng mạnh mẽ tiện dụng Unity3D - Đến với Unity, bạn không cần phải băn khoăn vấn đề xử lý, khái niệm đồ hoạ phức tạp tất trở nên dễ dàng nhanh chóng với Unity - Một số game phát triển Unity AngryBird, Elegy of War,… - Ta vào để download cài đặt Unity3D trực tiếp trang chủ : http://unity3d.com/unity/download/ - Unity có loại phiên bản, cho người dùng free, phiên pro phí - Tải Unity cài đặt bình thường, đến kết thúc cài đặt bạn chọn phiên Pro cần phải mua, người dùng free chọn kích hoạt qua web, cần có kết nối mạng internet, sau chọn cài đặt thủ công nhập mail, chọn free sử dụng Unity free 1.2 Các khái niệm * GameObject - Một đối tượng cụ thể game gọi game object, nhân vật, đồ vật Ví dụ: cối, xe cộ, nhà cửa, người * Component - Một GameObject có nhiều thành phần cấu tạo nên hình ảnh (sprite render), tập hợp hành động (animator), thành phần xử lý va chạm (collision), tính toán vật lý (physical), mã điều khiển (script), thành phần khác thứ gọi component GameObject * Sprite - Là hình ảnh 2D game object hình ảnh đầy đủ, phận * Animation - Là tập hình ảnh động dựa thay đổi liên tục nhiều sprite khác * Key Frame - Key Frame hay Frame trạng thái animation Có thể tạo nên từ sprite hay nhiều sprite khác * Prefabs - Là khái niệm Unity, dùng để sử dụng lại đối tượng giống có game mà cần khởi tạo lại giá trị vị trí, tỉ lệ biến dạng góc quay từ môt đối tượng ban đầu Ví dụ: Các đối tượng đồng tiền game Mario có xử lý giống nhau, nên ta việc tạo đối tượng ban đầu, đồng tiền lại sử dụng prefabs Hoặc ta lát gạch cho nhà, viên gạch sử dụng prefabs * Sounds - Âm game * Script - Script tập tin chứa đoạn mã nguồn, dùng để khởi tạo xử lý đối tượng game - Trong Unity dùng C#, Java Script, BOO để lập trình Script * Scenes - Quản lý tất đối tượng chơi game * Assets - Bao gồm tất phục vụ cho dự án game sprite, animation, sound, script, scenes… * Camera - Là game object đặc biệt scene, dùng để xác định tầm nhìn, quan sát đối tượng khác game * Transform - Là phép biến đổi tịnh tiến, quay theo trục, phóng to thu nhỏ đối tượng 1.3 Làm quen với môi trường Unity 1.3.1 Các thành phần bố trí * Scenes - Phần màu đỏ số - Phần phần hiển thị đối tượng scenes cách trực quan, lựa chọn đối tượng, kéo thả, phóng to, thu nhỏ, xoay đối tượng - Phần có để thiết lập số thông số hiển thị ánh sáng, âm anh, cách nhìn 2D hay 3D * Game - Phần màu đỏ số - Phần hiển thị game thực thi, tab bên cạnh tab Scenes * Inspector - Phần số màu vàng - Phần hiển thị component Game Object thông số component * Project - Phần số màu xanh - Phần hiển thị thư mục Assets, chứa tất tài nguyên dự án game - Ở phần này, bên cạnh tab khác, có phần Console để hiển thị log trình debug 10 - Quái vật: Có loại quái vật với lượng máu, tốc độ di chuyển mức sát thương khác Kẻ thù loại 1:  Máu = 40  Tốc độ = 1.5  Sát thương = 10 Đây loại kẻ thù có số lượng lớn, nhiên chúng dễ bị tiêu diệt lượng máu thấp Kẻ thù loại 2:  Máu = 50  Tốc độ = 1.8  Sát thương = 15 Đây loại kẻ thù có tốc độ di chuyển nhanh Kẻ thù loại 3:  Máu = 60  Tốc độ = 1.3  Sát thương = 15 38 Đây loại kẻ thù có tốc độ vừa phải, nhiên chúng có thêm kiểu công phun độc Kẻ thù loại 4:  Máu = 80  Tốc độ =  Sát thương = 20 Đây loại kẻ thù có lượng máu cao nhất, nhiên chúng lại di chuyển chậm 3.2.2 Đạn, vũ khí - Người chơi bắt đầu với súng lục mặc định, người chơi thu thập vũ khí để tăng khả diệt kẻ thù Súng đạn tìm thấy số khu vực định Có loại vũ khí là: - Súng lục (mặc định): Loại súng có vô hạn đạn, phát bắn viên đạn Súng có ổ đạn chứa tối đa viên, bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi viên đạn có sức sát thương 10 đơn vị - Súng shotgun: Loại súng không vô hạn đạn, nhân vật phải thu thập thêm đạn Tuy nhiên bắn chùm mảnh đạn theo hình sẻ quạt, tầm sát thương rộng so với súng lục Súng có ổ đạn chứa tối đa viên bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi mảnh đạn có sức sát thương 10 đơn vị 39 - Súng phóng lựu: Loại súng không vô hạn đạn, nhân vật phải thu thập thêm đạn Tuy nhiên bắn đạn nổ có sức sát thương lớn, ảnh hưởng tới nhân vật đạn nổ gần Súng có ổ đạn chứa tối đa viên bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi đạn có sức sát thương 50 đơn vị với kẻ thù 25 đơn vị với nhân vật Hình 3.2: Các loại vũ khí game 3.2.3 Bẫy game Bẫy loại đối tượng mà nhân vật bị chết gặp tương tác Hình 3.3: Bẫy loại 40 Nhân vật gặp loại bẫy phòng đặc biệt Nếu người chơi lấy chìa khóa phòng bẫy kích hoạt Nhiệm vụ người chơi tìm cách lấy chìa khóa mà không làm kích hoạt bẫy Hình 3.4: Bẫy loại Nhân vật gặp loại bẫy khu vực tầng ngầm Bẫy chia thành ô có số ô qua Nhiệm vụ người chơi qua khu vực mà không bị sập bẫy Loại bẫy thay đổi ngẫu nhiên đáp án người chơi chơi lại game 3.3 Các công đoạn làm game 3.3.1 Tạo khu vực game - Sử dụng công cụ Photoshop để vẽ chi tiết bề mặt khu vực, chi tiết hình ảnh có kích thước 32 pixel x 32 pixel Hình 3.5: Một số chi tiết bề mặt 41 - Sử dụng công cụ Tiled để vẽ khu vực qua chi tiết bề mặt, lưu file tmx Hình 3.6: Giao diện công cụ Tiled - Sử dụng công cụ Tiled2Unity để convert file tmx thành dạng đối tượng Unity Hình 3.7: Giao diện công cụ Tiled2Unity 42 3.3.2 Tạo giới hạn di chuyển vùng tương tác game - Sử dụng thành phần Polygon Collider 2D để vẽ biên khớp với vùng giới hạn di chuyển tường, đồ vật, - Sử dụng thành phần Box Collider 2D kèm thuộc tính Is Trigger để vẽ biên khớp với vùng tương tác cánh cửa, đồ vật cần kiểm tra, Hình 3.8: Giới hạn vùng tương tác game 3.3.3 Tạo chuyển động game - Sử dụng công cụ Animation Unity để tạo chuyển động cho nhân vật quái vật Hình 3.9: Chuyển động nhân vật 43 Hình 3.10: Chuyển động quái vật - Sử dụng thành phần Animator để liên kết chuyển động với Hình 3.11: Animator 44 - Khai báo thành phần Aimator code Animator anim; anim = GetComponent(); anim.SetInteger("direction", 1); 3.3.3 Viết code cho xử lý Ở công đoạn ta cần nắm số hàm Unity như: - Hàm tạo chuyển động cho đối tượng Rigidbody2D rBody; rBody = GetComponent(); rBody.MovePosition(rBody.position + movement_vector * Time.deltaTime * speed); - Hàm chọn Animation Animator anim; anim = GetComponent(); anim.SetInteger("direction", 1); - Hàm kiểm tra va chạm void OnTriggerEnter2D(Collider2D coll) { //Do something } - Hàm sinh đối tượng Instantiate(gameObject, transform.position, transform.rotation); - Hàm hủy đối tượng Destroy(gameObject); - Hàm ẩn đối tượng gameObject.SetActive(false); - Tiểu trình Unity private IEnumerator auto_destroy() { yield return new WaitForSeconds(delay_time); } 45 3.3.4 Thiết lập âm Game - Sử dụng công cụ GodWave để thu chỉnh sửa âm Hình 3.12: Giao diện công cụ GodWave - Chọn âm cho đối tượng thành phần Audio Source Unity Hình 3.13: Chọn âm cho đối tượng 46 3.4 Giao diện trò chơi Hình 3.14: Giao diện Đây giao diện trò chơi, bao gồm Menu chính: - New Game : để bắt đầu chơi - Load : Tải game lưu lại - Quit : Để thoát trò chơi - Ngoài tùy chọn ẩn Survival xuất sau hoàn thành game Hình 3.15: Giao diện chơi 47 - Đây giao diện bắt đầu chơi, người dùng chạm vào vùng điều hướng bên trái để di chuyển nhân vật, nút mũi tên lên xuống để đổi súng, nút hình bàn tay để kiểm tra thu thập item nút hồng tâm để bắn súng tiêu diệt kẻ thù - Phần phía súng hiển thị số đạn ổ / tổng số đạn có Hình 3.16: Hiệu ứng quái vật bị tiêu diệt - Khi quái vật bị tiêu diệt hiệu ứng kích hoạt, kèm theo âm Hình 3.17: Vật phẩm game - Có loại vật phẩm là: Màu đỏ đạn: lần thu thập tăng tổng số đạn Màu xanh máu: lần thu thập số máu tăng lên Màu trắng khóa: lần thu thập mở cánh cửa tương ứng với khóa 48 Hình 3.18: Khi nhân vật bị chết - Đây hình ảnh nhân vật hết máu bị chết Hiệu ứng âm kích hoạt, đồng thời chữ “YOU ARE DEAD” Hình 3.19: Menu - Đây hình ảnh pause lên bảng tùy chọn Sẽ có Menu chính: Resume: Là quay lại trò chơi để tiếp tục chơi sau tạm dừng trò chơi Quit: Là quay giao diện trò chơi 49 KẾT LUẬN Nhận xét, đánh giá Qua trình khảo sát, thực hoàn thành đề tài, giúp em có nhìn tổng quát nhu cầu giải trí nói chung game nói riêng Hiện nhu cầu giải trí người ngày cao game biết đến nhu cầu giải trí giai đoạn phát triển nhanh chóng Đó dấu hiệu tốt ngành công nghệ thông tin ngày Tuy nhiên, thời gian có hạn kiến thức hạn chế nên chương trình nhiều thiết sót chưa thực chức upload điểm lên server Hướng phát triển đề tài Để đề tài hoàn hảo cần xây dựng thêm chức upload điểm, hình ảnh cần chăm chút âm cần đầu tư kỹ 50 TÀI LIỆU THAM KHẢO [1] https://unity3d.com/learn/tutorials [2] https://www.youtube.com/results?search_query=unity+tutorial [3] http://docs.unity3d.com/Manual/index.html [4] http://unityviet.com/ [5] http://unity3d.com.vn/ 51 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Thái nguyên, ngày tháng năm 2016 (Kí ghi rõ họ tên ) 52 ... dung phiêu lưu giải đố smart phone có nhiều ưu so với thể loại khác Tìm kiếm với từ khóa “google play adventure games” (game phiêu lưu) cho 11 triệu kết quả, từ khóa “google play puzzle games” (game. .. nhanh chóng với Unity - Một số game phát triển Unity AngryBird, Elegy of War,… - Ta vào để download cài đặt Unity3 D trực tiếp trang chủ : http:/ /unity3 d.com /unity/ download/ - Unity có loại phiên... chọn free sử dụng Unity free 1.2 Các khái niệm * GameObject - Một đối tượng cụ thể game gọi game object, nhân vật, đồ vật Ví dụ: cối, xe cộ, nhà cửa, người * Component - Một GameObject có nhiều

Ngày đăng: 23/04/2017, 10:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan