‫Xin chào và chào mừng.
‫Trong bài giảng này, chúng ta sẽ xem xét cách chúng ta có thể thiết lập nền tảng chuyển động của mình bằng cách sử dụng vận tốc vectơ trong các
‫biến thành viên của nó.
‫Và chúng ta sẽ xem xét cách chúng ta có thể làm cho tốc độ khung hình chuyển động của nó độc lập bằng cách sử dụng thứ gọi
‫là thời gian Delta.
‫Được rồi, chúng ta hãy đi sâu vào.
‫Vì vậy, cho đến thời điểm này, chúng tôi chỉ cập nhật một thành phần duy nhất của vectơ của chúng tôi tại một thời điểm.
‫Bây giờ, điều gì sẽ xảy ra nếu tôi nói với bạn rằng chúng ta không cần phải làm theo cách này?
‫Điều gì sẽ xảy ra nếu chúng ta chỉ có thể cập nhật toàn bộ vectơ theo một số lượng nhất định trong một lần?
‫Chà, chúng ta có thể thêm vectơ vào các vectơ khác nếu chúng ta đã xem trong phần trước.
‫Vì vậy, những gì chúng ta có thể làm là đi đến nền tảng chuyển động H và tạo ra một thứ gì đó là vectơ
‫vận tốc nền tảng chuyển động của chúng ta cho chúng ta biết cả hướng và tốc độ chúng ta muốn đi.
‫Vì vậy, cách chúng tôi làm điều này là tạo một thuộc tính U khá quen thuộc và chúng tôi sẽ chỉnh sửa nó ở bất kỳ đâu để
‫nó hiển thị trong trình kiểm tra và sau đó nó sẽ là một vectơ loại F như chúng tôi đã làm
‫trước đây, và chúng tôi Tôi sẽ gọi nó là vận tốc nền tảng và chúng tôi có thể cung cấp cho nó một cái gì đó ngay bây giờ.
‫Vì vậy, chúng ta sẽ thực hiện một hàm tạo vectơ F và sau đó chúng ta sẽ chỉ cho nó là 100 trong thành phần X và 0 và 0
‫trong các thành phần khác và sau đó là dấu chấm phẩy để kết thúc nó.
‫Và tôi muốn chỉ cho bạn một mẹo nữa ở đây là cùng với chỉnh sửa, chúng ta có thể đặt một đối số
‫được phân tách bằng dấu phẩy khác cho thuộc tính U này ở bất kỳ đâu, trông giống như một hàm.
‫Trên thực tế, bạn có thể đặt một cái được gọi là danh mục với chữ C viết hoa và sau đó bạn đặt dấu bằng.
‫Và tôi thường để một khoảng trống giữa các loại dấu hiệu bằng nhau này bằng.
‫Và sau đó bạn có thể đưa ra một danh mục mà bạn muốn hiển thị.
‫Dưới đây, bạn có thể thấy có các danh mục để tái tạo kết xuất chuyển đổi.
‫Đây là các loại danh mục mà chúng tôi muốn gọi là nền tảng di chuyển của tôi để chúng tôi có một
‫loại danh mục nền tảng di chuyển để đưa các biến này vào.
‫Và lưu ý rằng tôi sử dụng một dấu ngoặc kép xung quanh danh mục đó.
‫Đó là cú pháp chính xác.
‫Bạn cần phải bao gồm những thứ đó.
‫Và sau đó những gì chúng ta có thể làm là chúng ta có thể sử dụng biến thành viên mới này trong C ++.
‫Vì vậy, thay vì đặt thành phần X của vị trí hiện tại, hãy để tôi xóa
‫hoàn toàn dòng đó và viết lại nó vì vị trí hiện tại bằng vị trí hiện tại cộng với vận tốc nền tảng như thế nào.
‫Vì vậy, hãy đặt dấu chấm phẩy ở cuối dòng và chúng ta hãy chuyển sang Unreal và nhấn biên dịch và xem điều này diễn ra như thế
‫nào.
‫Vậy là đã biên dịch thành công.
‫Và bạn có thể thấy tôi hiện có phần nền tảng di chuyển này trên nền tảng di chuyển của tôi với tốc độ nền và
‫thành phần x của nó được đặt thành 100.
‫Điều gì xảy ra nếu tôi đi và chơi?
‫Chà, nền tảng tăng tốc nhanh chóng trong khoảng cách vì tôi đang thêm 100 đơn vị mỗi khung hình.
‫Đó là rất nhiều.
‫Nhưng tôi muốn nó di chuyển với vận tốc khoảng 100 cm / giây.
‫Đó chỉ là một mét trên giây.
‫Nó không nhanh lắm.
‫Vậy tại sao nó đi nhanh như vậy?
‫Chà, vì tốc độ khung hình của tôi.
‫Chà, nếu tôi sử dụng một hệ thống chậm hơn, nó sẽ di chuyển chậm hơn.
‫Và nếu tôi sử dụng một hệ thống nhanh hơn, nó sẽ di chuyển nhanh hơn.
‫Điều đó dường như không có ý nghĩa.
‫Vì vậy, hãy nói về việc sử dụng thời gian Delta.
‫Giờ Delta là gì?
‫Chà, sử dụng thời gian Delta trong Unreal có thể cho chúng tôi biết mỗi khung hình mất bao lâu để thực thi.
‫Giờ Delta ở đâu?
‫Vâng, nếu bạn truy cập mã Visual Studio, bạn có thể thấy thời gian Delta là một biến được đề cập ở đây ở
‫đầu đánh dấu.
‫Đây thực sự là một tham số đầu vào.
‫Đó là đầu vào cho chức năng của chúng tôi.
‫Vì vậy, chúng ta có thể sử dụng nó ở đây về cơ bản giống như chúng ta sử dụng một biến cục bộ, chúng ta có thể sử dụng nó
‫trong phần thân của hàm đánh dấu.
‫Vì vậy, nó cho chúng ta biết một khung hình mất bao lâu để thực thi.
‫Nhưng tại sao điều đó lại quan trọng?
‫Bởi vì khi chúng ta nhân một thứ gì đó với thời gian delta, về cơ bản, nó làm cho tốc độ khung hình trò chơi của chúng ta
‫độc lập, về cơ bản có nghĩa là trò chơi hoạt động như nhau trên máy tính nhanh hay chậm.
‫Vì vậy, chúng ta hãy xem một ví dụ minh họa nếu tôi muốn mỗi giây di chuyển một thứ gì đó sang
‫trái một đơn vị.
‫Đây là cách nó sẽ trông như thế nào trên các máy khác nhau.
‫Tôi có một máy tính chậm.
‫Nó chỉ có thể thực hiện mười khung hình mỗi giây và một máy tính nhanh có thể thực hiện 100 khung hình mỗi giây.
‫Giờ thì thời lượng của những khung hình đó đã khác.
‫Vì vậy, trên máy tính chậm, thời lượng của khung hình là 0. 1 giây.
‫Nếu tôi chỉ có thể xếp mười trong số chúng trong một giây và trên một máy tính nhanh, nó sẽ là 0. 01 giây, ít hơn rất nhiều vì nó có
‫thể thực thi mọi thứ nhanh hơn.
‫Không mất nhiều thời gian để tính toán một khung.
‫Vì vậy, nếu tôi nhân với thời lượng của khung hình, tôi nhân một đơn vị của mình với thời lượng của khung hình.
‫Sau đó, bạn sẽ thấy điều đó trong 1/2.
‫Vì vậy, nơi mười khung đã được thực hiện, tôi nhận được một đơn vị chuyển động.
‫Điều này cũng đúng.
‫Nếu tôi đã thực hiện 100 khung hình, tôi vẫn nhận được một đơn vị chuyển động.
‫Vì vậy, tôi muốn thách thức bạn nhân với thời gian Delta.
‫Vì vậy, những gì chúng ta sẽ làm là nhớ rằng chúng ta có thể nhân vectơ với một giá trị dấu phẩy
‫động để chia độ lớn của chúng.
‫Và cách chúng ta có thể làm điều này trong C ++ là sử dụng toán tử star.
‫Đó là cách chúng ta thực hiện phép nhân.
‫Không có toán tử dấu nhân.
‫Nó sẽ bị nhầm lẫn với X, vì vậy chúng tôi sử dụng toán tử sao để biểu thị phép nhân và tôi muốn
‫bạn biên dịch và kiểm tra kết quả của mình.
‫Vì vậy, nhân với thời gian delta, nhân tốc độ với thời gian delta và xem điều gì sẽ xảy ra, cộng với video và
‫bắt đầu.
‫Được chứ.
‫Chào mừng trở lại.
‫Vì vậy, đó là vận tốc nền tảng mà chúng tôi muốn nhân lên ở đây.
‫Bây giờ chúng ta có thể rút biến này thành một biến riêng biệt, nhưng trên thực tế, chúng ta chỉ
‫có thể đặt một nhân với thời gian delta ở cuối dòng đó, rõ ràng là trước dấu chấm phẩy, bởi vì nó trước khi kết
‫thúc câu lệnh.
‫Và điều thú vị ở đây là có một chút ưu tiên của các nhà khai thác đang
‫diễn ra ở đây là phép nhân giữa vận tốc nền tảng và thời gian Delta sẽ xảy ra trước khi bổ sung
‫vào vị trí hiện tại.
‫Bây giờ điều này tuân theo các quy tắc toán học bình thường để có danh sách đầy đủ các quy tắc đó.
‫Tôi sẽ không đi vào chi tiết của nó ngay tại đây, nhưng bạn có thể xem trang về
‫thứ tự hoạt động trên Wikipedia.
‫Có rất nhiều quy tắc khác nhau trong các ngôn ngữ khác nhau, cho dù đó là khối lượng cơ thể, khối lượng giá thầu, khối lượng bàn chân,
‫khối lượng giường.
‫Có vô số từ viết tắt khác nhau.
‫Vì vậy, bất kỳ cái nào bạn lớn lên sử dụng, đó là cái mà tôi khuyên bạn nên sử dụng.
‫Đối với tôi, đó là khối lượng cơ thể, nhưng ở những nơi khác thì khác.
‫Vì vậy, cần lưu ý rằng chúng ta có thể viết nó như thế này, nhưng nếu chúng ta muốn nó đảm bảo rằng điều gì đó xảy ra
‫theo một trình tự khác, thì bạn có thể sử dụng dấu ngoặc đơn để biểu thị điều này.
‫Vì vậy, tôi có thể, chỉ để làm cho mọi thứ rõ ràng hơn, tôi sẽ đặt dấu ngoặc quanh phép nhân này chỉ để cho bạn thấy rằng
‫đó là những gì sẽ xảy ra.
‫Đầu tiên là phép nhân và sau đó là phép cộng với vị trí hiện tại.
‫Vì vậy, chúng ta hãy xem xét Unreal và kiểm tra điều này.
‫Chúng ta sẽ đánh, biên dịch và khi hoàn tất, hãy bắt đầu chơi.
‫Và bây giờ chúng ta thấy các nền tảng di chuyển với tốc độ bình thường hơn nhiều bởi vì thực sự nó đang di chuyển
‫với tốc độ một mét mỗi giây, điều này là ổn đối với một nền tảng di chuyển.
‫Vì vậy, bạn có thể thấy rằng điều này đã giúp chúng tôi vừa giảm tốc độ, nhưng cũng có thể bây giờ đây là một tốc độ khung hình, tốc
‫độ độc lập.
‫Nếu máy tính của tôi đang hoạt động vì một cái gì đó khác đang diễn ra ở chế độ nền, thì
‫cái này sẽ vẫn giống nhau và chơi giống như vậy trong trò chơi.
‫Công cụ tuyệt vời.
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.