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

lập trình đối tượng hướng GAME zoombie survival

21 5 0

Đ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

Cấu trúc

  • Tuổi và chỉ số ESRB

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Giảng viên hướng dẫn Tạ Chí Hiếu Sinh viên thực hiện Nguyễn Văn Hiếu Mã Sinh Viên B16DCP.

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO MƠN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Giảng viên hướng dẫn : Tạ Chí Hiếu Sinh viên thực : Nguyễn Văn Hiếu Mã Sinh Viên : B16DCPT218 Niên khóa : 2016 – 2022 Mục Lục LỜI MỞ ĐẦU ………………………………………………………………….1 I Lập trình hướng đối tượng………………………………………… ….2 Lập trình hướng đối gì………………………………………… tượng đối tượng……………………………………………………………… lớp…………………………………………………………………… khác đối tượng lớp…………………………………… II Các nguyên lý OOP………………………………………… II.1 tính đóng gói…………………………………………………………… II.2 tính thừa kế……………………………………………………………….6 II.3 tính đa hình……………………………………………………………….6 II.4 tính trừu tượng…………………………………………………………… II.5 ưu điểm lập trình hướng đối tượng……………………………….7 III GAME: Zoombie Survival .8 III.1 Giai đoạn tiền sản xuất Game……………………………………….…… III.2 Phương pháp tiếp cận, xây dựng Game………………………………….10 IV Code Game Zoombie Survival……………………………………… 12 IV.1 Code SoundManager…………………………………………………… 12 IV.2 Code PlayerMovement………………………………………………….12 IV.3 Code Player…………………………………………………………… 13 IV.4 Code GameController……………………………………………… 14 IV.5 Code Enemy…………………………………………………………….15 IV.6 Code Bullet…………………………………………………………… 16 I.1 I.2 I.3 LỜI CẢM ƠN…………………………………………………………………17 LỜI MỞ ĐẦU Trong thời đại CNTT phát triển nay, nhà lập trình ln phải suy nghĩ xem làm để tạo chương trình hay, tiện ích Và thứ hỗ trợ người lập trình ngơn ngữ lập trình Có số phương pháp lập trình truyền thống lập trình tuyến tính, lập trình cấu trúc Với lập trình tuyến tính số ứng dụng phức tạp thực Trong với lập trình cấu trúc, khơng quản lý thay đổi liệu có nhiều chương trình sử dụng biến chung, khơng tiết kiệm tài nguyên Để khắc phục số hạn chế trên, người ta xây dựng số mô hình lập trình tiên tiến như: Lập trình hàm, lập trình logic, lập trình trực quan, lập trình tương tranh, lập trình phân tán, lập trình hướng đối tượng Trong báo cáo này, em trình bày Lập trình hướng đối tượng áp dụng vào làm game I Lập trình hướng đối tượng Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) mẫu hình lập trình dựa khái niệm "cơng nghệ đối tượng", mà đó, đối tượng chứa đựng liệu, trường, thường gọi thuộc tính; mã nguồn, tổ chức thành phương thức Phương thức giúp cho đối tượng truy xuất hiệu chỉnh trường liệu đối tượng khác, mà đối tượng có tương tác (đối tượng hỗ trợ phương thức "this" "self") Trong lập trình hướng đối tượng, chương trình máy tính thiết kế cách tách khỏi phạm vi đối tượng tương tác với nhau.[1][2] Ngơn ngữ lập trình hướng đối tượng đa dạng, phần lớn ngơn ngữ lập trình theo lớp, nghĩa đối tượng ngôn ngữ xem thực thể lớp, dùng để định nghĩa kiểu liệu OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao Ngồi ra, nhiều người cịn cho OOP dễ tiếp thu cho người học lập trình phương pháp trước Một cách giản lược, khái niệm nỗ lực nhằm giảm nhẹ thao tác viết mã cho người lập trình, cho phép họ tạo ứng dụng mà yếu tố bên ngồi tương tác với chương trình giống tương tác với đối tượng vật lý Những đối tượng ngôn ngữ OOP kết hợp mã liệu mà chúng nhìn nhận đơn vị Mỗi đối tượng có tên riêng biệt tất tham chiếu đến đối tượng tiến hành qua tên Như vậy, đối tượng có khả nhận vào thông báo, xử lý liệu (bên nó), gửi hay trả lời đến đối tượng khác hay đến môi trường Đa phần ngôn ngữ lập trình thơng dụng (như C++, Delphi, Java, Python etc.) ngơn ngữ lập trình đa mẫu hình hỗ trợ lập trình hướng đối tượng nhiều mức độ khác nhau, thường kết hợp với lập trình mệnh lệnh, lập trình thủ tục Các ngơn ngữ lập trình hướng đối tượng đáng ý gồm có Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, ObjectiveC, Dart, Swift, Scala, Common Lisp, Smalltalk Lập trình hướng đối tượng Lập trình hướng đối tượng (OOP) kỹ thuật lập trình cho phép lập trình viên tạo đối tượng code trừu tượng hóa đối tượng 1.1 Đối tượng: vật, việc mà có tính chất, đặc tính, hành động giống ta gom góp lại thành đối tượng giống thực tế sống Khi lập trình OOP, định nghĩa lớp (class) để gom (mơ hình) đối tượng thực tế -Một đối tượng bao gồm thơng tin: thuộc tính phương thức • Thuộc tính thơng tin, đặc điểm đối tượng Ví dụ: người có đặc tính mắt, mũi, tay, chân… • Phương thức thao tác, hành động mà đối tượng thực Ví dụ: người thực hành động nói, đi, ăn, uống, 1.2 Lớp: Một lớp kiểu liệu bao gồm thuộc tính phương thức định nghĩa từ trước Đây trừu tượng hóa đối tượng Khác với kiểu liệu thông thường, lớp đơn vị (trừu tượng) bao gồm kết hợp phương thức thuộc tính Hiểu nơm na đối tượng có đặc tính tương tự gom lại thành lớp đối tượng 1.3 Sự khác đối tượng lớp: Lớp bạn hiểu khuôn mẫu, đối tượng thực thể thể dựa khn mẫu Ví dụ: Ta nói lồi chó, bạn hiểu class (lớp) chó có: • Các thơng tin, đặc điểm: chân, mắt, có đi, có chiều cao, có cân nặng, màu lơng… • Các hành động như: sủa, đi, ăn, ngủ… Đối tượng chó Phú Quốc ta ni nhà mang đặc tính lớp chó Hình minh hoạ 1.3 Các ngun lý OOP II 2.1 Tính đóng gói (Encapsulation) Note: • Các liệu phương thức có liên quan với đóng gói thành lớp để tiện cho việc quản lý sử dụng Tức lớp xây dựng để thực nhóm chức đặc trưng riêng lớp • Ngồi ra, đóng gói cịn để che giấu số thơng tin chi tiết cài đặt nội để bên ngồi khơng thể nhìn thấy Nói chung trạng thái đối tượng không hợp lệ thường do: chưa kiểm tra tính hợp lệ, bước thực khơng trình tự bị bỏ qua nên OOP có quy tắc quan trọng cần nhớ phải ln khai báo trạng thái bên đối tượng private cho truy cập qua -public/protected method/property Ví dụ ta thấy viên thuốc chữa cảm Chúng ta biết chữa cảm sổ mũi nhức đầu số thành phần chính, cịn cụ thể bên có hoạt chất hồn tồn khơng biết 2.2 Tính kế thừa (Inheritance) Nó cho phép xây dựng lớp dựa định nghĩa lớp có Có nghĩa lớp cha chia liệu phương thức cho lớp Các lớp khỏi phải định nghĩa lại, ngồi mở rộng thành phần kế thừa bổ sung thêm thành phần Tái sử dụng mã nguồn cách tối ưu, tận dụng mã nguồn Một số loại kế loại kế thừa thường gặp: đơn kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc Khi bắt đầu xây dựng ứng dụng bắt đầu thiết kế định nghĩa lớp trước Thông thường số lớp có quan hệ với lớp khác, chúng có đặc tính giống VD: lớp Android, iPhone Mỗi lớp đại diện cho loại smartphone khác lại có thuộc tính giống gọi điện, nhắn tin, chụp hình Thay chép thuộc tính này, ta nên đặt chúng vào lớp chung gọi lớp cha Chúng ta định nghĩa lớp cha – trường hợp Smartphone có lớp kế thừa từ nó, tạo mối quan hệ cha/con 2.3 Tính đa hình (Polymorphism) Tính đa hình hành động thực nhiều cách khác Đây lại tính chất nói chứa đựng hầu mạnh lập trình hướng đối tượng Hiểu cách đơn giản hơn: Đa hình khái niệm mà hai nhiều lớp có phương thức giống thực thi theo cách thức khác Ví dụ phần trên, smartphone kế thừa từ lớp cha Smartphone lưu trữ liệu cloud theo cách khác Android lưu trữ Google Drive iPhone lưu iCloud Một ví dụ đa hình thực tế Ta có vật: chó, mèo Cả vật lớp động vật Nhưng ta bảo động vật kêu chó kêu gâu gâu, mèo kêu meo meo Vậy ví dụ chó, mèo xem đối tượng vật hiểu kêu theo cách khác 2.4 Tính trừu tượng (Abstraction) Trừu tượng có nghĩ tổng qt hóa lên, khơng cần ý chi tiết bên Nó khơng màng đến chi tiết bên người ta hiểu nghe Ví dụ: Bạn chạy xe tay ga có hành động tăng ga để tăng tốc, chức tăng ga đại diện cho trừu tượng (abstraction) Người dùng cần biết tăng ga xe tăng tốc, khơng cần biết bên làm Ở lập trình OOP, tính trừu tượng nghĩa chọn thuộc tính, phương thức đối tượng cần cho việc giải tốn lập trình Vì đối tượng có nhiều thuộc tính phương thức, với tốn cụ thể khơng thiết phải chọn tất Ví dụ: Bài tốn quản lý sinh viên cần quản lý thơng tin • Họ tên • Ngày sinh • Giới tính • … Điểm thi mà lại không cần quản lý thêm thơng tin: • • Màu tóc • Sở thích Chiều cao Tại chúng thực khơng cần thiết • 2.5 Các ưu điểm lập trình hướng đối tượng • Dựa nguyên lý kế thừa, trình mơ tả lớp loại bỏ chương trình bị lặp, dư Và mở rộng khả sử dụng 10 lớp mà không cần thực lại Tối ưu tái sử dụng code hiệu • Đảm bảo rút ngắn thời gian xây dựng hệ thống tăng suất thực • Sự xuất khái niệm lớp đối tượng đặc trưng phương pháp lập trình hướng đối tượng Nó giải khuyết điểm phương pháp lập trình hướng cấu trúc để lại GAME: Zoombie Survival III 3.1 Giai đoạn tiền sản xuất Game 3.1.1 Game Idea: -Ý tưởng: Xây dựng game bắn súng với góc nhìn thứ Game dành cho người chơi, người chơi làm điều khiển nhân vật chống lại đợt công Zoombie cách dùng súng bắn vào chúng 3.1.2 Concept: Target: người chơi Concept art: • Đồ họa 3D 3.1.3 Game Design Document: Player Control: • Người chơi điều khiển nhân vật • Di chuyển chuột để thay đổi hướng nhìn camera nhân vật • Ấn chuột trái để bắn đạn 11 Gameplay • • Trong trình chơi, nhân vật Zoombie xuất tiến lại gần người chơi Nhiệm vụ người chơi bắn zombie, ghi điểm sinh tồn với số lượng máu định Challenge: • Người chơi phải liên tục quan sát bắn Zoombie Sound&Effect: • Trị chơi xun suốt có nhạc • Khi người chơi bán đạn, có sound effect • Khi người chơi bắn trúng mục tiêu, có sound effect thơng báo trúng đạn ảnh minh hoạ game 12 3.1.4 Pitch: Tên game : Zoombie Survival Thể loại: Game người chơi, 3D, Góc nhìn thứ Câu chuyện : Sinh tồn giới ảo Gameplay: • Trị chơi dành cho người chơi, Góc nhìn thứ • Di chuyển chuột click chuột để quan sát tiêu diệt Zoombie Tuổi số ESRB • Tuổi : – 45 • Chỉ số ESRB dự kiến : E (Everyone) Chứa hình ảnh, hoạt cảnh, ngơn ngữ bạo lực trò chơi nhẹ nhàng Nền tảng vận hành & yêu cầu phần cứng: • Nền tảng vận hành : Window 7,8,10 13 • u cầu phần cứng : Máy tính laptop RAM 100mb trở lên Ngày phát hành dự kiến : 17/1 3.2 Phương pháp tiếp cận, xây dựng game: 3.2.1 Phương pháp tiếp cận giải vấn đề • • • Phương pháp hướng đối tượng Sử dụng Game Engine : Unity Ngơn ngữ lập trình C# 3.2.2 Kĩ thuật lập trình • Kiến trúc Actor Component Game + Gameobject Player : Camera, PlayerController (Script nhận Input điều khiển người chơi, input thao tác, ) + Gameobject Enemy : Collider, Enemy (Script logic đuổi theo người chơi, hành động AI ) + Gameobject GameControler : GameController (Script quản lý vịng lặp game) + Gameobject Sound : AudioSource, SoundManager (Script quản lý âm thanh, phát âm cho game) + Gameobject Bullet : Rigidbody, Collider, Bullet(Logic viên đạn bay) • Kỹ thuật điều khiển vịng lặp + PlayerController : Nhận Input từ bàn phím để di chuyển, nhận Input tọa độ chuột để thay đổi góc nhìn, nhận click chuột trái để bắn + GameController : Điều khiển vịng lặp Game, kiểm tra trạng thái Player, thay đổi trạng thái game, qua màn,… • Tải lưu đệm liệu + Dữ liệu prefabs Bullet (Đạn) tải lên script Player người chơi click chuột bắn đạn 14 + Dữ liệu prefabs Enemy tải lên script GameController, zombie liên tục tạo suốt trị chơ • Xử lý nhập xuất + Game nhận liệu đầu vào từ tọa độ chuột để xoay camera người chơi (Thực script PlayerController) + Game nhận liệu đầu vào từ chuột trái để thực logic bắn đạn • Lập trình giao diện + Để thị giao diện, ta dùng scripts GameController để quản lý UI hiển thị cho người chơi, giao diện Text hiển thị cập nhật xun suốt vịng lặp • Xử lý âm + Ta dùng script SoundManager để quản lý âm + Sử dụng Component AudioSource để chạy nhạc xử lý gọi Sound effect • Xử lý va chạm + Xử lý va chạm đạn chạm vào kẻ địch IV Code Game Zoombie Survival 4.1: Code SoundManager 15 4.2:CodePlayerMovement 4.3: Code Player 16 4.3: Code GameController 17 4.4: Code Enemy 18 4.5: Code Bullet 19 LỜI CẢM ƠN 20 Để hoàn thành báo cáo môn học trước tiên em xin gửi đến thầy Tạ Chí Hiếu lời cảm ơn chân thành sâu sắc Đặc biệt, em xin gởi đến thầy Tạ Chí Hiếu người tận tình hướng dẫn, giúp đỡ em hồn thành báo cáo mơn lập trình hướng đối tượng lời cảm ơn sâu sắc Em xin chân thành cảm ơn giúp đỡ thầy tạo điều kiện cho em tìm hiểu cung cấp số liệu tài liệu cho em trình học làm tập Vì kiến thức thân cịn hạn chế, q trình thực tập, hồn thiện chun đề em khơng tránh khỏi sai sót, kính mong nhận ý kiến đóng góp từ thầy Em xin chân thành cảm ơn 21 ... hình lập trình tiên tiến như: Lập trình hàm, lập trình logic, lập trình trực quan, lập trình tương tranh, lập trình phân tán, lập trình hướng đối tượng Trong báo cáo này, em trình bày Lập trình hướng. .. hướng đối tượng áp dụng vào làm game I Lập trình hướng đối tượng Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) mẫu hình lập trình dựa khái niệm "cơng nghệ đối tượng" ,... lớp đối tượng đặc trưng phương pháp lập trình hướng đối tượng Nó giải khuyết điểm phương pháp lập trình hướng cấu trúc để lại GAME: Zoombie Survival III 3.1 Giai đoạn tiền sản xuất Game 3.1.1 Game

Ngày đăng: 19/12/2022, 10:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w