﻿1
00:00:03,990 --> 00:00:05,150
‫Cześć i witaj.

2
00:00:05,160 --> 00:00:07,920
‫W tym wykładzie wdrażamy ruchome platformy.

3
00:00:07,920 --> 00:00:13,500
‫Właściwie zamierzamy wprawić tę platformę w ruch, rozumiejąc coś, co nazywa się pętlą gry i

4
00:00:13,500 --> 00:00:16,860
‫jak odnosi się do niej funkcja tiku w C++.

5
00:00:16,920 --> 00:00:18,960
‫Zanurzmy się i dowiedzmy się.

6
00:00:19,470 --> 00:00:24,930
‫Aż do tego momentu ignorowaliśmy tę funkcję, funkcję tika.

7
00:00:24,930 --> 00:00:29,250
‫Wkładaliśmy wszystko do gry, ponieważ tego używaliśmy wcześniej w Planie.

8
00:00:29,520 --> 00:00:32,280
‫Rzućmy jednak trochę światła na tę funkcję kleszcza.

9
00:00:32,370 --> 00:00:38,310
‫Aby zrozumieć tik, musimy zrozumieć koncepcję pętli gry i tak większość silników

10
00:00:38,310 --> 00:00:40,560
‫gier zbuduje swój silnik.

11
00:00:40,560 --> 00:00:46,110
‫Działa to tak, że przede wszystkim silnik gry pobiera dane wejściowe od gracza.

12
00:00:46,110 --> 00:00:52,260
‫Więc cokolwiek się aktualnie dzieje, czy spacja jest naciśnięta, czy jest to klawisz W, czy mysz

13
00:00:52,260 --> 00:00:56,340
‫właśnie się trochę poruszyła, czy też przycisk myszy jest wciśnięty,

14
00:00:56,340 --> 00:01:00,060
‫wszystko to zostanie przejęte przez silnik i proces gry.

15
00:01:00,510 --> 00:01:05,610
‫Następnie następną rzeczą jest to, że informacje zostaną wykorzystane do aktualizacji stanu gry.

16
00:01:05,610 --> 00:01:10,500
‫Może gracz posunie się trochę do przodu, może piłka odbije się, wszystkie tego

17
00:01:10,500 --> 00:01:17,280
‫rodzaju rzeczy zostaną obliczone, silniki fizyczne będą działać i wszystkie te wspaniałe rzeczy, które widzieliśmy w naszych poprzednich grach.

18
00:01:17,280 --> 00:01:21,870
‫A potem trzeci krok jest taki, że silnik gry przejmie stan gry

19
00:01:21,870 --> 00:01:27,840
‫i powie: okej, gracz jest tutaj, kamera jest tutaj, piłka jest tam i wyświetli ją na ekranie.

20
00:01:27,840 --> 00:01:33,780
‫Zmieni go z zestawu liczb w obraz do wyświetlenia na ekranie.

21
00:01:34,260 --> 00:01:41,880
‫Teraz ten obraz nazywa się ramką, ramka jest pojedynczym zdjęciem w serii zdjęć, które składają się

22
00:01:41,880 --> 00:01:43,020
‫na wideo.

23
00:01:43,470 --> 00:01:50,490
‫Teraz twój komputer może być w stanie renderować wiele klatek na sekundę lub może renderować mniej, ale

24
00:01:50,850 --> 00:01:53,370
‫nazywa się to szybkością klatek.

25
00:01:53,370 --> 00:01:58,650
‫Ile klatek na sekundę może przejść twój komputer przez pętlę gry?

26
00:01:58,650 --> 00:02:02,760
‫Jak często może przetwarzać dane wejściowe stanu daty i renderować je?

27
00:02:03,300 --> 00:02:10,980
‫To jest liczba klatek na sekundę, a w nierealnym używamy funkcji tick, aby pomóc nam wykonać środkowy krok pętli gry,

28
00:02:10,980 --> 00:02:12,720
‫aby pomóc nam zaktualizować.

29
00:02:13,320 --> 00:02:19,530
‫Stan naszej gry to funkcja, która jest nazywana każdą klatką i istniejącym planem, a także

30
00:02:19,530 --> 00:02:20,070
‫zdarzeniem.

31
00:02:20,400 --> 00:02:27,510
‫Dostajesz więc zdarzenie tick, które zasadniczo pozwala ci zrobić coś, aby zaktualizować grę w każdej klatce.

32
00:02:27,880 --> 00:02:33,630
‫Teraz, w naszym przypadku, chcemy z tym zrobić, aby przenieść naszą platformę.

33
00:02:33,720 --> 00:02:35,100
‫Jak więc mogliśmy to zrobić?

34
00:02:35,100 --> 00:02:42,930
‫Cóż, jeśli weźmiemy nasz zestaw w lokalizację i usuniemy go z rozgrywki, a zamiast tego zaktualizujemy tę lokalizację

35
00:02:42,930 --> 00:02:49,860
‫w technologii, początkowo niewiele to da, ponieważ będziemy po prostu ustawiać ciągłe aktualizowanie naszej lokalizacji do

36
00:02:49,860 --> 00:02:51,660
‫tej samej lokalizacji.

37
00:02:51,660 --> 00:02:59,940
‫Jeśli ustawimy lokalizację aktora, mój wektor, a następnie średnik, to po prostu każda pojedyncza klatka, każda pojedyncza

38
00:02:59,940 --> 00:03:01,890
‫iteracja w pętli gry.

39
00:03:02,250 --> 00:03:04,950
‫To po prostu postawi aktora w tym samym miejscu.

40
00:03:05,460 --> 00:03:11,760
‫Jednak interesujące jest to, że aktualizujemy wartość wewnątrz mojego wektora.

41
00:03:11,760 --> 00:03:24,390
‫Możemy więc powiedzieć, że mój wektor kropka z jest równy mojemu wektorowi kropka z plus jeden.

42
00:03:24,990 --> 00:03:30,960
‫Więc to, co tutaj robimy, to bierzemy wartość, która aktualnie znajduje się w moim wektorze kropki z.

43
00:03:31,410 --> 00:03:40,800
‫Dodajemy do niego jeden, a następnie bierzemy cały wynik i umieszczamy go z powrotem w moim wektorze kropki

44
00:03:40,800 --> 00:03:41,370
‫z.

45
00:03:42,060 --> 00:03:48,960
‫Tak więc za każdym razem, gdy przechodzimy przez tę pętlę gry i tik jest wywoływany przez nierealny silnik, mój wektor

46
00:03:48,960 --> 00:03:51,360
‫kropki z powinien rosnąć o jeden.

47
00:03:51,870 --> 00:03:53,670
‫Zobaczmy więc, jaki jest tego wynik.

48
00:03:53,670 --> 00:04:00,030
‫Wchodzimy do Unreal i klikamy przycisk kompilacji, a następnie idziemy dalej i wciskamy play.

49
00:04:00,180 --> 00:04:07,080
‫Powinniśmy zobaczyć, że ta platforma unosi się, unosi w powietrze, ponieważ zwiększam jej położenie w

50
00:04:07,080 --> 00:04:11,010
‫osi Z, więc sprawiam, że idzie coraz wyżej.

51
00:04:11,100 --> 00:04:16,500
‫Więc chciałbym, żebyś spróbował zmienić Y zamiast zmieniać Z.

52
00:04:16,920 --> 00:04:18,930
‫Zmień więc poprawną linię kodu.

53
00:04:18,930 --> 00:04:21,510
‫Wprowadziłeś te zmiany w więcej niż jednym miejscu.

54
00:04:21,930 --> 00:04:24,450
‫Zmień rozmiar kostki platformy.

55
00:04:24,450 --> 00:04:31,230
‫Jest więc dobra platforma, na którą możesz wskoczyć i sprawdzić, czy teraz aktualizacja Y zamiast aktualizacji Z

56
00:04:31,230 --> 00:04:34,920
‫pozwala wskoczyć na platformę, ustawić film i spróbować.

57
00:04:38,140 --> 00:04:38,710
‫Dobra.

58
00:04:38,710 --> 00:04:39,410
‫Witamy spowrotem.

59
00:04:39,430 --> 00:04:41,950
‫Zagłębmy się więc w kod programu Visual Studio.

60
00:04:42,370 --> 00:04:49,330
‫Chcemy ustawić mój wektor kropka y równy mojemu wektorowi kropka y plus jeden.

61
00:04:49,630 --> 00:04:54,670
‫Więc to będzie poruszało się wzdłuż osi Y zamiast osi Z.

62
00:04:55,210 --> 00:05:00,310
‫A potem będziemy ustawiać lokalizację każdej klatki na wynik, który jest przechowywany w mojej zmiennej

63
00:05:00,310 --> 00:05:00,850
‫wektorowej.

64
00:05:01,270 --> 00:05:04,870
‫Więc wrócimy do Unreal i upewnimy się, że skompilujemy.

65
00:05:04,990 --> 00:05:12,100
‫Następnie przeszukamy obrys platformy ruchomej i wybierzemy ją, przejdziemy do okienka szczegółów.

66
00:05:12,940 --> 00:05:19,540
‫W tym miejscu chcemy w zasadzie dwukrotnie kliknąć platformę, abyśmy mogli ją zobaczyć, a następnie

67
00:05:19,540 --> 00:05:20,890
‫trochę ją przeskalować.

68
00:05:20,890 --> 00:05:29,050
‫Więc użyję narzędzia skalowania z klawiszem R i zamierzam zwiększyć skalę Y i skalę X oraz zmniejszyć

69
00:05:29,470 --> 00:05:30,970
‫skalę Z.

70
00:05:30,970 --> 00:05:37,120
‫Więc moja platforma jest trochę krótsza, więc możemy równie dobrze zapisać poziom trafienia play,

71
00:05:37,150 --> 00:05:41,260
‫a platforma unosi się po mojej prawej stronie.

72
00:05:41,380 --> 00:05:44,800
‫Więc jest też większy, co oznacza, że mogę podejść i stanąć na nim.

73
00:05:45,310 --> 00:05:49,570
‫A potem idziemy, mamy naszą pierwszą małą mechanikę gry, mamy ruchomą platformę.

74
00:05:49,570 --> 00:05:54,070
‫Nie chodzi o to, że w nadchodzących wykładach dowiemy się czegoś więcej na

75
00:05:54,070 --> 00:05:55,090
‫ten temat.

76
00:05:55,450 --> 00:06:00,370
‫Ale na razie zaimplementowaliśmy kilka funkcji gry w C++.

77
00:06:00,370 --> 00:06:02,530
‫Myślę, że w tej chwili powinieneś być z siebie bardzo dumny.

78
00:06:02,530 --> 00:06:05,710
‫Poklep się po plecach i do zobaczenia na następnym wykładzie.

