﻿1
00:00:04,360 --> 00:00:05,440
‫Merhaba ve hoş geldiniz.

2
00:00:05,440 --> 00:00:09,970
‫Bu derste, bu kod parçasını, RT aktör aralığını tanıtacağız ve belirli bir seviyedeki

3
00:00:09,970 --> 00:00:15,010
‫tüm aktörler üzerinde nasıl yineleme yapmamızı sağladığını göreceğiz.

4
00:00:15,010 --> 00:00:16,810
‫İçeri dalalım ve nasıl çalıştığını görelim.

5
00:00:17,410 --> 00:00:24,760
‫Yani şu anda tümünü öldür oyun modumuzun öldürülen piyonunda oyuncu kontrolöründe oyun sona erdi diyoruz ama aslında oyun

6
00:00:24,760 --> 00:00:31,750
‫sona erdi A'nın olduğu tüm kontrolörlerde bir işlevdir. Ben veya oyuncu kontrolörleri ve muhtemelen yapay

7
00:00:31,750 --> 00:00:38,620
‫zeka kontrolörlerine de oyunun sona erdiğini bildirmeliyiz ve bu kesinlikle böyle olacak veya

8
00:00:38,620 --> 00:00:43,210
‫bir kazanma koşulu yapmayı da kolaylaştıracak çünkü oyuncu piyonunun

9
00:00:43,210 --> 00:00:46,240
‫buraya gelmesi gerekmeyecek.

10
00:00:46,870 --> 00:00:50,140
‫Peki bunu nasıl yapacağız?

11
00:00:50,140 --> 00:00:57,160
‫KML oyun modunda bu eylemden sorumlu olacak Oyun Sonu adında özel bir

12
00:00:57,160 --> 00:00:59,500
‫işlev oluşturacağım.

13
00:00:59,500 --> 00:01:02,710
‫Yani End Game ve bazı bilgilere ihtiyacı olacak.

14
00:01:02,710 --> 00:01:04,780
‫Kimin kazandığını bilmesi gerekecek.

15
00:01:04,780 --> 00:01:06,730
‫Sorun oyuncuda mıydı yoksa A'da mıydı? I.?

16
00:01:06,760 --> 00:01:11,800
‫Bu yüzden burada B is player winner adında bir bool oluşturacağım.

17
00:01:12,160 --> 00:01:18,970
‫Bu da bize yapay zekaya kazandığını mı yoksa oyuncuya kazandığını mı söylememiz gerektiğini

18
00:01:18,970 --> 00:01:19,930
‫gösterecek.

19
00:01:19,930 --> 00:01:22,660
‫Çünkü unutmayın, burada oyunumuz sona erdi.

20
00:01:22,660 --> 00:01:26,740
‫Denetleyiciye kazananlardan biri olup olmadığını söyleyen bir boolean alır.

21
00:01:27,490 --> 00:01:31,960
‫Yapmamız gereken şey, her şeyden önce, devam edelim ve uygulamayı oluşturalım.

22
00:01:31,960 --> 00:01:35,380
‫Bu yüzden P kontrol kaydırmamı yapacağım ve ardından uygulama oluşturacağım.

23
00:01:35,950 --> 00:01:41,650
‫Ve sonra sahnemizdeki tüm kontrolörleri nasıl bulabileceğimizi bulmamız gerekecek,

24
00:01:41,650 --> 00:01:45,580
‫böylece bu kontrolörlerde oyun sona erdi diyebileceğiz.

25
00:01:46,390 --> 00:01:51,880
‫Şimdi bunu yapmanın yolu bir motor yardımcı çağrısı kullanmaktır.

26
00:01:51,880 --> 00:01:57,570
‫Dolayısıyla, hash include'a gidersek, öncelikle engine utils kullanacağız.

27
00:01:57,570 --> 00:02:05,620
‫Bu da istediğim yardımcıyı kapsam içine alacak ve yardımcının adı T Aktör Aralığı ve

28
00:02:05,620 --> 00:02:08,260
‫T aktör aralığı bir şablon.

29
00:02:08,260 --> 00:02:11,500
‫Böylece köşeli parantezleri burada yapabiliriz.

30
00:02:11,590 --> 00:02:18,760
‫Daha sonra bir denetleyici ve ardından parantezler koyabilir ve dünyayı elde edebiliriz.

31
00:02:18,760 --> 00:02:20,050
‫Şimdi bu ne işe yarayacak?

32
00:02:20,080 --> 00:02:27,520
‫Bize bir aralık nesnesi döndürecektir, bu da temelde tüm denetleyicilerin üzerinden geçen bir

33
00:02:27,520 --> 00:02:28,840
‫liste gibidir.

34
00:02:28,840 --> 00:02:35,800
‫Bu yüzden a dünyasında kontrolör parametresine sahibiz. k. a seviyesini belirler ve bunu bir for döngüsü

35
00:02:35,800 --> 00:02:37,240
‫içinde kullanabiliriz.

36
00:02:37,240 --> 00:02:39,610
‫Bu yüzden bunu bir for döngüsüne sarmaya başlayayım.

37
00:02:39,610 --> 00:02:44,200
‫Bu yüzden A denetleyicisi üzerinden bir for yapacağız.

38
00:02:44,200 --> 00:02:49,270
‫Dolayısıyla, üzerinde değişiklik yapacağımız değişken, controller olarak adlandıracağım bir

39
00:02:49,270 --> 00:02:51,190
‫A controller işaretçisi olacaktır.

40
00:02:52,180 --> 00:02:56,140
‫Ve sonra iki nokta üst üste işaretini, üzerinde aralık yapacağımız şey için kullanırız.

41
00:02:56,140 --> 00:02:58,240
‫Bu T aktif aralığı olacak.

42
00:02:58,450 --> 00:03:03,160
‫Ve sonra kapanış parantezlerimizi ve küme parantezlerimizi koyabiliriz.

43
00:03:03,160 --> 00:03:04,900
‫Peki bu ne demek oluyor?

44
00:03:04,900 --> 00:03:11,950
‫Dünyadaki her denetleyici üzerinde dört döngü yapacağımızı ve bunun denetleyici adlı bu değişkende

45
00:03:11,950 --> 00:03:14,380
‫olacağını söylüyor.

46
00:03:15,120 --> 00:03:17,700
‫Şimdi de bilmeniz gereken birkaç şey var.

47
00:03:17,700 --> 00:03:22,530
‫Yani bir kontrolörün bir oyuncu kontrolü olup olmadığını döküm yapmak zorunda kalmadan sorgulayabiliriz.

48
00:03:22,530 --> 00:03:28,620
‫Aslında sadece controller arrow yapabiliriz ve sonra sanırım controller'ımı buraya eklemem gerekecek.

49
00:03:28,620 --> 00:03:37,080
‫Yani hash include en üstte, bir game framework forward slash controller H yapacağız ve şimdi Autocomplete muhtemelen

50
00:03:37,080 --> 00:03:38,400
‫çalışacak.

51
00:03:38,400 --> 00:03:39,030
‫Evet, öyle.

52
00:03:39,030 --> 00:03:41,790
‫Yani yapabileceğimiz şey açıkçası oyun sona erdi diyebiliriz.

53
00:03:41,790 --> 00:03:46,530
‫Buradaki ilk otomatik tamamlamam bu ama aynı zamanda oyuncu kontrolörü de diyebiliriz.

54
00:03:46,530 --> 00:03:52,140
‫Temel olarak, oyuncu kontrolörü dünyasında bu şey olduğunu söyleyecek ve bu, oyunun

55
00:03:52,140 --> 00:03:58,410
‫sona erdiğine doğru mu yoksa yanlış mı geçmemiz gerektiğine karar vermemizi sağlayacak.

56
00:03:58,410 --> 00:04:05,880
‫Bu yüzden size meydan okumam, oyun doğru boolean parametresiyle sona erdi diyerek bu for döngüsünü doldurmanızdır.

57
00:04:06,240 --> 00:04:12,570
‫Yani bunu, şu anda for döngüsünde konuştuğumuz kontrolör bir oyuncu kontrolörüyse

58
00:04:12,570 --> 00:04:18,990
‫ve aktardığımız boolean oyuncu kontrolörünün kazanan olduğunu söylüyorsa temel

59
00:04:18,990 --> 00:04:23,700
‫olarak doğru olması gerektiği şekilde yapacağız.

60
00:04:23,700 --> 00:04:31,290
‫Oyuncu kontrolörü değilse ve oyuncu değilse, oyuncu kazanır temel olarak bu bir müttefikse ve ben kazanırsam

61
00:04:31,290 --> 00:04:38,190
‫yanlış, oyuncu kontrolörüyse ancak oyuncu kazanmazsa ve oyuncu kontrolörü değilse ancak oyuncu

62
00:04:38,190 --> 00:04:40,890
‫kazanırsa yanlış.

63
00:04:40,890 --> 00:04:43,530
‫Bunun nereye gittiğini görüyorsunuzdur umarım.

64
00:04:43,530 --> 00:04:46,680
‫Bu yüzden videoyu duraklatın ve bu şekilde uygulamayı deneyin.

65
00:04:46,680 --> 00:04:47,940
‫Eğer ifadelerini kullanabilirsiniz.

66
00:04:47,940 --> 00:04:53,820
‫Bu boolean duraklatma videosunu hesaplamanıza ve denemenize izin vermek için başka bir mantık kullanabilirsiniz.

67
00:04:54,930 --> 00:04:55,380
‫Tamam.

68
00:04:55,380 --> 00:04:55,950
‫Tekrar hoş geldiniz.

69
00:04:55,950 --> 00:04:57,930
‫Yani bunu birkaç şekilde yapabilirsiniz.

70
00:04:57,930 --> 00:05:05,250
‫Bir yol, arı oyuncuysa kazananı kontrol et demek olabilir ve sonra bu if deyimine bir

71
00:05:05,250 --> 00:05:14,430
‫şey koyacağız, temelde B'nin oyuncu kontrolörü olduğuna karar vermek için burada bir bool yapabiliriz.

72
00:05:15,210 --> 00:05:18,990
‫Bunu da bir kontrolör yaptığımız gerçeğinden kurtaracağız.

73
00:05:19,840 --> 00:05:23,740
‫Oyuncu kumandasını bu şekilde oklayın.

74
00:05:24,130 --> 00:05:28,310
‫Ve sonra diyebiliriz ki, tamam, denetleyiciyi çağırmak istiyoruz.

75
00:05:28,330 --> 00:05:31,060
‫Ok oyunu sona erdi.

76
00:05:31,210 --> 00:05:33,280
‫Şimdilik null işaretçisini aktaracağız.

77
00:05:33,280 --> 00:05:40,690
‫Ve sonra diyeceğiz ki, eğer kazanan bir oyuncuysa ve biz de bir oyuncu kontrolörüysek, o zaman evet,

78
00:05:40,690 --> 00:05:43,300
‫temelde bu değerle devam edin.

79
00:05:43,300 --> 00:05:44,980
‫O zaman bir kumanda çal.

80
00:05:45,010 --> 00:05:48,100
‫Aksi takdirde, eğer oyuncu kontrolörü değilse, kaybetmiş olacaktır.

81
00:05:48,100 --> 00:05:55,360
‫Ve bunu olumsuzlayabiliriz, böylece orada başka bir şey söyleyebiliriz, kontrolör oyunu oyuncu

82
00:05:55,360 --> 00:06:02,710
‫kontrolörü değil ile sona erdi diyeceğiz, çünkü bu ifadede oyuncunun kazanan olmadığını, gözün kazanan

83
00:06:02,710 --> 00:06:04,900
‫olduğunu söylüyoruz.

84
00:06:04,900 --> 00:06:11,710
‫Bu yüzden yapmak istediğimiz şey, temelde oyuncunun kazanıp kazanmadığının tersine, yani gözün kazanıp kazanmadığına

85
00:06:11,710 --> 00:06:14,380
‫bağlı olduğunu söylemektir.

86
00:06:14,680 --> 00:06:17,370
‫Bu da kesinlikle bunu yapmanın bir yolu.

87
00:06:17,380 --> 00:06:22,990
‫Ancak başka ve daha basit bir yol daha var, o da basitçe şunu söylemek: Kazanan biz miyiz?

88
00:06:22,990 --> 00:06:26,020
‫Öyleyse kazanan sen ol.

89
00:06:26,530 --> 00:06:36,790
‫Ve bu basitçe, oyuncu kontrolörü olup olmamanızın kazanan oyuncu olmanızla eşit olduğunu söylemek olabilir.

90
00:06:36,970 --> 00:06:43,000
‫Şimdi bunu biraz daha düşünelim ve ben bunu tamamen tamamlayayım ve sonra bunun hakkında konuşalım.

91
00:06:43,000 --> 00:06:52,060
‫Bu yüzden, kontrolör oyununun sona erdiğini söyleyeceğiz, buraya geçirilen be is winner ile null pointer

92
00:06:52,060 --> 00:06:53,050
‫olacak.

93
00:06:53,950 --> 00:06:56,630
‫Şimdi, bu ifade neden işe yarıyor?

94
00:06:56,650 --> 00:06:58,630
‫Peki, vakaları düşünelim, tamam mı?

95
00:06:58,630 --> 00:07:04,300
‫Yani burada bir oyuncu kontrolörümüz var ve kazanan da oyuncu, öyle mi?

96
00:07:04,300 --> 00:07:06,730
‫Evet, kazanan biziz ve onlar eşit.

97
00:07:06,730 --> 00:07:07,720
‫Doğru ve gerçek.

98
00:07:08,290 --> 00:07:13,660
‫Peki ya bu oyuncu kontrolörü değilse ve oyuncu kazanan değilse?

99
00:07:13,690 --> 00:07:15,370
‫O zaman bu yanlış.

100
00:07:15,370 --> 00:07:21,570
‫Ve buradaki de yanlıştır, böylece ikisi eşit olur ve sonuç kazanan olur.

101
00:07:21,580 --> 00:07:22,100
‫Bu doğru mu?

102
00:07:22,120 --> 00:07:27,370
‫Evet, çünkü eğer biz yapay zekaysak ve kazanan yapay zekaysa, o zaman kazanan biz olmalıyız.

103
00:07:27,880 --> 00:07:33,370
‫Aksi takdirde, bu ikisi eşit değilse, i. e. Yapay zeka denetleyicimiz var

104
00:07:33,370 --> 00:07:39,190
‫ama kazanan oyuncu ya da oyuncu denetleyicimiz var ve kazanan yapay zeka, o zaman doğru ve yanlış

105
00:07:39,190 --> 00:07:40,960
‫ya da yanlış ve doğru olacak.

106
00:07:41,170 --> 00:07:45,280
‫Bu ikisi eşit olmayacaktır ve boolean yanlış olarak değerlendirilecektir.

107
00:07:45,280 --> 00:07:51,730
‫Gördüğünüz gibi her bir vakada ve ben tüm vakaları inceledim, bu doğru cevapla sonuçlanıyor.

108
00:07:51,730 --> 00:07:53,740
‫Bu yüzden bunun doğru cevap olduğunu biliyoruz.

109
00:07:53,740 --> 00:07:58,390
‫Boolean'larla ilgili en güzel şey, genellikle tüm durumları değerlendirebilmenizdir çünkü şöyle diyebilirsiniz:

110
00:07:58,390 --> 00:08:00,400
‫Tamam, peki, durumlar nelerdir?

111
00:08:00,400 --> 00:08:01,870
‫Doğru ve gerçek olacak.

112
00:08:01,870 --> 00:08:02,980
‫Hem doğru hem yanlış olacak.

113
00:08:02,980 --> 00:08:03,970
‫Hem yanlış hem de doğru olacak.

114
00:08:03,970 --> 00:08:05,280
‫Yanlış ve yalan olacak.

115
00:08:05,290 --> 00:08:06,940
‫Tüm bu vakaları değerlendirebilirsiniz.

116
00:08:06,940 --> 00:08:12,610
‫Bu durumların hepsi doğruysa, doğru bir Boolean ifadeniz olduğunu bilirsiniz.

117
00:08:13,090 --> 00:08:13,600
‫Güzel.

118
00:08:13,600 --> 00:08:15,880
‫B'nin kazanan olduğunu bu şekilde hesaplayacağız.

119
00:08:15,880 --> 00:08:18,460
‫Son olarak, oyun sonu modumuzu aramamız gerekiyor.

120
00:08:18,460 --> 00:08:24,280
‫Şu anda oyun denetleyicisine doğrudan bir çağrı yapıyoruz oyun sona erdi ve aslında burada

121
00:08:24,280 --> 00:08:31,630
‫yapmak istediğim şey devam etmek ve oyun sonunu çağırmak ve yanlış olarak geçmek istiyoruz çünkü bu oyuncunun gerçekten

122
00:08:31,630 --> 00:08:36,630
‫kaybettiği bir durum ve temelde elde etmek istediğimiz şey bu.

123
00:08:36,640 --> 00:08:42,340
‫Şimdi, burada dikkat edilmesi gereken bir şey daha var, bu null pointer bizi

124
00:08:42,400 --> 00:08:50,590
‫ileride sorunlara götürecek, çünkü eğer oyuncu gerçekten kazandıysa, odağı oyuncu piyonumuzdan uzaklaştırmaya

125
00:08:50,590 --> 00:08:52,900
‫çalışacak.

126
00:08:52,900 --> 00:09:01,270
‫Yani burada aktarmak istediğimiz şey basitçe odağın denetleyicide olması, nokta piyonu almasıdır.

127
00:09:01,660 --> 00:09:08,920
‫Ve bu temelde kendi oyuncu kontrolörünüzün odağını koymanız gerektiğini söylüyor, temelde kameranız

128
00:09:08,920 --> 00:09:10,630
‫nereye bakmalı?

129
00:09:10,630 --> 00:09:12,550
‫Hala piyonunuzu gösteriyor olmalı.

130
00:09:12,970 --> 00:09:17,170
‫Bunu yapmamız neden önemli ve neden ilk etapta burada bu seçenek var?

131
00:09:17,170 --> 00:09:23,890
‫Pek çok oyunda, sıklıkla ya da pek çok maç tarzı oyunda, oyun sona erdiğinde gidip

132
00:09:23,890 --> 00:09:27,400
‫piyonu takip etmek isteyebilirsiniz.

133
00:09:27,400 --> 00:09:28,300
‫Kazanan oydu.

134
00:09:28,300 --> 00:09:34,300
‫Yani bir Fortnite senaryosu gibi düşünün, sık sık gidip sizi öldüren kişiyi takip ediyorsunuz.

135
00:09:34,330 --> 00:09:36,430
‫Bu, bunu yapmak için kullanılan mekanizmadır.

136
00:09:36,430 --> 00:09:40,470
‫Temelde cinayeti işleyen kişinin piyonu olarak geçiyorsunuz.

137
00:09:40,480 --> 00:09:41,800
‫Oyunumuzda bunu yapmıyoruz.

138
00:09:41,800 --> 00:09:45,460
‫Apple'a bakmaya devam edeceğiz ve kazanacak mıyız yoksa ölecek miyiz?

139
00:09:45,460 --> 00:09:46,990
‫Ders için hemen hemen hepsi bu kadar.

140
00:09:46,990 --> 00:09:50,110
‫Sadece derleyelim ve çalışıp çalışmadığını görelim.

141
00:09:50,110 --> 00:09:53,440
‫Hadi Unreal'a dalalım ve oynat tuşuna basalım.

142
00:09:53,470 --> 00:09:56,110
‫Gidip kendimizi öldürtelim.

143
00:09:56,110 --> 00:09:56,980
‫Al bakalım.

144
00:09:56,980 --> 00:09:58,750
‫Her şey eskisi gibi çalışıyor.

145
00:09:58,750 --> 00:10:03,220
‫Hala oyuncu kontrolörüne çağrı yapıyoruz ve sonra yeniden başlatıyoruz.

146
00:10:03,220 --> 00:10:03,790
‫Harika bir şey.

147
00:10:03,790 --> 00:10:06,460
‫Özetlemek gerekirse, bu derste neler gördük?

148
00:10:06,460 --> 00:10:14,260
‫Bu aktörlerin her birinde bir fonksiyon çağırmak gibi bir şey yapmak için seviyedeki aktörler üzerinde nasıl

149
00:10:14,260 --> 00:10:16,930
‫yineleme yapabileceğimizi gördük.

150
00:10:16,930 --> 00:10:23,110
‫Bir sonraki derste T aktör aralığını tekrar kullanacağız, bu sefer oyuncunun kazanıp kazanmadığını hesaplamak

151
00:10:23,110 --> 00:10:23,680
‫için.

152
00:10:23,680 --> 00:10:24,400
‫Orada görüşürüz.

