﻿1
00:00:04,120 --> 00:00:04,630
‫Tamam.

2
00:00:04,630 --> 00:00:08,980
‫Bu videodaki amacımız Pons'umuz için ölümü uygulamak.

3
00:00:08,980 --> 00:00:17,770
‫Yani kulemizden birkaç kez vurulursam, tankım öldüğü için ortadan kaybolduğumu göreceksiniz.

4
00:00:17,770 --> 00:00:24,220
‫Ve eğer yeterince yetenekliysem, gidip onlardan birini yok edebilirsem, onun da yok olduğunu göreceksiniz.

5
00:00:24,220 --> 00:00:29,200
‫Bu yüzden bu videoda bu piyonlar için ölümü uygulayacağız.

6
00:00:29,290 --> 00:00:31,240
‫Merhaba ve tekrar hoş geldiniz.

7
00:00:31,270 --> 00:00:36,790
‫Artık piyonlara mermiler tarafından vurulduklarında zaten hasar uyguluyoruz.

8
00:00:36,790 --> 00:00:40,600
‫Şimdi ölümden sonrasını nasıl idare edeceğimizi bulmamız gerekiyor.

9
00:00:40,600 --> 00:00:45,910
‫Bu, belirli bir aktörün yok edilmesini işlemek için bir tür fonksiyona ihtiyacımız olacağı anlamına gelir.

10
00:00:45,910 --> 00:00:49,030
‫Bu yüzden bir tutamaç yok etme işlevi oluşturacağız.

11
00:00:49,030 --> 00:00:55,510
‫Ayrıca, oyun modunun dünyamızdaki bir aktör öldüğünde ne olacağını ele almasına izin verebilecek bir aktör

12
00:00:55,510 --> 00:01:01,480
‫ölümü işlevine ihtiyacımız var ve belirli bir piyon için sağlık değeri sıfıra ulaştığında bu aktör

13
00:01:01,480 --> 00:01:03,340
‫ölümü işlevini çağıracağız.

14
00:01:03,340 --> 00:01:07,630
‫Şimdi bu sistemi nasıl uygulayacağımıza dair bir yol haritasından bahsedelim.

15
00:01:07,630 --> 00:01:14,080
‫Bir mermimiz olduğunu ve hasar uygula çağrısı yaptığını biliyoruz ve bu da hasar alma işlevinin sağlık

16
00:01:14,080 --> 00:01:18,610
‫bileşenindeki temsilci yayınına yanıt vermesiyle sonuçlanıyor.

17
00:01:18,610 --> 00:01:21,100
‫Bundan sonra ne yapacağımızı bulmamız gerekiyor.

18
00:01:21,100 --> 00:01:26,230
‫Oyun modumuz, bir aktör öldüğünde bunu işleyecek bir fonksiyona sahip olabilir.

19
00:01:26,230 --> 00:01:30,370
‫Yani alınan hasarda, sağlığın sıfıra ulaşıp ulaşmadığını kontrol edebiliriz.

20
00:01:30,370 --> 00:01:38,440
‫Ve bu noktada oyun modunda aktör öldü işlevini çağırabiliriz ve oradan piyonumuz yıkımını gerçekleştirebilir.

21
00:01:38,440 --> 00:01:45,010
‫Yani sonuçta, ölen aktör üzerinde tutamaç yok etme işlevini çağırmak oyun moduna bağlı olacaktır.

22
00:01:45,010 --> 00:01:49,660
‫Yani biraz oyun planımız var, o halde bunu uygulamak için atılacak adımları özetleyelim.

23
00:01:49,660 --> 00:01:54,400
‫İlk olarak, handle destruction fonksiyonunu oluşturacağız ve piyonlarımızdan herhangi biri öldüğünde

24
00:01:54,400 --> 00:01:58,900
‫gerçekleşmesi gereken işlevselliği ele almak için bunu temel piyon sınıfına yerleştireceğiz.

25
00:01:58,900 --> 00:02:04,090
‫Ayrıca bunu tank ve kule sınıflarına da uygulayacağız, çünkü öldüklerinde her birinin kendine

26
00:02:04,090 --> 00:02:09,520
‫özgü bir işlevi olacak, sonra bir aktör öldü işlevi oluşturacağız ve bunu oyun modu sınıfına yerleştireceğiz,

27
00:02:09,520 --> 00:02:13,090
‫böylece yıkımı oradan çağırabileceğiz.

28
00:02:13,090 --> 00:02:18,730
‫Bundan sonra, oyun modunda actor died fonksiyonunda handle destruction'ı çağıracağız ve daha sonra

29
00:02:18,730 --> 00:02:23,320
‫sağlık sıfıra ulaştığında sağlık bileşeninden actor died'i çağırabiliriz.

30
00:02:23,320 --> 00:02:27,640
‫Şimdi ilk adımımız olan tutamaç imha fonksiyonunu oluşturmakla başlayalım.

31
00:02:27,640 --> 00:02:33,430
‫Burada Base Pond H'deyim ve bu tutamaç imha işlevini eklemek istiyorum.

32
00:02:33,430 --> 00:02:38,740
‫Şimdi bunu oyun modundan çağırmayı planlıyorum, bu da bunun bir public fonksiyon olması gerektiği anlamına

33
00:02:38,740 --> 00:02:42,850
‫geliyor, böylece bu fonksiyonu buraya public bölümüne yerleştirebilirim.

34
00:02:42,940 --> 00:02:46,840
‫Geçersiz olacak ve ben buna sap yıkımı diyeceğim.

35
00:02:47,890 --> 00:02:50,710
‫Artık herhangi bir girdi parametresi almasına gerek yoktur.

36
00:02:50,860 --> 00:02:55,360
‫Sadece bu özel piyonun yok edilmesiyle ilgilenecek.

37
00:02:55,360 --> 00:03:02,770
‫Şimdi bu fonksiyonu temel piyon CP dosyasında uygulayalım ve onu tam buraya, kurucunun altına yerleştireceğim.

38
00:03:02,770 --> 00:03:10,180
‫Bu yüzden yıkım işlemine sahibim ve temel piyon sınıf adını burada işlev adından hemen önce yerleştireceğim.

39
00:03:10,180 --> 00:03:15,640
‫Şimdi bu, temel piyona dayalı piyonlardan herhangi biri öldüğünde gerçekleşecek şeyler olacak.

40
00:03:15,640 --> 00:03:21,040
‫Bu yüzden buraya, tutamaç yok etme işlevinde ne yapacağımızı söyleyen bir yapılacaklar yerleştireceğim.

41
00:03:21,040 --> 00:03:26,800
‫Burada piyonun ölmesiyle ilgili tüm görsel ve ses efektlerini ele almak istiyorum.

42
00:03:26,800 --> 00:03:32,860
‫Bu yüzden sadece görsel eğik çizgi ses efektleri diyeceğim ve bu şekilde bırakacağız ve kursun bu bölümünün

43
00:03:32,860 --> 00:03:38,920
‫özel efektler ve sesler kısmına geldiğimizde bunu uygulamayı hatırladığımızdan emin olacağız.

44
00:03:38,920 --> 00:03:44,890
‫Şimdi burada yıkımı ele alıyoruz, ancak bu piyonlar öldüğünde ne olacağını ele almak için

45
00:03:44,890 --> 00:03:50,050
‫hem tank hem de kule sınıflarına bir yıkımı ele alma işlevi koymak istiyorum.

46
00:03:50,050 --> 00:03:54,670
‫Ve yıkımın en basit uygulaması belki de kulemiz için olacak.

47
00:03:54,670 --> 00:04:00,760
‫Şimdi H Kulesi'ne gidelim ve buraya handle destruction adında bir genel fonksiyon ekleyelim.

48
00:04:00,760 --> 00:04:10,060
‫Bu yüzden void handle destruction diyeceğim ve bunu uygulayacağım ve kule CP'yi tick fonksiyonunun hemen altına yerleştireceğim.

49
00:04:10,060 --> 00:04:18,130
‫İşte burada yıkımı ele alıyoruz ve işlev adının önüne tıpkı bunun gibi bir kule ekleyeceğim.

50
00:04:18,130 --> 00:04:24,280
‫Şimdi kulenin yıkım işlevinde, süper versiyonu çağırmak istiyorum, böylece temel piyonda yıkım

51
00:04:24,280 --> 00:04:29,800
‫işlevi çağrılacak ve bir kule öldüğünde bu görsel ve ses efektlerini alacağız.

52
00:04:29,800 --> 00:04:35,650
‫Bu yüzden sadece bunun çağrıldığından emin olmak için süper yıkım kolu diyeceğim.

53
00:04:35,650 --> 00:04:39,040
‫Ondan sonra da kuleyi yok edeceğim.

54
00:04:39,040 --> 00:04:40,390
‫Şimdi bunun nasıl çalıştığını gördük.

55
00:04:40,390 --> 00:04:45,820
‫Basitçe destroy fonksiyonunu çağırıyoruz ve bu kule için yıkım işlemini gerçekleştirecek.

56
00:04:45,820 --> 00:04:52,960
‫Böylece bunu kaydedip kule ve CP dosyalarını kapatabilirim ve şimdi tank sınıfına bir tutamaç yok etme işlevi

57
00:04:52,960 --> 00:04:54,910
‫yerleştirebilirim.

58
00:04:54,910 --> 00:05:01,570
‫Bu yüzden tank'a gideceğim ve burada tick fonksiyonunun altında handle destruction adında bir public fonksiyon

59
00:05:01,570 --> 00:05:02,620
‫bildireceğim.

60
00:05:03,640 --> 00:05:10,870
‫Tank CP'ye gideceğim ve bunu burada tic'in hemen altında uygulayacağım, işlev adının önüne bir

61
00:05:10,870 --> 00:05:13,360
‫tank eklemeyi unutmayacağım.

62
00:05:13,510 --> 00:05:17,950
‫Şimdi, tıpkı kule sınıfında olduğu gibi, süper tutamaç yıkımını çağırmak istiyoruz.

63
00:05:19,300 --> 00:05:22,120
‫Bu şekilde görsel ve ses efektlerini alacağız.

64
00:05:22,150 --> 00:05:24,910
‫Şimdi tank için biraz farklı bir şey yapacağız.

65
00:05:24,940 --> 00:05:27,700
‫Tankı yok etmek yerine saklamak istiyorum.

66
00:05:27,700 --> 00:05:33,730
‫Ve sonra TIC işlevini devre dışı bırakabiliriz, böylece dünyada hala var olur ve biz hala ona sahip oluruz.

67
00:05:33,730 --> 00:05:35,740
‫Yani kameradan hâlâ o görüntüyü alabiliyoruz.

68
00:05:35,770 --> 00:05:38,610
‫Sadece onu göremeyeceğiz ya da hareket ettiremeyeceğiz.

69
00:05:38,620 --> 00:05:47,710
‫Bu yüzden tankı gizlemek için oyunda set actor hidden adında bir fonksiyon çağırabiliriz ve bu bir boolean alacaktır.

70
00:05:47,710 --> 00:05:51,400
‫Ve eğer doğru şekilde geçersek, tankı etkili bir şekilde gizleyeceğiz.

71
00:05:51,430 --> 00:05:55,420
‫Şimdi de tiklemeyi devre dışı bırakmak istiyorum ve bunun için de bir işlev var.

72
00:05:55,420 --> 00:05:58,810
‫Buna set actor tic enabled deniyor.

73
00:05:59,770 --> 00:06:05,260
‫Ve bunun için tank için tiklemeyi devre dışı bırakacak olan false değerini geçeceğim.

74
00:06:05,260 --> 00:06:08,800
‫Böylece tutamaç imha işlevimiz halledilmiş olur.

75
00:06:08,800 --> 00:06:11,590
‫Böylece tutamaç imha fonksiyonumuz ortaya çıkar.

76
00:06:11,620 --> 00:06:16,020
‫Bir sonraki adımımız, oyun modunda bir aktör öldü işlevi oluşturmaktır.

77
00:06:16,030 --> 00:06:17,440
‫O zaman bunu uygulayalım.

78
00:06:17,440 --> 00:06:25,870
‫Şimdi burada tune tanks oyun modundayım ve burada aktör öldü fonksiyonunu oluşturabilirim, şimdi aktör öldü'yü sağlık bileşeni sınıfından

79
00:06:25,870 --> 00:06:32,200
‫çağırmayı planlıyorum, bu da bunun bir public fonksiyon olması gerektiği anlamına geliyor.

80
00:06:32,440 --> 00:06:37,590
‫Bu yüzden bir genel bölüm ekleyeceğim ve actor died işlevini oluşturacağım.

81
00:06:37,600 --> 00:06:40,930
‫Şimdi bu geçersiz olacak ve ben buna aktör öldü diyeceğim.

82
00:06:41,170 --> 00:06:49,740
‫Ve bu basitçe Dead Actor adında bir aktör işaretçisi alabilir ve şimdi tune tanks oyun modunda aktör öldü uygulayabiliriz.

83
00:06:50,110 --> 00:06:58,690
‫CP Bu yüzden onu buraya yerleştireceğim ve adının önüne bir tune tanks oyun modu ekleyeceğim ve şimdi bir aktör öldü

84
00:06:58,690 --> 00:07:00,220
‫fonksiyonumuz var.

85
00:07:00,220 --> 00:07:05,890
‫Şimdi ölü aktörün tank olup olmadığını kontrol etmek istiyorum, bu da tank için bir değişkene ihtiyacım olacağı

86
00:07:05,890 --> 00:07:07,030
‫anlamına geliyor.

87
00:07:07,030 --> 00:07:09,460
‫Tank oyun moduna geri dönelim.

88
00:07:09,460 --> 00:07:17,290
‫Özel bir bölüm oluşturacağım ve ileri bildirimde bulunacağım bir tank değişkeni ekleyeceğim.

89
00:07:17,290 --> 00:07:23,290
‫Ve A tipi bir tank işaretçisi ve ben sadece bu tankı çağıracağım ve bunu tank havuzunun adresiyle

90
00:07:23,290 --> 00:07:27,760
‫başlatmam gerekecek ve bunu yapabilir ve oynatmaya başlayabilirim.

91
00:07:27,760 --> 00:07:33,640
‫Şimdi begin play'in korumalı bir fonksiyon olduğunu gördük ve burada oyun modunda korumalı tutacağız,

92
00:07:33,640 --> 00:07:36,400
‫böylece begin, play'i geçersiz kılabileceğiz.

93
00:07:36,400 --> 00:07:44,580
‫Bu yüzden virtual void, begin, play, override diyeceğim ve bunu burada tune tanks, game mode içinde uygulayabilirim.

94
00:07:44,860 --> 00:07:45,610
‫Evet.

95
00:07:45,640 --> 00:07:52,840
‫Bu yüzden oyuna başlamak geçersiz olacak ve oyun modu sınıf adı olan tune tanklarını kullanacağım.

96
00:07:52,990 --> 00:07:56,110
‫Ve yapacağım ilk şey süper başlangıç oyununu çağırmak olacak.

97
00:07:57,550 --> 00:08:03,040
‫Bu şekilde ebeveyn işlevselliğini elde ederiz ve oyun istatistiklerini kullanarak oyuncu piyonunu alabilirim.

98
00:08:03,040 --> 00:08:11,680
‫Bu yüzden ilk olarak oynanış istatistiklerine yer vereceğim ve bu da daha önce gördüğümüz gibi kısmet eğik çizgi oynanış istatistiklerinde.

99
00:08:11,800 --> 00:08:17,290
‫Ve burada Tank'ı alabilir ve ona gençlik oyun istatistiklerinin değerini atayabilirim.

100
00:08:18,230 --> 00:08:19,550
‫Gitarist Palm.

101
00:08:20,360 --> 00:08:26,390
‫Şimdi, bu, bunu kullanabileceğimiz bir dünya bağlamı nesnesi alır ve tankımız her zaman sıfır numaralı

102
00:08:26,390 --> 00:08:30,200
‫oyuncu olacağı için oyuncu indeksi olarak sıfır kullanacağım.

103
00:08:30,200 --> 00:08:37,430
‫Artık jet player'ın bir A -- işaretçisi döndürdüğünü ve tank'ın bir alt sınıf olan A tank türünde olduğunu biliyoruz.

104
00:08:37,430 --> 00:08:43,910
‫Ve bu sonucu bir A tankı işaretçisinde saklamak istiyorsak, bu tank sınıfına döküm yapmamız gerektiğini

105
00:08:43,910 --> 00:08:44,510
‫gördük.

106
00:08:44,510 --> 00:08:47,450
‫İlk olarak tank başlığını dahil edeceğim.

107
00:08:47,450 --> 00:08:53,330
‫Bu yüzden H tankını dahil et diyeceğim ve sonra bir tanka döküm yapacağım.

108
00:08:53,390 --> 00:09:00,440
‫Bu yüzden bir tanka döküm yapacağım ve get player --'dan dönen değeri döküm yapıyorum.

109
00:09:00,440 --> 00:09:02,900
‫Bu yüzden bunu burada parantez içine alacağım.

110
00:09:03,260 --> 00:09:08,720
‫Ve şimdi oyuncuya yönelik bir işaretçimiz olacak -- bir A tankı işaretçisi şeklinde.

111
00:09:08,720 --> 00:09:14,090
‫Artık elimizde tank olduğuna göre, ölü aktörümüzün tank olup olmadığını kontrol edebiliriz.

112
00:09:14,090 --> 00:09:21,800
‫Yani ölü aktör çift eşittir tank şimdi tank null olabilir diyebiliriz.

113
00:09:21,800 --> 00:09:28,940
‫Ve bu sorun değil çünkü Tank null ise ve dead actor tankın kendisine atıfta bulunuyorsa, bu if kontrolünde başarısız

114
00:09:28,940 --> 00:09:35,060
‫olacak ve aslında null bir işaretçiye erişmeye çalışmayacağız çünkü bunun içine giremeyeceğiz.

115
00:09:35,060 --> 00:09:41,900
‫Şimdi, eğer ölü aktör aslında tank ise, o zaman tank tutamacını yok etme işlevini çağırmak istiyorum.

116
00:09:41,900 --> 00:09:44,870
‫Bu yüzden tank kolu imhası diyeceğiz.

117
00:09:45,680 --> 00:09:52,100
‫Şimdi, tutamaç yok etme işlevini çağırdıktan sonra, tank bölmesi için girişi devre dışı bırakmak istiyorum,

118
00:09:52,100 --> 00:09:58,550
‫böylece tankı alabilir ve tankın devraldığı girişi devre dışı bırak adlı yerleşik işlevi çağırabilirim.

119
00:09:59,540 --> 00:10:03,200
‫Artık girişi devre dışı bırakmak için bir A oyuncu kumandası gerekir.

120
00:10:03,200 --> 00:10:10,430
‫Şimdi tank sınıfının, eğer buraya tank H'ye gelirsek, bir oyuncu denetleyicisine işaretçi olan bu oyuncu denetleyicisi

121
00:10:10,430 --> 00:10:17,270
‫ref değişkenine sahip olduğunu biliyoruz, bu yüzden ref'in bu değişken için çok kötü bir isim olduğunu düşünmeye

122
00:10:17,270 --> 00:10:19,160
‫başlıyorum.

123
00:10:19,160 --> 00:10:21,320
‫Referans olmadığı için bir işaretçidir.

124
00:10:21,320 --> 00:10:24,260
‫Neredeyse tank oyuncusu kontrolörü demeyi tercih ederdim.

125
00:10:24,350 --> 00:10:27,200
‫Aslında, neden devam edip bunun adını değiştirmiyoruz?

126
00:10:27,200 --> 00:10:33,530
‫Bu, geliştiricilerin bir değişkene kötü bir isim verdiklerini fark ettiklerinde sıklıkla yaptıkları bir şeydir.

127
00:10:33,530 --> 00:10:36,290
‫Yani bu kodda bunu kolayca yapmanın bir yolu var.

128
00:10:36,290 --> 00:10:42,350
‫Bu değişkeni vurgulayabiliyorum ve F iki tuşuna basabiliyorum ve yeniden adlandırmamı istiyor.

129
00:10:42,590 --> 00:10:45,710
‫Bu tanka oyuncu kontrolörü diyeceğim.

130
00:10:46,100 --> 00:10:47,480
‫Şimdi şuna bir bak.

131
00:10:47,480 --> 00:10:49,790
‫Burada Tank Oyuncu Kontrolörü deniyor.

132
00:10:49,790 --> 00:10:54,350
‫Tank CP'ye gidersem, burada da yeniden adlandırıldığını göreceğim.

133
00:10:54,350 --> 00:11:00,530
‫Böylece içeri girip her oyuncu, kontrolör, hakem örneğini bulmak zorunda kalmadım.

134
00:11:00,530 --> 00:11:06,050
‫Tank oyuncusu kontrolörünü aratabilir ve burada kullanıldığı her yerde değiştiğini görebilirim.

135
00:11:06,050 --> 00:11:08,960
‫Yani bu, sahip olunması gereken güzel bir yeniden düzenleme becerisidir.

136
00:11:08,960 --> 00:11:15,650
‫Her neyse, burada tune tanks oyun modunda, tank için girişi devre dışı bırakmam gerekiyor ve bu bir oyuncu kontrolörü

137
00:11:15,650 --> 00:11:17,180
‫gerektiriyor.

138
00:11:17,360 --> 00:11:23,360
‫Bu yüzden ilk olarak tank oyuncu kontrolörünün geçerli olduğundan emin olmak için if tank diyerek kontrol edeceğim ve bu

139
00:11:23,360 --> 00:11:25,550
‫oyuncu kontrolörüne erişmem gerekiyor.

140
00:11:25,550 --> 00:11:30,440
‫Ancak tankta, oyuncu denetleyici değişkenimizin özel olduğunu hatırlayın.

141
00:11:30,440 --> 00:11:36,860
‫Şimdi bunu açığa çıkarabilir ve herkese açık hale getirebiliriz ya da bu değişken için herkese açık bir getter işlevi oluşturabiliriz.

142
00:11:36,860 --> 00:11:40,340
‫Daha iyi bir programlama pratiği olduğu için herkese açık bir alıcı yapmayı tercih ederim.

143
00:11:40,340 --> 00:11:46,610
‫Burada, genel bölümde, tank oyuncusu denetleyicisi için genel bir alıcı oluşturacağım.

144
00:11:46,610 --> 00:11:53,300
‫Şimdi bir A oyuncu denetleyici işaretçisi döndürecek ve bu işlev get tank player olarak

145
00:11:53,630 --> 00:11:55,340
‫adlandırılacak.

146
00:11:55,340 --> 00:12:02,900
‫Denetleyici getter'ları tipik olarak önünde get olan değişkenin adıdır ve bu işlev bu sınıfta herhangi bir şeyi değiştirmek

147
00:12:02,900 --> 00:12:10,970
‫için tasarlanmadığından, yalnızca oyuncu denetleyicisini döndüreceğinden tipik olarak maliyetli hale getirilirler.

148
00:12:10,970 --> 00:12:16,760
‫Bu yüzden tank oyuncusu kontrolörünü geri getir diyeceğiz ve tüm yapacağı bu.

149
00:12:16,760 --> 00:12:22,760
‫Artık tank oyuncu denetleyicisi için genel bir getter fonksiyonumuz olduğuna göre, oyuncu denetleyicisine

150
00:12:22,760 --> 00:12:25,640
‫buradan oyun modu içinden erişebiliriz.

151
00:12:25,880 --> 00:12:33,080
‫Bu yüzden, eğer tank bir tank oyuncu denetleyicisi alırsa diyeceğiz ve bu işlevi burada çağıracağız.

152
00:12:33,080 --> 00:12:38,450
‫Ve bu if deyiminin içine ulaşırsak, oyuncu denetleyicisi geçerlidir, bu yüzden bu çağrıyı

153
00:12:38,450 --> 00:12:46,400
‫tank devre dışı bırakma girişine taşıyabiliriz ve tank oyuncu denetleyicisini devre dışı bırakma girişine geçireceğiz.

154
00:12:48,400 --> 00:12:51,950
‫Bu yüzden burada da tank get player controller diyeceğiz.

155
00:12:51,970 --> 00:12:57,910
‫Şimdi, oyuncu denetleyicisine erişirken, oyuncu denetleyicilerinin fare imlecini

156
00:12:57,910 --> 00:13:03,640
‫göster Boolean üye değişkenini de almak ve bunu false olarak ayarlamak istiyorum.

157
00:13:03,640 --> 00:13:08,830
‫Böylece girişi devre dışı bırakıyoruz ve ayrıca fare imlecinin gösterilmediğinden emin oluyoruz.

158
00:13:08,830 --> 00:13:13,400
‫Böylece tank öldüğünde işlevselliğin üstesinden gelinmiş olur.

159
00:13:13,420 --> 00:13:19,660
‫Şimdi, ölü aktörün tank olmaması durumunda, kule sınıfının bir örneği olup olmadığını kontrol

160
00:13:19,660 --> 00:13:21,010
‫etmek istiyorum.

161
00:13:21,010 --> 00:13:23,200
‫Bu yüzden buraya başka bir eğer ekleyeceğim.

162
00:13:23,320 --> 00:13:26,410
‫Peki buradaki elseif için koşul ne olacak?

163
00:13:26,440 --> 00:13:33,640
‫Ölü aktörün bir A kulesine atılıp atılamayacağını görmek istiyorum, bu da kule sınıfını dahil etmem gerekeceği

164
00:13:34,360 --> 00:13:35,800
‫anlamına geliyor.

165
00:13:35,890 --> 00:13:37,300
‫Yani kuleyi de dahil edin.

166
00:13:38,170 --> 00:13:40,270
‫Sonra da oyuncu seçmeye çalışacağım.

167
00:13:40,270 --> 00:13:44,770
‫Bu yüzden köşeli parantezler ve parantezler alan cast diyeceğim.

168
00:13:44,770 --> 00:13:50,410
‫Bizim de attığımız şey bir kule ve attığımız şey ölü.

169
00:13:50,410 --> 00:13:53,410
‫Aktör ölü aktörü oynatmaya çalışacaktır.

170
00:13:53,410 --> 00:13:59,410
‫Şimdi bu dökümün sonucunu alıp atayabilir ve bir yerel değişken oluşturabiliriz.

171
00:13:59,410 --> 00:14:09,310
‫Burada koşullu olarak bir kule işaretçisi diyebiliriz ve bu yıkılan kuleyi çağırabilir ve bu dökümden dönen değeri

172
00:14:09,310 --> 00:14:11,470
‫ona atayabiliriz.

173
00:14:11,470 --> 00:14:18,660
‫Bunu yaparsak, kuleye atılan ölü aktörümüz olan bu yok edilmiş aktöre erişimimiz olur.

174
00:14:18,670 --> 00:14:22,630
‫Şimdi, eğer bu başarılı olursa, elseif'in içine ulaşacağız.

175
00:14:22,630 --> 00:14:24,670
‫Sonra da yok edilenlerimizi alabiliriz.

176
00:14:25,490 --> 00:14:31,430
‫Kule ve biz basitçe yıkım kolu diyebiliriz.

177
00:14:32,870 --> 00:14:39,800
‫Şimdi burada, oyun modunda yıkım işlemini çağıran ve ayrıca tank için ölümle ilgili bazı işlevleri

178
00:14:39,800 --> 00:14:43,910
‫yerine getiren bir aktör öldü işlevimiz var.

179
00:14:44,180 --> 00:14:45,980
‫Böylece ikinci adım halledilmiş olur.

180
00:14:45,980 --> 00:14:52,220
‫Bir aktör ölümü fonksiyonu oluşturduk ve bunu yaparken aktör ölümü fonksiyonunda tutamaç yıkımını

181
00:14:52,220 --> 00:14:53,540
‫da çağırdık.

182
00:14:53,540 --> 00:14:58,150
‫Yani son adımımız, sağlık sıfıra ulaştığında aktör öldü demek.

183
00:14:58,160 --> 00:15:04,310
‫Şimdi oyun modunda bulunan bu fonksiyonu çağırmak için sağlık bileşenimizin oyun modunun adresini

184
00:15:04,340 --> 00:15:07,250
‫saklayan bir değişkene ihtiyacı olacaktır.

185
00:15:07,250 --> 00:15:10,340
‫Şimdi sağlık bileşeni sınıfımıza girelim.

186
00:15:10,340 --> 00:15:16,100
‫İşte sağlık bileşenleri ve buraya hemen en alta bir özel değişken ekleyeceğim.

187
00:15:16,100 --> 00:15:25,730
‫Ve bu A tipi tune tanks oyun modu işaretçisi olacak ve biz buna tune tanks oyun modu diyeceğiz.

188
00:15:25,730 --> 00:15:31,010
‫Şimdi bunu ileri bildireceğim, böylece başlık dosyasını buraya dahil etmek zorunda kalmayacağım ve sonra oyun

189
00:15:31,010 --> 00:15:32,480
‫moduna erişmemiz gerekiyor.

190
00:15:32,480 --> 00:15:38,990
‫Sağlık bileşeni CP'ye gidelim ve yukarı kaydırırsam, burada oynamaya başlama işlevini görüyorum ve bu oyun

191
00:15:38,990 --> 00:15:41,690
‫modunu ele geçirmek için mükemmel bir yer.

192
00:15:41,690 --> 00:15:44,840
‫Yine, yapıcıya koymak erken bir adımdır.

193
00:15:44,840 --> 00:15:50,530
‫Erişmeye çalışmadan önce oyun modunun oluşturulduğundan ve var olduğundan emin olmamız gerekir.

194
00:15:50,540 --> 00:15:57,200
‫Şimdi burada oyun oynama istatistiklerinde Get Game Mode adında kullanışlı bir işlev var ve mevcut oyun modu tabanını

195
00:15:57,200 --> 00:16:01,610
‫veya istemcide olduğu gibi alınamazsa null döndürdüğünü söylüyor.

196
00:16:01,850 --> 00:16:07,730
‫Şimdi istemci üzerinde çok oyunculu programlama ile ilgili ve bu konuda endişelenmemize gerek yok.

197
00:16:07,730 --> 00:16:14,930
‫Oyunumuz için tek bir makinede çalışıyoruz, bu yüzden aşağı kaydıralım ve bir oyun modu tabanının bir

198
00:16:14,930 --> 00:16:18,230
‫dünya bağlamı nesnesi aldığını göreceğiz.

199
00:16:18,230 --> 00:16:24,080
‫Bu sadece dünyadaki bir nesnedir ve dünya bağlamı nesnelerinin nasıl işleneceğini gördük.

200
00:16:24,080 --> 00:16:29,030
‫Yani bu gameplay static h'de var, bu yüzden bunu dahil edelim.

201
00:16:29,030 --> 00:16:35,330
‫Ve burada sağlık bileşenlerinde, CP oyun istatistikleri için dahil ettiklerimizi yapıştıracak ve sonra buraya oyun modunu

202
00:16:35,330 --> 00:16:37,490
‫al diyeceğiz ve oyuna başlayacağız.

203
00:16:37,790 --> 00:16:40,670
‫Bu yüzden tankları ayarla, oyun modu diyeceğiz.

204
00:16:42,030 --> 00:16:44,380
‫Ve bunu sizin değerinize göre ayarlayın.

205
00:16:44,400 --> 00:16:50,940
‫Oynanış istatistikleri oyun modunu ve dünya bağlamı nesnesini alır.

206
00:16:50,940 --> 00:16:54,750
‫Bunu geçeceğim ve şimdi oyun modumuz var.

207
00:16:54,750 --> 00:17:01,080
‫Ancak elbette get game mode, bir oyun modu tabanı döndürür ve biz bunu bir tune tanks oyun modu olan

208
00:17:01,080 --> 00:17:06,810
‫alt sınıfta saklamaya çalışıyoruz, bu da döküm yapmamız gerekeceği anlamına geliyor.

209
00:17:06,810 --> 00:17:07,380
‫Bu doğru.

210
00:17:07,380 --> 00:17:17,580
‫Bu yüzden bir tune tanks oyun moduna cast dememiz gerekiyor ve sonucu get oyun modundan atıyoruz.

211
00:17:17,580 --> 00:17:20,430
‫Bu yüzden bunu parantez içine alacağım.

212
00:17:20,430 --> 00:17:22,410
‫Ve tune tanks oyun modunu kullanıyoruz.

213
00:17:22,410 --> 00:17:24,840
‫Bu yüzden bu başlık dosyasını en üste ekleyeceğim.

214
00:17:24,840 --> 00:17:26,970
‫Bu yüzden dahil edeceğim.

215
00:17:28,960 --> 00:17:32,120
‫Tune Tanks oyun modu.

216
00:17:33,100 --> 00:17:36,960
‫Yani burada sağlık bileşeninde oyun modumuz var.

217
00:17:36,970 --> 00:17:44,080
‫Burada alınan hasara inmeye ve sağlığımızın sıfıra ulaşıp ulaşmadığını kontrol etmeye hazırız.

218
00:17:44,140 --> 00:17:52,060
‫Ve bu durumda tune tanks oyun modu işaretçimizi kullanarak actor died fonksiyonunu çağırıp ölen aktörü aktarabiliriz

219
00:17:52,060 --> 00:17:59,740
‫ve bu sizin zorluğunuz olacak, bu yüzden sağlık bileşeni sınıfında alınan hasarda sağlık değerinin sıfıra

220
00:17:59,740 --> 00:18:06,910
‫ulaşıp ulaşmadığını veya sıfırın altına inip inmediğini kontrol edeceksiniz.

221
00:18:06,940 --> 00:18:11,260
‫Eğer durum buysa, oyun modunu kullanarak aktörün öldüğünü söyleyin.

222
00:18:11,260 --> 00:18:17,800
‫Oyun moduna bir işaretçimiz olduğundan, önce bu işaretçinin null olup olmadığını kontrol etmeyi unutmayın.

223
00:18:17,800 --> 00:18:21,940
‫Ve aktör öldü dediğinizde, bir aktör geçirmeniz gerekecektir.

224
00:18:21,940 --> 00:18:25,000
‫Ölen aktörün yerine geçeceksin.

225
00:18:25,000 --> 00:18:30,370
‫Bu yüzden videoyu duraklatın ve bunu alınan hasar işlevine şimdi uygulayın.

226
00:18:33,280 --> 00:18:33,670
‫Tamam.

227
00:18:33,670 --> 00:18:36,720
‫Yani zaten sağlıktan hasarı çıkardık.

228
00:18:36,730 --> 00:18:41,220
‫Şimdi sağlık değerinin sıfıra ulaşıp ulaşmadığını kontrol etmeye hazırız.

229
00:18:41,230 --> 00:18:49,450
‫Bu yüzden, sağlık sıfır F'ye eşit veya daha az ise ve durum buysa, aramanın uygun olduğunu söyleyeceğim.

230
00:18:49,480 --> 00:18:55,090
‫Aktör şimdi öldü çünkü oyun modunun geçerli olup olmadığını kontrol etmemiz gerekiyor.

231
00:18:55,090 --> 00:19:02,170
‫Tune tanks oyun modunun geçerli olup olmadığını kontrol edip kontrol edersem buraya bir reklam yerleştirebilirim.

232
00:19:02,170 --> 00:19:07,060
‫Eğer null ise, burada false dönecek ve if deyiminin içine ulaşamayacağız.

233
00:19:07,540 --> 00:19:14,050
‫Yani if deyiminin içine ulaşırsak, tune tankları oyun modu geçerlidir ve sağlık sıfıra ulaşmıştır.

234
00:19:14,050 --> 00:19:16,780
‫Yani tankları ayarla, oyun modu diyebiliriz.

235
00:19:17,980 --> 00:19:19,900
‫Ve aktör öldü diyebiliriz.

236
00:19:20,830 --> 00:19:27,160
‫Bunun için de bir aktör gerekiyor ve ölen aktörün zarar gören aktör olacağını biliyoruz.

237
00:19:27,160 --> 00:19:29,950
‫Bu yüzden hasarlı aktöre geçeceğiz.

238
00:19:30,130 --> 00:19:33,640
‫Ve şimdi bunu derleyebilir ve buna bakabiliriz.

239
00:19:33,640 --> 00:19:35,380
‫Başarılı bir derlememiz var.

240
00:19:35,380 --> 00:19:37,180
‫Öyleyse editöre geri dönelim.

241
00:19:37,180 --> 00:19:40,690
‫Ve burada editörde, neden devam edip ölümü test etmiyoruz?

242
00:19:40,690 --> 00:19:45,790
‫Bakalım kendim yok olmadan önce bu tanklardan bazılarını yok edebilecek miyim?

243
00:19:45,790 --> 00:19:47,680
‫Bu biraz zor olacak.

244
00:19:47,710 --> 00:19:48,670
‫Oh, bir tane var.

245
00:19:48,670 --> 00:19:52,030
‫Birini öldürdüm ve ikincisini aldım.

246
00:19:52,030 --> 00:19:53,230
‫Oh, ve ben öldüm.

247
00:19:53,650 --> 00:20:01,840
‫Havuzlarımıza ölüm ve yıkım eklediğimiz için bu oyunun artık çok daha eğlenceli olduğunu görebilirsiniz.

248
00:20:01,840 --> 00:20:03,550
‫Yani bu harika.

249
00:20:03,850 --> 00:20:11,050
‫Tamam, şimdi sizden yapmanızı istediğim şey sırtınızı kocaman sıvazlamanız, çünkü bu videoda oyunumuzda

250
00:20:11,050 --> 00:20:18,010
‫bu sınıflar arasında oldukça fazla etkileşim içeren Aktör Ölümü konusunu ele aldık.

251
00:20:18,100 --> 00:20:24,370
‫Şimdi ölümün uygulanma şekli, göletin basitçe ortadan kalkmasıdır, bu da hala birkaç şeye ihtiyacımız olduğu anlamına

252
00:20:24,370 --> 00:20:24,940
‫gelir.

253
00:20:25,030 --> 00:20:26,890
‫Kazan-kaybet koşullarına ihtiyacımız var.

254
00:20:26,890 --> 00:20:30,490
‫Oyuncuya oyunu kazandığını ya da kaybettiğini gösterecek bir yola ihtiyacımız var.

255
00:20:30,490 --> 00:20:33,220
‫Ayrıca özel efektlere de ihtiyacımız var.

256
00:20:33,340 --> 00:20:36,430
‫Bazı seslere ihtiyacımız var, bazı patlamalara ihtiyacımız var.

257
00:20:36,430 --> 00:20:39,520
‫Bu şeyler çok ama çok yakında gerçekleşecek.

258
00:20:39,520 --> 00:20:41,170
‫Tebrik ederim.

259
00:20:41,170 --> 00:20:46,570
‫Zaten uzun bir yol kat ettiniz ve geriye sadece birkaç adım kaldı.

260
00:20:46,600 --> 00:20:48,310
‫Bir sonraki videoda görüşürüz.

