﻿1
00:00:04,440 --> 00:00:05,670
‫Merhaba ve hoş geldiniz.

2
00:00:05,670 --> 00:00:11,910
‫Bu derste, platformumuzun başlangıç konumundan hareket ettiği mesafeyi hesaplayacağız

3
00:00:11,910 --> 00:00:17,760
‫ve kontrol edip hata ayıklayabilmemiz için editörde görüntüleyeceğiz.

4
00:00:17,790 --> 00:00:19,920
‫Şimdi bunun nasıl yapıldığını görelim.

5
00:00:20,660 --> 00:00:26,870
‫Şu anda sözde kodun ilk kısmını uygulayabileceğimizi gördük.

6
00:00:26,870 --> 00:00:30,080
‫MOVE platformunu ileriye doğru yazdık, şimdi çalışıyor.

7
00:00:30,080 --> 00:00:33,890
‫Yani henüz ele almadığımız şey geri gönderme platformu.

8
00:00:34,160 --> 00:00:39,020
‫Ve ilk yorumun ne kadar ilerlediğimizi kontrol etmek olduğunu görebilirsiniz.

9
00:00:39,230 --> 00:00:44,870
‫Peki oyunun başlangıcından bu yana ne kadar ilerlediğimizi nasıl kontrol edeceğiz?

10
00:00:44,870 --> 00:00:46,430
‫Bunun iki bileşeni var.

11
00:00:46,430 --> 00:00:52,130
‫Öncelikle, iki vektör arasındaki farkı ve ikisi arasındaki mesafeyi bulmamız gerekir.

12
00:00:52,250 --> 00:00:57,500
‫Çözmemiz gereken bir diğer şey de nereden başladığımızı nasıl takip edeceğimiz.

13
00:00:57,500 --> 00:01:00,470
‫İlk kısım nispeten basittir.

14
00:01:00,470 --> 00:01:05,750
‫Neyse ki, orada yapmamız gereken tek şey hareketli platformumuza gitmek.

15
00:01:06,020 --> 00:01:12,080
‫H ve burada yeni bir değişken oluşturmak istiyoruz, ancak planlara açık olan bir değişken değil.

16
00:01:12,080 --> 00:01:18,740
‫Bir kereliğine, bu sadece C++ için bir değişken, bu yüzden üzerine yeni bir özellik koymamıza gerek

17
00:01:18,740 --> 00:01:19,280
‫yok.

18
00:01:19,520 --> 00:01:27,740
‫Ve bu, Unreal'da kullanılan terminolojinin aynısını kullanmak için başlangıç konumu veya konumu adı verilen bir F vektörü

19
00:01:27,740 --> 00:01:28,670
‫olacaktır.

20
00:01:28,880 --> 00:01:34,820
‫Ve bunu başlangıçta herhangi bir değere ayarlamayacağız çünkü konumu başlatmak mantıklı olmayacaktır.

21
00:01:34,820 --> 00:01:39,470
‫Henüz bilmiyoruz ama Begin Play'de öğreneceğiz.

22
00:01:39,470 --> 00:01:40,760
‫Yani yapacağımız şey bu.

23
00:01:40,760 --> 00:01:45,170
‫C++'ya geçeceğiz ve çorbanın ardından oyuna başlayacağız.

24
00:01:45,170 --> 00:01:51,380
‫Başlangıç konumumuzu ayarlayacağız, böylece başlangıç konumu diyebiliriz.

25
00:01:51,380 --> 00:01:56,810
‫Ve unutmayın, burada f vektörünü bunun önüne koymuyoruz çünkü yerel bir değişken oluşturmak

26
00:01:56,810 --> 00:02:00,470
‫yerine bir sınıf değişkenine başvurmaya çalışıyoruz.

27
00:02:00,470 --> 00:02:06,860
‫Bu yüzden bu başlangıç konumunu get actor konumuna eşit olarak ayarlayacağız çünkü oyunun

28
00:02:06,860 --> 00:02:09,740
‫başlangıcında aktör başlangıçtadır.

29
00:02:09,740 --> 00:02:15,590
‫Böylece başlangıç konumunu ayarladık ve bu da artık bu sınıfın tüm örneği için geçerli olan bir değişkenimiz olduğu anlamına

30
00:02:15,590 --> 00:02:18,680
‫geliyor, böylece onu tekrar tekrar kullanabiliriz.

31
00:02:18,800 --> 00:02:21,680
‫Ve aradaki mesafeyi bulmaya çalışabileceğimiz bir değişkenimiz var.

32
00:02:21,680 --> 00:02:27,650
‫Şöyle diyebiliriz: Hey, mevcut konum başlangıç konumundan ne kadar saptı?

33
00:02:27,650 --> 00:02:32,810
‫Bunu yapabilmek için sözlüğümüze biraz daha C++ sözdizimi eklemem gerekiyor.

34
00:02:32,810 --> 00:02:38,720
‫İlk olarak, biraz kafa karıştırıcı bir şekilde adlandırılmış olan Kapsam Çözümleme Operatörü olarak adlandırılacak,

35
00:02:38,720 --> 00:02:44,360
‫ancak aslında daha önce C++ dosyamızda gördüğümüz bu çift iki nokta üst üste operatörüdür.

36
00:02:44,510 --> 00:02:52,190
‫Ve esasen tek yaptığı, DOT operatörü ile aynı şekilde bir sınıfın içine bakmanıza izin vermektir, bir sınıfın

37
00:02:52,190 --> 00:02:55,430
‫bir örneğinin içine bakmanıza izin verir.

38
00:02:55,430 --> 00:02:57,950
‫Şimdi buna biraz daha ayrıntılı bir şekilde bakalım.

39
00:02:58,070 --> 00:03:05,030
‫Tik fonksiyonunun hareketli platform sınıfına ait olduğunu biliyoruz, ancak bu sınıfın belirli bir örneğine

40
00:03:05,030 --> 00:03:06,200
‫ait değil.

41
00:03:06,200 --> 00:03:13,010
‫Hareketli platformun tüm örnekleri aynı tick uygulamasını paylaşır, bu da bir sınıf olmanın ne anlama geldiğini

42
00:03:13,010 --> 00:03:13,760
‫gösterir.

43
00:03:13,760 --> 00:03:21,080
‫Yani burada hareketli platform ve Tick arasındaki kapsam çözümleme operatörü aslında bize bunun hareketli

44
00:03:21,080 --> 00:03:24,440
‫platform sınıfına ait tick olduğunu söylüyor.

45
00:03:24,440 --> 00:03:31,790
‫Daha önce olduğu gibi, mevcut konuma ait olan x'i elde etmek için nokta operatörünü kullanıyorduk.

46
00:03:32,120 --> 00:03:39,710
‫Mevcut konum bir F vektörünün belirli bir örneğiydi, ancak bunu F vektör sınıfına ait olan ve bu sınıfın

47
00:03:39,710 --> 00:03:46,340
‫belirli bir örneği üzerinde çalışmayan işlevleri elde etmek için kullanabiliriz.

48
00:03:46,340 --> 00:03:50,510
‫Buna bir örnek, iki vektör arasındaki mesafeyi elde etmektir.

49
00:03:50,510 --> 00:03:56,960
‫Unreal'da bunu yapmanın yolu F vektör sınıfında bir fonksiyon kullanmaktır.

50
00:03:56,960 --> 00:04:05,000
‫Bu yüzden f vektörü yaparız, sonra iki nokta üst üste koyarak bu sınıfın içinde hangi işlevlere sahip olduğuna bakarız

51
00:04:05,000 --> 00:04:07,100
‫ve inceleyebiliriz.

52
00:04:07,100 --> 00:04:11,480
‫Ve şimdi dikkatinizi bu noktada ortaya çıkan otomatik tamamlamaya çekiyorum.

53
00:04:11,480 --> 00:04:17,300
‫Geçmişte bundan bahsetmemiştim, ancak bu işlemleri yaparken, aslında akıllı olmaya

54
00:04:17,300 --> 00:04:23,720
‫çalışıyor ve bize bu F vektör sınıfının içinde hangi işlevlerin mevcut olduğunu söylüyor.

55
00:04:23,720 --> 00:04:25,310
‫Ve onlardan epeyce olduğunu görebilirsiniz.

56
00:04:25,310 --> 00:04:29,840
‫Bizim aradığımız, mesafenin kısaltması olan Dist.

57
00:04:29,840 --> 00:04:34,880
‫Şimdi fark edeceksiniz ki aslında mesafe diye bir şey var ve bu aslında eşanlamlı.

58
00:04:34,880 --> 00:04:40,010
‫Her ikisini de kullanabiliriz, ancak kodu daha kısa tutmak için daha kısa olanı kullanacağım

59
00:04:40,010 --> 00:04:42,590
‫ve parantezleri açabiliriz.

60
00:04:42,590 --> 00:04:50,210
‫Ve yine, otomatik tamamlama, bize argüman olarak ne aldığını söyleyerek yardımımıza geliyor.

61
00:04:50,210 --> 00:04:57,260
‫İlk argümanın bir f vektörü üç D olduğunu ve ikincisinin de bir etki etkili üç D olduğunu görebiliriz.

62
00:04:57,260 --> 00:05:03,260
‫Burada efekt üç D olarak adlandırılması biraz garip ama temelde bir f vektörü

63
00:05:03,260 --> 00:05:04,340
‫istiyor.

64
00:05:04,340 --> 00:05:11,330
‫Yani, her ikisi de f vektörü olan iki argüman iletirseniz, size dönüş değerimin, yani sol taraftaki

65
00:05:11,330 --> 00:05:15,140
‫bu bitin bir double olacağını söyleyeceğim diyor.

66
00:05:15,140 --> 00:05:18,620
‫Şimdi bir double aslında sadece daha doğru bir floattır.

67
00:05:18,620 --> 00:05:20,210
‫Yani aslında şöyle diyebiliriz.

68
00:05:20,310 --> 00:05:22,290
‫Buradan bir şamandıra çıkıyor.

69
00:05:22,290 --> 00:05:26,010
‫Oluşturduğumuz ifade bir float oluşturur.

70
00:05:26,490 --> 00:05:27,060
‫Harika.

71
00:05:27,060 --> 00:05:32,490
‫Şimdi yapacağımız şey, başlangıç konumu arasındaki mesafeyi bulmaya çalışmaktır.

72
00:05:32,490 --> 00:05:36,630
‫Bu yüzden ilk argüman olarak başlangıç konumunu yazacağız.

73
00:05:36,630 --> 00:05:40,680
‫İkincisi ise mevcut konum olacak.

74
00:05:40,830 --> 00:05:45,360
‫Şimdi, endişelenmeyin, bu aşamada, bu yuvarlağı hangi yöne koyduğumuzun aslında bir önemi yok çünkü

75
00:05:45,360 --> 00:05:47,580
‫iki vektör arasındaki mesafe aynı olacaktır.

76
00:05:47,580 --> 00:05:52,290
‫İster A'dan B'ye ister B'den A'ya başlayın, her zaman aynı mesafe olacaktır.

77
00:05:52,290 --> 00:05:54,780
‫Yani isterseniz bunları her iki şekilde de koyabilirdik.

78
00:05:55,140 --> 00:05:59,550
‫Şimdi bir float döndüren bir ifademiz var.

79
00:05:59,550 --> 00:06:05,520
‫Bu yüzden, değerinin ne olduğunu görebilmemiz için bu ifadeyi kullanarak yeni bir özelliği güncellemenizi

80
00:06:05,520 --> 00:06:06,870
‫istiyorum.

81
00:06:06,870 --> 00:06:13,440
‫Bu yüzden yeni bir float özelliği oluşturun ve ona istediğiniz adı verin ve sonra bunu her tikte

82
00:06:13,440 --> 00:06:19,380
‫f vektör dist değeriyle güncelleyin ve sonra oyunu oynayın ve ne olduğunu görün.

83
00:06:19,380 --> 00:06:21,690
‫Beklediğiniz çıktıyı alıyor musunuz?

84
00:06:21,690 --> 00:06:24,680
‫Beklediğiniz kadar hızlı artıyor mu?

85
00:06:24,690 --> 00:06:26,670
‫Videoyu duraklatın ve deneyin.

86
00:06:29,890 --> 00:06:30,370
‫Tamam.

87
00:06:30,370 --> 00:06:31,060
‫Tekrar hoş geldiniz.

88
00:06:31,060 --> 00:06:34,690
‫Bu yüzden öncelikle yeni bir özellik oluşturacağız.

89
00:06:34,690 --> 00:06:40,570
‫Bu yüzden bunu başlangıç konumumuzun üzerine koyacağım, böylece tüm özellikleri bir arada gruplayacağız.

90
00:06:40,750 --> 00:06:47,050
‫Her yerde düzenleyebileceğimiz yeni bir özelliğimiz olacak, aslında bunu düzenleyebilmemiz gerekmiyor.

91
00:06:47,050 --> 00:06:51,640
‫Dolayısıyla, herhangi bir yerde düzenlemenin onu düzenleyebileceğiniz anlamına geldiğini düşünmüş olabilirsiniz.

92
00:06:51,640 --> 00:06:59,410
‫Ayrıca, düzenlememize izin vermeyen ancak görmemizi sağlayan görünür bir yerimiz de var.

93
00:06:59,410 --> 00:07:00,730
‫Ben de bunu kullanacağım.

94
00:07:00,730 --> 00:07:04,450
‫Bunun yerine, basit olması için kategoriyi burada kapalı bırakacağım çünkü bu değişkeni

95
00:07:04,450 --> 00:07:07,180
‫sadece neler olup bittiğini görebilmek için kullanıyoruz.

96
00:07:07,180 --> 00:07:13,330
‫Bahsettiğim gibi bu bir tip kayan nokta olacak ve denetçide neye baktığımızın anlaşılması

97
00:07:13,330 --> 00:07:16,030
‫için buna taşınan mesafe diyeceğim.

98
00:07:16,030 --> 00:07:22,330
‫Ve varsayılan değerini eksi bir olarak ayarlayacağım, böylece güncellediğimizi bileceğiz.

99
00:07:22,330 --> 00:07:25,240
‫Eğer eksi bir yazıyorsa, güncellemenin yapılmadığını biliyoruz.

100
00:07:25,510 --> 00:07:27,490
‫Bu yüzden bu mesafeyi alacağım.

101
00:07:27,490 --> 00:07:33,940
‫Uygulamamıza gidip işaretleyeceğiz ve taşınan mesafeyi F vektör kolon kolon mesafesine

102
00:07:33,940 --> 00:07:36,760
‫eşit olarak ayarlayacağız.

103
00:07:36,760 --> 00:07:41,680
‫Bu nedenle, mesafe fonksiyonunu elde etmek için kapsam çözünürlüğü operatörünü kullanın ve ardından satırı

104
00:07:41,680 --> 00:07:43,210
‫noktalı virgülle bitirin.

105
00:07:43,570 --> 00:07:44,080
‫Okeydoke.

106
00:07:44,080 --> 00:07:50,770
‫Unreal'a girip derleme düğmesine basacağız ve terminali kapatacağız.

107
00:07:50,770 --> 00:07:55,630
‫Ve bu mesafenin eksi bir olarak görünecek şekilde hareket ettiğini görmeliyiz.

108
00:07:55,630 --> 00:08:00,850
‫Gri renkte olduğunu görebilirsiniz çünkü düzenleyemiyorum çünkü görünür durumda, hiçbir yerde düzenlenmiyor.

109
00:08:01,090 --> 00:08:07,450
‫Şimdi devam edelim ve oynat düğmesine basalım ve ana hattaki hareketli platformu seçtiğimizden

110
00:08:07,450 --> 00:08:13,000
‫emin olmamız gerekecek ve burada taşınan mesafeye bir göz atabiliriz ve özelliğin

111
00:08:13,000 --> 00:08:18,010
‫saniyede yaklaşık 1 ila 300 arasında hızla arttığını görebilirsiniz.

112
00:08:18,010 --> 00:08:24,190
‫Yani olmasını beklediğim hızda, yani saniyede 100 hızla gidiyor.

113
00:08:24,190 --> 00:08:25,810
‫Başarılı görünüyor.

114
00:08:25,810 --> 00:08:30,900
‫Taşınan mesafeyi hesaplayabildik ve aynı zamanda görselleştirebildik.

115
00:08:30,910 --> 00:08:31,480
‫Harika bir şey.

116
00:08:31,480 --> 00:08:33,220
‫Bir sonraki derste görüşürüz.

