‫Xin chào và chào mừng trở lại.
‫Bây giờ chúng tôi đã tạo ra một chiếc xe tăng có thể di chuyển xung quanh và thậm chí xoay tháp pháo của nó.
‫Và bây giờ chúng tôi đã sẵn sàng để tạo một lớp tháp có thể kế thừa một số chức năng mà
‫xe tăng được thừa hưởng từ lớp pod cơ sở.
‫Bây giờ, khi chúng tôi đã tạo một lớp tháp, chúng tôi sẽ ghi đè chức năng đánh dấu để chúng tôi cũng có
‫thể xoay tháp pháo của nó.
‫Vì vậy, mục tiêu của chúng tôi ở đây là làm cho các tháp pháo xoay để chúng luôn nhìn vào xe tăng.
‫Bằng cách này, khi họ bắt đầu bắn đạn, đôi khi họ sẽ bắn trúng xe tăng miễn là xe tăng
‫không di chuyển nhanh chóng.
‫Và chúng tôi cũng sẽ tìm ra cách chúng tôi có thể giữ được chiếc xe tăng -.
‫Bằng cách đó, chúng ta có thể nhắm mục tiêu xe tăng - và xoay tháp pháo về phía xe tăng -.
‫Chúng tôi đang chuẩn bị sẵn sàng cho một số cuộc chiến với đạn.
‫Vì vậy, tôi ở đây trong trình chỉnh sửa và tôi sẽ đi vào thư mục điều chỉnh xe tăng của chúng tôi, nơi có căn
‫cứ - và các lớp xe tăng.
‫Bây giờ, tôi muốn tạo một lớp tháp dựa trên lớp cơ sở.
‫Bây giờ, cách chúng tôi đã làm điều này với lớp xe tăng là chúng tôi đã đúng.
‫Được nhấp vào cơ sở - và chọn tạo lớp C ++ có nguồn gốc từ dựa trên một cách thay
‫thế là đi tới công cụ và chọn lớp C ++ mới.
‫Và từ đây, chúng ta có thể nhấp vào tab cho biết tất cả các lớp và tìm kiếm cơ sở -.
‫Và ở đây chúng ta thấy cơ sở của chúng ta - lớp.
‫Nếu tôi chọn mục này và nhấp vào tiếp theo, bây giờ tôi sẽ tạo một lớp mới dựa trên cơ sở -.
‫Tôi sẽ để nó theo cùng một đường dẫn như tất cả các lớp C ++ khác của chúng tôi và tôi sẽ gọi nó là tháp.
‫Vì vậy, hãy nhấp vào Tạo lớp.
‫Vì vậy, đây là tuổi tháp mới của tôi và Tower Dot.
‫CP Bây giờ, điều đầu tiên chúng ta cần là chức năng đánh dấu vì tháp sẽ muốn xoay tháp pháo của
‫nó để đối mặt với -.
‫Vì vậy, chúng tôi sẽ ghi đè chức năng đánh dấu ở đây.
‫Vì vậy, tôi sẽ tạo một phần công khai mới và chúng ta sẽ nhập đánh dấu khoảng trống ảo, chiếm một float
‫có tên là Delta Time, và đây là một ghi đè.
‫Bây giờ chúng ta sẽ đi vào chi tiết hơn về ảo và ghi đè trong các video trong tương lai, nhưng về cơ bản chúng ta
‫đang sử dụng chức năng đánh dấu kế thừa và tạo một triển khai mới cho nó.
‫Vì vậy, hãy sử dụng chức năng đánh dấu và thực hiện nó ở đây trong Tower CP.
‫Bây giờ chúng ta cần thêm tiền tố vào tên hàm đánh dấu bằng một tháp và dấu hai chấm kép.
‫Và như mọi khi, bạn nên gọi là super tick và chúng ta cần vượt qua thời gian Delta.
‫Bây giờ những gì tôi muốn làm ở đây là xoay tháp pháo xe tăng để tháp này đe dọa chiếc xe tăng
‫và sẵn sàng bắn đạn.
‫Nhưng tôi chỉ muốn làm điều này nếu xe tăng nằm trong tầm bắn.
‫Bây giờ, để biết xe tăng có trong tầm bắn hay không, chúng ta cần biết khoảng cách từ tháp pháo
‫đến xe tăng.
‫Bây giờ, đây là một gizmo nhỏ đại diện cho nguồn gốc của thế giới.
‫Nói cách khác, điểm trong không gian mà X, Y và Z bằng không.
‫Bây giờ, khi chúng ta nói về vị trí của một diễn viên, chúng ta đang nói về vectơ từ điểm gốc đến vị
‫trí đó.
‫Và chúng tôi luôn có thể lấy vectơ vị trí đó bằng cách sử dụng vị trí diễn viên để chúng tôi có thể lấy vị trí của
‫một trong các tháp và vị trí của xe tăng.
‫Và nếu chúng ta biết hai địa điểm đó, chúng ta có thể tính được khoảng cách giữa chúng.
‫Bây giờ, chúng ta có thể làm điều này với toán học vectơ, nhưng lớp vectơ F có một hàm gọi là dist, và
‫hàm này đưa đến các vectơ vị trí và những gì nó trả về là khoảng cách giữa chúng.
‫Vì vậy, ở đây trong tệp CP tháp, trong chức năng đánh dấu, tôi sẽ viết một vài ghi chú để chúng tôi biết những
‫gì chúng tôi phải làm.
‫Đầu tiên, chúng ta cần tìm khoảng cách đến xe tăng sau khi kiểm tra xem xe tăng có nằm trong tầm bắn hay không
‫và có xoay tháp pháo về phía xe tăng hay không.
‫Vì vậy, chúng tôi có một số việc phải làm ở đây.
‫Bây giờ, để tìm khoảng cách đến bể, chúng ta cần phải nắm được bể.
‫Bây giờ, một nơi tốt để làm điều đó là trong Begin Play.
‫Vì vậy, ngoài chức năng đánh dấu, chúng ta hãy tiếp tục và ghi đè Begin Play.
‫Bây giờ hãy để ý trong Tank H, phần bắt đầu chơi nằm trong phần được bảo vệ.
‫Chúng tôi cũng sẽ bảo vệ nó trong tháp.
‫Vì vậy, chúng tôi sẽ đặt phần được bảo vệ ngay dưới phần công khai và sẽ triển khai bắt đầu phát ngay khi đánh dấu
‫chọn.
‫Vì vậy, chúng ta hãy đi đến Tower Dot, CP, thực hiện, bắt đầu chơi đủ điều kiện cho tên chức năng và như bạn có
‫thể đoán, chúng tôi đang gọi là Super Begin Play.
‫Bây giờ để có được bể chứa và lưu trữ nó trong một biến, chúng ta cần một biến loại bể.
‫Vì vậy, chúng tôi sẽ đặt nó ở đây trong Towers H trong một phần riêng tư.
‫Bây giờ đây sẽ là một chiếc xe tăng A, nó là một con trỏ và chúng ta có thể gọi đơn giản là chiếc xe tăng này.
‫Và để tránh phải đưa Xe tăng H vào đây, chúng tôi có thể chuyển tiếp tuyên bố rằng chúng tôi đã thấy điều đó có thể quan
‫trọng như thế nào.
‫Vì vậy, bây giờ chúng ta có con trỏ xe tăng này và nếu chúng ta có thể tìm ra cách tiếp cận xe tăng, chúng ta có thể lưu nó trong con
‫trỏ xe tăng của chúng tôi tại đây và bắt đầu chơi.
‫Điều đầu tiên tôi sẽ làm là bao gồm Tank H, để chúng tôi thực sự có thể sử dụng loại này.
‫Vậy làm cách nào để tiếp cận bể?
‫Chà, đây là tài liệu về động cơ không có thật cho một chức năng tiện dụng được gọi là nhận cầm đồ của người chơi.
‫Nó tồn tại trong một trò chơi tĩnh.
‫Vì vậy, vì tôi đã mở cái này, tôi sẽ tiếp tục và sao chép bao gồm các tĩnh trong trò chơi và
‫xem qua cú pháp.
‫Nó có hai đầu vào là một đối tượng ngữ cảnh thế giới.
‫Chúng tôi đã biết cách xử lý điều đó và chỉ số cầu thủ.
‫Và như chúng ta đã thấy đối với các trò chơi một người chơi như của chúng tôi, chỉ số người chơi sẽ luôn là người chơi 0
‫và điều đó sẽ cho phép chúng ta truy cập vào con tốt tương ứng với người chơi 0.
‫Vì vậy, chúng ta hãy gọi chức năng này ở đây trong Tower Dot CP.
‫Tôi sẽ dán vào phần bao gồm các tĩnh trong trò chơi cho bạn và khi bắt đầu chơi, tôi sẽ
‫đặt xe tăng ngang với bạn khi chơi trò chơi tĩnh lấy người chơi - cho đối tượng bối cảnh thế giới.
‫Tôi có thể vượt qua điều này và đối với chỉ số cầu thủ, chúng tôi có thể vượt qua bằng không.
‫Bây giờ hãy kiểm tra chữ nguệch ngoạc màu đỏ.
‫Nó nói rằng một giá trị của loại một con tốt không thể được chỉ định cho một thực thể của loại xe tăng.
‫Đây là vấn đề chính xác mà chúng tôi gặp phải khi cố gắng gọi, lấy bộ điều khiển và lưu trữ kết
‫quả trong bộ điều khiển trình phát A.
‫Xe tăng là con của một con tốt, vì vậy chúng tôi không thể lưu trữ kiểu mẹ trong con trỏ con.
‫Chúng ta phải.
‫Bạn đoán nó, chúng tôi phải cast.
‫Vì vậy, chúng ta sẽ lấy giá trị trả về từ giá trị này và đặt nó vào bên trong một lời gọi hàm ép kiểu.
‫Vì vậy, chúng ta sẽ nói là cast và chúng ta đang chuyển sang một chiếc xe tăng.
‫Và những gì chúng tôi đang truyền để cast sẽ là lời kêu gọi này để có được ao của người chơi.
‫Vì vậy, hãy đặt điều đó ngay tại đó trong ngoặc đơn.
‫Và sau khi bó bột, chúng ta sẽ có quyền truy cập vào bể chứa.
‫Vì vậy, bây giờ chúng ta đã tiếp cận được bể chứa, chúng ta có thể tìm thấy khoảng cách đến bể và một khoảng cách là một cái phao.
‫Vì vậy, chúng ta có thể tạo một biến float cục bộ được gọi là khoảng cách.
‫Và những gì chúng ta sẽ đặt nó bằng là kết quả của việc gọi hàm tĩnh vector F là dist.
‫Bây giờ dist nhận hai tham số đầu vào kiểu F vector.
‫Bây giờ chúng ta muốn khoảng cách giữa hai điểm trong không gian.
‫Một là vị trí tháp.
‫Chúng tôi đang ở trong lớp tháp nên chúng tôi có thể gọi lấy vị trí của diễn viên và điều đó cho chúng tôi vị trí của tháp.
‫Nhưng những gì về xe tăng?
‫Chà, chúng ta có thể gọi xe tăng, tìm vị trí của diễn viên, và bây giờ chúng ta có khoảng cách.
‫Bây giờ vấn đề duy nhất là chúng tôi đang sử dụng con trỏ xe tăng mà không kiểm tra trước để đảm bảo nó
‫không rỗng.
‫Vì vậy, chúng ta phải nói if tank trước và sau đó chúng ta có thể thực hiện lệnh gọi hàm này và kéo nó ngay vào đây bên
‫trong câu lệnh if.
‫Vì vậy, nếu bể hợp lệ, thì chúng ta có thể truy cập vị trí của nó bằng cách lấy vị trí của tác nhân.
‫Xuất sắc.
‫Vì chúng tôi đang làm việc trong câu lệnh if này, tôi sẽ chuyển các nhận xét khác này vào đây bên trong nó vì chúng
‫tôi biết rằng chúng tôi không thể kiểm tra xem xe tăng có nằm trong tầm bắn hay không, nếu xe tăng thậm chí không hợp lệ.
‫Vì vậy, tôi muốn thách thức bạn xoay tháp pháo về phía xe tăng.
‫Bây giờ, chúng tôi chỉ muốn làm điều này nếu xe tăng trong tầm bắn, chúng tôi có khoảng cách.
‫Vì vậy, bây giờ chúng ta cần một biến phạm vi cháy.
‫Vì vậy, hãy tạo một phao nổi có tên là phạm vi lửa trong lớp tháp và phơi bày điều này với tài sản của bạn.
‫Chúng tôi muốn có thể chỉnh sửa điều này từ trình chỉnh sửa.
‫Bây giờ bạn sẽ kiểm tra xem liệu xe tăng có nằm trong phạm vi hoạt động hay không.
‫Nếu nó được gọi là xoay tháp pháo và xoay tháp pháo cần nhìn mục tiêu.
‫Bạn sẽ vượt qua vị trí xe tăng.
‫Vì vậy, hãy tạm dừng video và thực hiện hành vi này ngay bây giờ.
‫Được chứ.
‫Vì vậy, chúng ta cần một biến phạm vi cháy.
‫Vì vậy, ở đây trong Tháp H, chúng tôi có một khu riêng.
‫Chúng ta sẽ tạo ra một chiếc phao.
‫Tôi sẽ gọi phạm vi cháy này và tôi sẽ tiếp tục và khởi tạo nó thành một giá trị, giả
‫sử, 300 F.
‫Nhưng chúng tôi sẽ thử nghiệm điều này bởi vì nó sẽ là tài sản của bạn.
‫Vì vậy, bạn tài sản.
‫Và vì tôi muốn tất cả các xe tăng có cùng tầm bắn, tôi sẽ đặt điều này và nó chỉ
‫mặc định.
‫Vì vậy, theo cách đó chúng ta chỉ có thể chỉnh sửa nó trên bản thiết kế mặc định.
‫Bây giờ nếu bạn thực hiện chỉnh sửa của mình ở bất kỳ đâu hoặc có thể chỉ chỉnh sửa phiên bản, điều đó hoàn toàn ổn.
‫Đó thực sự là một vấn đề của sở thích và chúng ta có thể thay đổi nó sau.
‫Tôi cũng sẽ cho nó một danh mục và tôi sẽ gọi thể loại này là chiến đấu.
‫Chúng ta hãy đi vào Tower CP và chúng ta có điểm tiếp theo ở đây.
‫Kiểm tra xem bể có nằm trong tầm bắn hay không, nghĩa là chúng ta cần kiểm tra xem khoảng cách có nhỏ
‫hơn hoặc bằng tầm bắn hay không.
‫Chúng tôi có ít hơn hoặc bằng và không chỉ bằng, bởi vì từ khung này sang khung khác, khoảng cách thực
‫sự có thể lớn hơn phạm vi cháy, một khung và nhỏ hơn phạm vi cháy mà khung tiếp theo hoàn toàn vượt qua phạm
‫vi cháy.
‫Vì vậy, nó thực sự có thể không bao giờ trở nên chính xác bằng phạm vi lửa.
‫Trên thực tế, với các giá trị dấu phẩy động, hai dấu phẩy động hoàn toàn bằng nhau là khá hiếm.
‫Vì vậy, chúng tôi có điều này nếu kiểm tra và nếu chúng tôi vào bên trong nó, điều đó có nghĩa là khoảng cách nhỏ hơn hoặc
‫bằng phạm vi cháy.
‫Xe tăng hiện đã ở trong tầm bắn, có nghĩa là bình luận này có thể được chuyển đến ngay đó.
‫Bây giờ, nếu trong phạm vi, hãy xoay tháp pháo về phía xe tăng, điều đó có nghĩa là chúng ta sẽ gọi chức năng
‫xoay tháp pháo.
‫Đó là chức năng được bảo vệ của chúng tôi mà chúng tôi đặt trong nhóm cơ sở.
‫Bây giờ xoay tháp pháo để xem mục tiêu và chúng tôi cần vị trí của xe tăng.
‫Vì vậy, đó sẽ là vị trí của nam diễn viên.
‫Và với điều đó, chúng tôi hiện đang gọi tháp pháo xoay khi xe tăng ở trong tầm bắn.
‫Vì vậy, hãy biên dịch nó và xem nó hoạt động như thế nào.
‫Vì vậy, chúng tôi đã quay lại đây trong trình chỉnh sửa và những gì chúng tôi cần làm là đi vào bản thiết kế, con tốt và tìm một tháp
‫cầm đồ BP và mở trình chỉnh sửa bản thiết kế đầy đủ.
‫Bây giờ ở trên cùng bên phải, chúng ta thấy cơ sở của lớp cha nhưng chúng ta muốn lớp cha của chúng ta là
‫tháp để chúng ta có thể đi tới cài đặt lớp, lớp cha và tìm kiếm tháp và chọn nó.
‫Bây giờ tháp cầm đồ của chúng tôi dựa trên hạng tháp.
‫Bây giờ chúng ta hãy xem điều gì sẽ xảy ra khi chúng ta nhấn play.
‫Được rồi, vậy tôi đang di chuyển xe tăng xung quanh.
‫Chúng tôi không ở trong tầm bắn, vì vậy chúng tôi không thấy bất kỳ chuyển động nào từ các tòa tháp.
‫Nhưng nếu tôi ở trong phạm vi, hãy nhìn vào điều đó.
‫Bây giờ họ đang theo dõi tôi xung quanh và nó trông khá đe dọa.
‫Bây giờ 300 đơn vị không phải là xa.
‫Vì vậy, những gì tôi muốn làm là chỉnh sửa khoảng cách đó.
‫Vì vậy, từ đây trong BP Pawn Turret, tôi sẽ chọn bản thân BP Pond Turret.
‫Và đây là phần chiến đấu.
‫Tôi sẽ tiếp tục và đặt giá trị này là khoảng 700.
‫Bây giờ, nếu tôi nhấn play, tôi sẽ thấy rằng chúng sẽ không quay khi tôi quay lại đây.
‫Nhưng ngay sau khi tôi đến trong phạm vi, bây giờ họ đang nhìn tôi.
‫Hoàn hảo.
‫Vì vậy, tóm lại, chúng tôi đã tạo ra lớp tháp.
‫Bây giờ chúng ta có một kẻ thù cho xe tăng.
‫Chúng tôi cũng xoay tháp pháo của tháp về phía xe tăng trong chức năng đánh dấu và chúng tôi chỉ làm như vậy nếu
‫xe tăng ở trong tầm bắn.
‫Chúng tôi cũng đưa ra biến phạm vi cháy để nó có thể được điều chỉnh trong bản thiết kế.
‫Chúng tôi gần như sẵn sàng chiến đấu.
‫Chúng tôi sẽ bắt đầu thiết lập điều đó trong các video tới.
‫Tôi sẽ gặp bạn sớm.