﻿1
00:00:04,310 --> 00:00:05,270
‫Xin chào và chào mừng.

2
00:00:05,270 --> 00:00:10,280
‫Trong bài giảng này, chúng ta sẽ tìm hiểu khái niệm về biến cục bộ, những biến chỉ tồn

3
00:00:10,280 --> 00:00:12,020
‫tại trong một hàm nhất định.

4
00:00:12,020 --> 00:00:20,030
‫Và chúng ta sẽ xem cách chúng ta có thể sử dụng điều này để đặt vị trí của chúng ta thành một giá trị khác với giá trị được lưu

5
00:00:20,030 --> 00:00:21,560
‫trữ trong vectơ của tôi.

6
00:00:21,590 --> 00:00:22,460
‫Hãy đi sâu vào.

7
00:00:22,640 --> 00:00:28,520
‫Vì vậy, cho đến thời điểm này, chúng tôi đã xử lý các biến thuộc về một lớp.

8
00:00:28,520 --> 00:00:31,760
‫Chúng tôi đã thực hiện điều này trong Blueprint và bây giờ chúng tôi đã thực hiện nó trong C ++.

9
00:00:31,760 --> 00:00:37,190
‫Và điều này có nghĩa là biến tồn tại miễn là thể hiện của lớp.

10
00:00:37,190 --> 00:00:43,250
‫Mỗi cá thể nhận được bản sao riêng của một biến, nhưng trong khi cá thể lớp còn tồn tại, thì biến đó

11
00:00:43,250 --> 00:00:43,970
‫là hai.

12
00:00:43,970 --> 00:00:47,690
‫Bây giờ, khái niệm mà tôi vừa nói đến thực sự có một cái tên.

13
00:00:47,690 --> 00:00:49,130
‫Nó được gọi là Phạm vi.

14
00:00:49,460 --> 00:00:52,640
‫Điều đó có nghĩa là biến tồn tại trong bao lâu?

15
00:00:52,640 --> 00:00:59,510
‫Và tôi vừa mô tả một biến thể hiện đó là một biến tồn tại lâu dài như một thể hiện cụ thể

16
00:00:59,510 --> 00:01:00,710
‫của một lớp.

17
00:01:00,860 --> 00:01:03,890
‫Bây giờ cũng có các loại biến khác.

18
00:01:03,890 --> 00:01:07,490
‫Có những biến tồn tại lâu dài như một hàm.

19
00:01:07,490 --> 00:01:13,220
‫Về cơ bản, khi bạn gọi một hàm cụ thể, hàm đó sẽ chạy và ngay sau khi hàm

20
00:01:13,220 --> 00:01:14,960
‫kết thúc, biến sẽ chết.

21
00:01:15,050 --> 00:01:23,660
‫Vì vậy, trong C ++, nói chung, một biến là một giá trị hợp lệ giữa các dấu ngoặc nhọn trong cú pháp.

22
00:01:23,660 --> 00:01:25,520
‫Vì vậy, đó là một quy tắc ngón tay cái.

23
00:01:25,520 --> 00:01:31,520
‫Nó không phải lúc nào cũng chính xác, nhưng ví dụ như hàm đánh dấu, chúng ta có một

24
00:01:31,520 --> 00:01:39,740
‫số dấu ngoặc nhọn ở đây và nếu chúng ta khai báo một biến bên trong hàm đánh dấu này, thì nó sẽ chỉ tồn tại một lần.

25
00:01:39,740 --> 00:01:44,120
‫Hàm đánh dấu được gọi và lần sau nó sẽ được tạo mới.

26
00:01:44,390 --> 00:01:46,070
‫Nền tảng di chuyển.

27
00:01:46,370 --> 00:01:48,650
‫Chúng ta có thể thấy điều đó nếu chúng ta nhìn vào nền tảng di chuyển.

28
00:01:48,980 --> 00:01:56,300
‫H Bạn có thể thấy vectơ của tôi đang được khai báo trong một số dấu ngoặc nhọn thuộc định nghĩa của lớp,

29
00:01:56,300 --> 00:02:02,390
‫đó là lý do tại sao các biến này tồn tại lâu như một thể hiện của lớp.

30
00:02:02,390 --> 00:02:04,610
‫Vì vậy, tôi muốn chứng minh điều này cho bạn.

31
00:02:04,610 --> 00:02:11,210
‫Vì vậy, chúng ta hãy đi vào nền tảng di động DHCP và hãy tạo một biến cục bộ bên trong này.

32
00:02:11,210 --> 00:02:15,050
‫Vì vậy, tôi sẽ tạo ra nó theo cách giống hệt như chúng tôi đã làm.

33
00:02:15,050 --> 00:02:20,960
‫Khi chúng ta khai báo lỗi trong tệp tiêu đề, chúng ta sẽ có một vectơ F, sau đó là tên của vectơ,

34
00:02:20,960 --> 00:02:23,090
‫tôi sẽ gọi nó là vectơ cục bộ.

35
00:02:23,720 --> 00:02:28,130
‫Và sau đó chúng tôi có thể đặt giá trị này ngay khi chúng tôi tạo nó.

36
00:02:28,130 --> 00:02:32,960
‫Chúng ta có thể làm điều đó bằng cách sử dụng hàm tạo cho vectơ F hoặc chúng ta có thể làm điều đó từ một biến

37
00:02:32,960 --> 00:02:35,540
‫khác, giống như chúng ta có thể truyền một biến vào một hàm.

38
00:02:35,540 --> 00:02:38,870
‫Vì vậy, trước hết chúng ta có thể sử dụng phương thức khởi tạo.

39
00:02:38,870 --> 00:02:45,530
‫Vì vậy, chúng ta sẽ có véc tơ F và tôi sẽ cho nó từ 1 đến 3 và sau đó là dấu chấm phẩy ở cuối

40
00:02:45,530 --> 00:02:46,040
‫dòng.

41
00:02:46,040 --> 00:02:48,230
‫Vì vậy, đó bây giờ là một biến cục bộ.

42
00:02:48,230 --> 00:02:55,070
‫Nó chỉ tồn tại trong hàm này và nó được đặt lại mỗi khi hàm được gọi.

43
00:02:55,070 --> 00:03:01,010
‫Vì vậy, nếu tôi phải làm điều gì đó như thế này, nếu tôi làm điều gì đó giống

44
00:03:01,010 --> 00:03:09,410
‫như chúng ta ở dòng 29 với vectơ của tôi đang được cập nhật, chúng ta có thể có vectơ cục bộ, chúng ta có thể có vectơ

45
00:03:09,410 --> 00:03:12,740
‫địa phương z bằng vectơ địa phương z cộng một.

46
00:03:12,920 --> 00:03:22,100
‫Và nếu tôi đặt vị trí của mình thành vectơ cục bộ đó, thì mọi khung hình sẽ giống nhau vì chúng tôi

47
00:03:22,100 --> 00:03:26,240
‫đặt lại và bắt đầu từ cùng một vị trí.

48
00:03:26,240 --> 00:03:28,940
‫Một, hai, ba, mỗi chức năng đánh dấu.

49
00:03:28,940 --> 00:03:31,640
‫Vì vậy, chức năng này thực sự chỉ tồn tại cục bộ.

50
00:03:31,640 --> 00:03:38,840
‫Vì vậy, tôi muốn bạn thử một thử nghiệm nhỏ như một thử thách của bạn để thiết lập vectơ cục bộ từ vectơ của tôi.

51
00:03:38,840 --> 00:03:43,580
‫Vì vậy, về cơ bản bạn sẽ làm thay vì đặt nó từ hàm tạo, bạn sẽ đặt nó

52
00:03:43,580 --> 00:03:46,010
‫từ giá trị hiện có trong vectơ của tôi.

53
00:03:46,040 --> 00:03:50,210
‫Nó sẽ đưa một bản sao của vectơ đó vào vectơ cục bộ của bạn.

54
00:03:50,510 --> 00:03:54,530
‫Sau đó, tôi muốn bạn đặt nó vào vị trí bằng cách sử dụng vectơ cục bộ.

55
00:03:54,530 --> 00:04:00,380
‫Và bởi vì chúng tôi đang cố gắng cập nhật vectơ cục bộ đó cho mọi khung hình, hãy xem hiệu ứng là gì.

56
00:04:00,380 --> 00:04:01,610
‫Nền tảng có di chuyển không?

57
00:04:01,610 --> 00:04:07,490
‫Bạn có mong đợi nó sẽ hoạt động và thử nó, biên dịch mã chơi và xem liệu nó có thực sự hoạt động hay không.

58
00:04:07,490 --> 00:04:09,140
‫Tạm dừng video và tiếp tục.

59
00:04:12,040 --> 00:04:12,640
‫Được chứ.

60
00:04:12,640 --> 00:04:13,630
‫Chào mừng trở lại.

61
00:04:13,630 --> 00:04:19,600
‫Vì vậy, tôi sẽ thay vì sử dụng hàm tạo ở đây để đặt vectơ cục bộ, thay vào đó tôi

62
00:04:19,600 --> 00:04:21,100
‫sẽ đặt vectơ của mình.

63
00:04:21,100 --> 00:04:28,540
‫Vì vậy, chúng tôi đang lấy giá trị hiện được lưu trữ trong vectơ của tôi và chúng tôi đang đặt nó vào vectơ cục

64
00:04:28,810 --> 00:04:32,830
‫bộ và sau đó chúng tôi đang cập nhật vectơ cục bộ.

65
00:04:32,830 --> 00:04:39,700
‫Chúng tôi đang tăng mức độ nói của nó lên từng khung hình và sau đó tôi muốn đặt vị trí của

66
00:04:39,700 --> 00:04:45,070
‫diễn viên thay vì từ vectơ của tôi, chúng tôi sẽ đặt nó từ vectơ cục bộ.

67
00:04:45,460 --> 00:04:48,940
‫Bây giờ điều gì sẽ xảy ra trong trường hợp này, bạn có nghĩ đến không?

68
00:04:48,940 --> 00:04:51,010
‫Chúng ta cùng đi tìm hiểu nhé.

69
00:04:51,010 --> 00:04:56,620
‫Tôi sẽ nhấn nút biên dịch và tiếp tục nhấn play và chúng ta sẽ

70
00:04:56,620 --> 00:05:03,160
‫thấy rằng nền tảng vẫn đang di chuyển sang bên phải, nhưng nó không đi lên theo hướng Z.

71
00:05:03,160 --> 00:05:09,700
‫Vì vậy, bạn có thể thấy rằng điều này không thực sự có tác động, sự gia tăng của vectơ cục bộ bởi vì

72
00:05:09,700 --> 00:05:14,680
‫nó đang được đặt lại từ giá trị hiện tại trong vectơ của tôi, mọi khung hình.

73
00:05:14,680 --> 00:05:17,350
‫Tuy nhiên, vectơ của tôi vẫn đang được cập nhật.

74
00:05:17,350 --> 00:05:19,840
‫Mọi khung hình, giá trị y đang được tăng lên, mọi khung hình.

75
00:05:19,840 --> 00:05:22,840
‫Và đó là lý do tại sao chúng ta đang thấy sự chuyển động sang bên phải.

76
00:05:22,840 --> 00:05:31,600
‫Vì vậy, một cách chúng ta có thể thấy rằng sự thay đổi này đối với vectơ cục bộ chỉ là cục bộ là tăng giá trị này

77
00:05:31,600 --> 00:05:33,820
‫từ một lên có thể là 100.

78
00:05:33,820 --> 00:05:38,560
‫Vì vậy, chúng tôi đang thêm 100 vào giá trị vectơ cục bộ.

79
00:05:38,770 --> 00:05:42,550
‫Chúng ta có thể xem qua và biên dịch và sau đó chơi.

80
00:05:42,760 --> 00:05:47,710
‫Và những gì bạn sẽ thấy là nền tảng thực sự cao hơn 100 đơn vị trong không khí.

81
00:05:47,740 --> 00:05:55,450
‫Hãy dành một giây ở đây và đẩy ra với F tám và tạm dừng trò chơi bằng nút tạm dừng trong thanh công

82
00:05:55,450 --> 00:06:01,780
‫cụ chính, sau đó chọn nền tảng di chuyển của chúng tôi để xem nó trong ngăn chi tiết.

83
00:06:01,780 --> 00:06:05,410
‫Để làm điều đó, tôi phải thực sự nhấp vào nó trong khung nhìn vì một số lý do.

84
00:06:05,410 --> 00:06:07,540
‫Đôi khi nó không hoạt động, chỉ cần nhấp vào nó trong phác thảo.

85
00:06:08,410 --> 00:06:17,440
‫Và tôi muốn chỉ ra với bạn rằng giá trị trong vectơ của tôi, giá trị z trong vectơ của tôi nhỏ hơn 100

86
00:06:17,440 --> 00:06:21,970
‫đơn vị so với vị trí Z của phép biến đổi.

87
00:06:21,970 --> 00:06:27,010
‫Vì vậy, bạn có thể thấy rằng việc thêm vào vectơ cục bộ đó đã có tác động.

88
00:06:27,010 --> 00:06:34,150
‫Chúng tôi đã có một vị trí, cao hơn 100 đơn vị so với vị trí trong vectơ của tôi.

89
00:06:34,150 --> 00:06:39,340
‫Và điều thực sự tuyệt vời về các biến cục bộ là khi hàm hoàn thành quá trình thực thi cụ thể

90
00:06:39,340 --> 00:06:41,500
‫của nó, chúng sẽ được xóa và đặt lại.

91
00:06:41,500 --> 00:06:44,440
‫Vì vậy, bạn luôn có thể biết điều gì sẽ xảy ra với một biến cục bộ.

92
00:06:44,440 --> 00:06:50,740
‫Bạn luôn biết giá trị nào sẽ có trong nó, không giống như một biến lớp có thể được cập nhật bất kỳ lúc

93
00:06:50,740 --> 00:06:52,720
‫nào từ bất kỳ hàm nào khác.

94
00:06:52,720 --> 00:06:57,190
‫Vì vậy, chúng tôi sẽ đưa các biến cục bộ này thông qua các bước của chúng trong một vài giờ giảng.

95
00:06:57,190 --> 00:06:58,630
‫Hãy đi sâu vào.

