﻿1
00:00:04,550 --> 00:00:05,810
‫Merhaba ve hoş geldiniz.

2
00:00:05,810 --> 00:00:11,330
‫Bu derste, özel bir görev ekleyerek davranış ağacımıza daha da fazla işlevsellik eklemeye

3
00:00:11,330 --> 00:00:18,200
‫başlayacağız, bu karatahta değerini temizleyin, bunu tamamen C++'da özel hale getireceğiz.

4
00:00:18,230 --> 00:00:20,240
‫Şimdi nasıl yapılacağını görelim.

5
00:00:21,280 --> 00:00:21,490
‫Tamam.

6
00:00:21,490 --> 00:00:28,780
‫Bu nedenle, araştırmaya başlayabilmemiz için bu davranış ağacının davranışını genişletmek istiyorum.

7
00:00:28,780 --> 00:00:33,040
‫Ve araştırmayı bitirdiğimizde, eve dönmek için harekete geçiyoruz.

8
00:00:33,040 --> 00:00:40,240
‫Bu yüzden buraya daha sonra bizi başlangıç konumuna döndüren küçük bir göreve taşı ekleyeceğim.

9
00:00:40,630 --> 00:00:47,140
‫Ve oraya ulaşmak için yapmamız gereken şey, bilinen son oyun konumunu daha önce ziyaret edip etmediğimize

10
00:00:47,140 --> 00:00:49,150
‫dair bir fikre sahip olmaktır.

11
00:00:49,210 --> 00:00:54,490
‫Ve bunu yapmamın yolu, şu anda bunu yapmanın bir yolu yoksa, şu anda araştırdıktan

12
00:00:54,490 --> 00:00:57,820
‫sonra bilinen son oyuncu konumunu ayarlamaktır.

13
00:00:57,820 --> 00:01:00,910
‫Ama öncelikle dekoratörü oluşturalım.

14
00:01:00,910 --> 00:01:09,190
‫Blackboard'u araştırmak için bir dekoratör ekleyin, bu dekoratör gidip onu has investigated olarak yeniden

15
00:01:09,190 --> 00:01:16,630
‫adlandıracak ve bu da bilinen son konumun ayarlanıp ayarlanmadığını kontrol edecek.

16
00:01:16,750 --> 00:01:23,080
‫Bu da bir karatahta anahtarının ayarını kaldırmamızı sağlayan bir tür düğüme sahip olmamız gerektiği anlamına gelir.

17
00:01:23,740 --> 00:01:25,300
‫Aslında böyle bir şey yok.

18
00:01:25,300 --> 00:01:26,650
‫Sadece öyle olduğunu düşündünüz ama öyle değil.

19
00:01:26,650 --> 00:01:31,360
‫Dolayısıyla bu, size özel bir görevi nasıl oluşturabileceğimizi göstermem için harika bir fırsat.

20
00:01:31,360 --> 00:01:37,150
‫Şimdi, bunu Blueprint kullanarak çok kolay bir şekilde yapabilirsiniz ya da size biraz daha zor bir yol

21
00:01:37,150 --> 00:01:41,050
‫göstereceğim, ancak size çok fazla güç veren, C++ ile yapmaktır.

22
00:01:41,440 --> 00:01:48,970
‫Bu yüzden ana içerik tarayıcımıza gideceğiz, yeni ekle'ye gideceğiz ve yeni C++ sınıfına gideceğiz ve tüm sınıfları göster

23
00:01:48,970 --> 00:01:51,640
‫onay kutusunu işaretlemek isteyeceğiz.

24
00:01:51,640 --> 00:01:56,950
‫Ve sonra Beat Task'ı arıyoruz ve burada çok sayıda seçenek var.

25
00:01:56,950 --> 00:02:04,900
‫Bunların birçoğunun aslında ses çıkarma veya şuraya git veya bekle gibi yerleşik görevler olduğunu görebilirsiniz.

26
00:02:05,110 --> 00:02:08,950
‫Şimdi gidip bunların nasıl uygulandığını görmek için C++'a bir göz atabilirsiniz.

27
00:02:08,950 --> 00:02:13,720
‫Bu her zaman faydalıdır, ancak bizim ilgilendiğimiz şey neyi miras almamız gerektiğidir?

28
00:02:13,720 --> 00:02:17,200
‫Kendi düğümümüz için temel olarak neyi kullanmalıyız?

29
00:02:17,260 --> 00:02:19,030
‫Şimdi burada birkaç seçenek var.

30
00:02:19,030 --> 00:02:25,420
‫Temel olarak bir görev düğümüne sahip olmayı seçebilir veya karatahta tabanını kullanabilirsiniz.

31
00:02:25,420 --> 00:02:27,100
‫Şimdi ikisi arasındaki fark nedir?

32
00:02:27,560 --> 00:02:28,630
‫Hızlıca bir göz atalım.

33
00:02:28,630 --> 00:02:31,930
‫Bu yüzden karatahta tabanını kullanmak için harekete geçin.

34
00:02:31,930 --> 00:02:39,130
‫Bunun anlamı, birlikte çalışmak için bir yazı tahtası anahtarı seçmemize olanak tanıyan bu yazı tahtası anahtarı açılır menüsüne

35
00:02:39,130 --> 00:02:40,270
‫sahip olmasıdır.

36
00:02:40,270 --> 00:02:45,940
‫Bu, çalıştığımız yazı tahtası tuşlarını görevimize kodlamak zorunda olmadığımız anlamına gelir; bu da harika bir

37
00:02:45,940 --> 00:02:49,990
‫şeydir çünkü bu görevleri farklı durumlarda yeniden kullanmamıza olanak tanır.

38
00:02:49,990 --> 00:02:55,690
‫Yani bir karatahta anahtarına ihtiyacınız varsa, karatahta tabanı ile gitmek için harika bir tanesidir, aksi takdirde diğerini

39
00:02:55,690 --> 00:02:56,710
‫kullanırsınız.

40
00:02:56,710 --> 00:03:02,370
‫Şimdi gidip tekrar yeni bir C++ sınıfı ekleyelim, tüm sınıfları gösterelim ve tekrar beat

41
00:03:02,500 --> 00:03:06,910
‫görevini arayalım ve Blackboard Base'i seçip next'e basalım.

42
00:03:06,910 --> 00:03:15,850
‫Şimdi bunu Beat Task, Underscore Clear Blackboard Value olarak yeniden adlandıracağım ve devam edip bu sınıfı

43
00:03:15,850 --> 00:03:18,400
‫burada oluşturacağız.

44
00:03:18,760 --> 00:03:20,470
‫Şimdi, başlangıçta bu başarısız olacaktır.

45
00:03:20,470 --> 00:03:23,440
‫Evet'e tıklayalım ve burada hata mesajının ne olduğunu görelim.

46
00:03:23,710 --> 00:03:30,070
‫Link hakkında bir şeyler söylüyor, bu da Link, çözülmemiş dış sembol, falan filan anlamına geliyor.

47
00:03:30,100 --> 00:03:35,590
‫Genellikle bağlayıcıdan bu tür bir hata aldığınızda, bu, başlık dosyalarınızda

48
00:03:35,590 --> 00:03:43,030
‫C++'da olmayan bir şey olduğunu veya bu durumda güvendiğimiz bir modülün dahil edilmediği anlamına

49
00:03:43,030 --> 00:03:44,860
‫gelir.

50
00:03:44,860 --> 00:03:52,750
‫Ve aradığı sembol türlerine dayanarak, burada AI oyun görevi sahibi arayüzü olduğunu görebiliyorum.

51
00:03:53,020 --> 00:03:58,930
‫Oynanış görevleriyle ilgili bir şey arıyor gibi görünüyor ve bu aslında bir modül.

52
00:03:58,930 --> 00:04:07,300
‫Visual Studio kodumuza gidersek ve dosya tarayıcısını açarsak, projeme doğru ilerleyecektir.

53
00:04:07,300 --> 00:04:09,850
‫Sonra kaynak basit atıcı altında.

54
00:04:09,850 --> 00:04:14,230
‫Basit bir atıcı build X veya projenizin adı her neyse, build olmalıdır.

55
00:04:15,040 --> 00:04:21,190
‫Ve burada, bize biraz daha yer verirsem, bu genel bağımlılıklara, modül adlarına

56
00:04:21,190 --> 00:04:29,740
‫sahip olduğumuzu görebilirsiniz ve burada bu listeye eklemek istediğimiz modül adı game play olacak.

57
00:04:30,890 --> 00:04:37,430
‫Tasks with an S ve eğer devam edip bunu eklersek ve şimdi geri dönüp derlersek, umarım her şey herhangi bir nedenle

58
00:04:37,430 --> 00:04:40,070
‫başarılı bir şekilde derlenmelidir.

59
00:04:40,070 --> 00:04:44,680
‫Bir önyükleme görevi için geçersiz kıldığınızda bu otomatik olarak eklenmez.

60
00:04:44,690 --> 00:04:48,740
‫Şimdi bu işlem tamamlandıktan sonra, burada neyin oluşturulduğuna bir göz atalım.

61
00:04:49,040 --> 00:04:57,590
‫Beta görevimiz olan yeni bir sınıfımız olmalı, karatahta değerinin altını çizmeliyiz ve şu anda

62
00:04:57,590 --> 00:04:59,210
‫oldukça boş.

63
00:04:59,270 --> 00:05:05,150
‫Şimdi yapmak istediğim şey, bunu şu anda davranış ağacımıza ekleyecek olsaydık, çirkin bir isme

64
00:05:05,150 --> 00:05:06,320
‫sahip olacaktı.

65
00:05:06,320 --> 00:05:10,160
‫Bu yüzden bu görev için insan tarafından okunabilir güzel bir isim istiyoruz.

66
00:05:10,160 --> 00:05:14,720
‫Bunu yapmanın yolu da bir kurucu eklemek ve bir özellik ayarlamaktır.

67
00:05:14,720 --> 00:05:17,570
‫O halde burada bir genel kurucu oluşturalım.

68
00:05:17,900 --> 00:05:21,620
‫Yapıcı her zaman sınıfla aynı isme sahiptir, böylece bunu kopyalayabiliriz.

69
00:05:21,750 --> 00:05:26,720
‫Sonunda herhangi bir noktalı virgül argümanı almasına gerek yoktur ve ardından C++'da uygulamayı

70
00:05:26,720 --> 00:05:28,190
‫oluşturalım.

71
00:05:28,520 --> 00:05:34,160
‫Ve uygulamanın sadece düğüm adı adında bir değişken ayarlaması gerekir.

72
00:05:34,160 --> 00:05:40,820
‫Dolayısıyla, düğüm adını ayarlar ve ardından bir dize kullanırsanız, ayarladığımız dize düğüm adı olacaktır.

73
00:05:40,820 --> 00:05:43,220
‫Yani açık bir tahta olacak.

74
00:05:44,210 --> 00:05:48,730
‫Değer sadece boşluklarla ve doğru büyük harf kullanımıyla güzel ve kolay olmalıdır.

75
00:05:48,740 --> 00:05:54,240
‫Şimdi, kayıt sırasında yapmayı unuttuğum bir şey, bunu metin makrosu ile çevrelemek.

76
00:05:54,260 --> 00:05:58,880
‫Şimdi devam edip bunu kodunuzda yapmalısınız, ancak bunu benim kodumda göreceksiniz.

77
00:05:58,880 --> 00:06:05,180
‫Bu şekilde kalmaya devam edecek ve şimdi gidip bunu derleyebilmeliyiz.

78
00:06:06,680 --> 00:06:09,170
‫Başarıyla derlenmiş olması harika.

79
00:06:09,350 --> 00:06:12,170
‫Bu yüzden size bu yeni düğümü eklemeniz için meydan okuyorum.

80
00:06:12,170 --> 00:06:17,050
‫Bu yüzden bunu araştırma davranışının sonuna ekleyin ve sadece tamamlandığını kontrol edin.

81
00:06:17,060 --> 00:06:21,470
‫Temel olarak, hiçbir şey yapmadan otomatik olarak tamamlanmalıdır.

82
00:06:21,470 --> 00:06:22,790
‫Ancak adın doğru olup olmadığını kontrol edin.

83
00:06:22,790 --> 00:06:26,270
‫Ekleyebildiğinizi kontrol edin ve bir sonraki derste davranış eklemeyi inceleyeceğiz.

84
00:06:26,270 --> 00:06:27,560
‫Videoyu duraklatın ve bir deneyin.

85
00:06:28,730 --> 00:06:29,120
‫Tamam.

86
00:06:29,120 --> 00:06:29,680
‫Tekrar hoş geldiniz.

87
00:06:29,690 --> 00:06:35,660
‫Düşmanımız A'ya gidelim. I. ve araştırma davranışının sonuna ekleyin.

88
00:06:35,660 --> 00:06:39,440
‫Şeffaf karatahta değerimizi ekleyeceğiz.

89
00:06:39,440 --> 00:06:41,450
‫Orada güzel bir isim olduğunu görebilirsiniz.

90
00:06:41,450 --> 00:06:45,620
‫Ayrıca ayrıntılar bölmesine giderseniz bir karatahta anahtarı seçebileceğinizi de görebilirsiniz.

91
00:06:45,620 --> 00:06:47,990
‫Bilinen son oyuncu konumunu seçeceğiz.

92
00:06:47,990 --> 00:06:53,240
‫Bu henüz bir şey yapmasa da, Blackboard Base'den miras aldığımız için bu işleve sahip

93
00:06:53,240 --> 00:06:58,260
‫olduğumuzu görebilirsiniz ve otomatik olarak tamamlandığını kontrol edelim.

94
00:06:58,260 --> 00:07:00,830
‫Bunu yapmalı ve sonra yoluna devam etmelidir.

95
00:07:00,830 --> 00:07:07,070
‫Daha sonra bunu bir ağırlık görevine taşıyalım, böylece bunun doğrudan geçtiğini veya otomatik olarak tamamlandığını

96
00:07:07,070 --> 00:07:08,000
‫görebiliriz.

97
00:07:08,090 --> 00:07:17,480
‫Bu yüzden oynayacağım, gidip kendimi bir köşeye saklayabildiğim kadar saklayacağım ve sonra

98
00:07:17,480 --> 00:07:23,090
‫gidip araştırmaya bakacağım ve aslında beni gördü.

99
00:07:23,090 --> 00:07:25,190
‫O zaman gidip tekrar saklanalım.

100
00:07:25,220 --> 00:07:27,170
‫Yapabilirsem köşeye gidip saklanacağım.

101
00:07:28,610 --> 00:07:31,060
‫Ben giderim, sonra da sinemaya giderim.

102
00:07:31,070 --> 00:07:31,560
‫Al bakalım.

103
00:07:31,580 --> 00:07:35,690
‫Açık karatahta değerinin içinden geçti, bu da başarılı olduğu anlamına gelmeli, çünkü

104
00:07:35,690 --> 00:07:41,000
‫bir sekans olsaydı ve başarısız olsaydı, durmuş ve ağırlığa gitmemiş olması gerektiğini biliyoruz.

105
00:07:41,000 --> 00:07:42,950
‫Yani bu doğru çalışıyor.

106
00:07:42,950 --> 00:07:48,530
‫Kara dünyanın net değeri hemen başarıyı döndürmek ve bir sonraki dersi beklemeye devam etmektir, işlevselliği

107
00:07:48,530 --> 00:07:51,920
‫gerçekten nasıl ekleyebileceğimize bakacağız.

108
00:07:51,920 --> 00:07:52,760
‫Orada görüşürüz.

