﻿1
00:00:04,750 --> 00:00:05,980
‫Merhaba ve hoş geldiniz.

2
00:00:05,980 --> 00:00:12,010
‫Bu derste, C++'da fonksiyonlardan nasıl çıktı alabileceğimizi öğreneceğiz.

3
00:00:12,010 --> 00:00:19,870
‫Ve bunu kodumuzu büyük ölçüde basitleştirmek ve yazdığımız sözde kodlardan bazılarını uygulamaya başlamak için kullanacağız.

4
00:00:19,870 --> 00:00:20,800
‫Hadi içeri dalalım.

5
00:00:20,980 --> 00:00:26,350
‫Bu nedenle, fonksiyonların geri dönüş değerlerini anlamaya çalışmadan önce, kısa bir sapma yapalım ve bunu anlayalım.

6
00:00:26,350 --> 00:00:29,290
‫Buradaki iki kavram sözlüğümüze iki kavram daha ekliyor.

7
00:00:29,590 --> 00:00:37,060
‫Yani ilki ifadedir ve ifade bir değer üreten bir kod parçasıdır.

8
00:00:37,060 --> 00:00:43,180
‫Ve gerçekleştirilecek bir eylem olan bir kod parçası olan ifade vardır.

9
00:00:43,570 --> 00:00:51,130
‫Şimdi bu ikisinin aslında bir ilişkisi vardır; bir ifade neredeyse her zaman bir kod parçasının değerini

10
00:00:51,130 --> 00:00:57,100
‫hesaplamak için gerçekleştirilecek bir eylem olması gereken bir ifadedir.

11
00:00:57,100 --> 00:01:01,030
‫Ancak aynı şey tam tersi için de geçerli değildir.

12
00:01:01,030 --> 00:01:04,780
‫Bir beyan size her zaman bir değer vermeyecektir.

13
00:01:04,840 --> 00:01:09,910
‫Şimdi bazı ifade örneklerine ve daha önce yazdığımız koddan olmayan bazı şeylere

14
00:01:09,910 --> 00:01:10,960
‫bir göz atalım.

15
00:01:11,170 --> 00:01:20,410
‫Dolayısıyla, my vector'ü C++'a yazdığımızda, bu bir ifadedir çünkü my vector değişkeninin içinde depolanan her şeyin

16
00:01:20,410 --> 00:01:22,510
‫değerine sahiptir.

17
00:01:22,510 --> 00:01:24,730
‫Aynı durum yerel vektör için de geçerlidir.

18
00:01:24,730 --> 00:01:32,950
‫Ve aslında yerel vektör artı z'ye sahipseniz, bunun kendisi bir ifadedir ve yerel vektör nokta z artı

19
00:01:32,950 --> 00:01:33,850
‫100'dür.

20
00:01:33,850 --> 00:01:41,620
‫Bu da bir ifadedir, çünkü yerel z vektörü size Z üyesinin içindeki değeri verir.

21
00:01:41,620 --> 00:01:46,960
‫Ve 100 eklediğinizde, bu size 100 eklenmiş yeni bir değer verir.

22
00:01:46,960 --> 00:01:48,700
‫Yani bunların hepsi birer ifadedir.

23
00:01:48,940 --> 00:01:55,360
‫Ancak, ifade olmayan bir şey, yerel vektörümüzü bildirdiğimizde ve F vektörü, yerel vektör eşittir benim vektörüm dediğimizde

24
00:01:55,360 --> 00:01:58,870
‫ve satırın sonuna noktalı virgül koyduğumuzda ortaya çıkar.

25
00:01:58,870 --> 00:02:01,000
‫Bunu bir değer elde etmek için kullanamayız.

26
00:02:01,000 --> 00:02:02,590
‫Orada bir değer yok.

27
00:02:02,590 --> 00:02:06,370
‫Sadece C++'ya burada gerçekleştirmeniz gereken bir eylem olduğunu söylüyor.

28
00:02:06,370 --> 00:02:09,310
‫Yeni bir yerel vektör oluşturmanızı istiyorum.

29
00:02:09,310 --> 00:02:11,980
‫Yani bu bir ifade değildir.

30
00:02:12,310 --> 00:02:17,020
‫Ancak, ifade olan bir şey aktör konumu almaktır.

31
00:02:17,020 --> 00:02:20,950
‫Bu çağırdığımız bir fonksiyon çünkü sonunda parantezler var.

32
00:02:20,950 --> 00:02:22,720
‫Aslında burada herhangi bir tartışmamız yok.

33
00:02:22,720 --> 00:02:26,290
‫Bu boş bir argüman listesidir, ancak bir şey çağırmaktadır.

34
00:02:26,290 --> 00:02:34,780
‫Ve bu fonksiyonun bir geri dönüş değeri olduğundan, buradaki asıl kod parçası, fonksiyondan döndürülen

35
00:02:34,780 --> 00:02:37,810
‫değeri alan bir ifadedir.

36
00:02:37,810 --> 00:02:44,350
‫Ve bu aslında daha önce Blueprint'te gördüğümüz çıkış pinleriyle aynıdır.

37
00:02:44,350 --> 00:02:50,800
‫Blueprint'ten farklı olarak, bir fonksiyondan yalnızca bir çıktı değerine sahip olabilirsiniz.

38
00:02:50,800 --> 00:02:52,600
‫Sadece bir dönüş değeri vardır.

39
00:02:52,600 --> 00:02:59,830
‫İşte bu, mevcut konumu al diyen sözde kodumuzu yazdığımız yerde kullanabileceğimiz şeydir.

40
00:02:59,830 --> 00:03:02,440
‫Bunu yapacağımız yer burası.

41
00:03:02,440 --> 00:03:08,410
‫Get aktif konumumuzu kullanarak konumu alacağız.

42
00:03:08,410 --> 00:03:11,320
‫Şimdi burada yeni bir yerel değişken oluşturalım.

43
00:03:11,320 --> 00:03:14,650
‫F vektör tipinde F adında yeni bir yerel değişkenimiz olacak.

44
00:03:14,650 --> 00:03:20,350
‫F tipi bir vektör olmak zorundadır çünkü get active konumundan döndürülen tip budur.

45
00:03:20,440 --> 00:03:29,470
‫Ve bu geçerli konumu çağıracağız ve bunu sonuca veya get actor location ifadesine eşit olarak ayarlayacağız ve ardından

46
00:03:29,470 --> 00:03:37,540
‫bir dizi eşleşen parantez ve ardından satırı sonlandırmak için bir noktalı virgül koyacağız.

47
00:03:37,540 --> 00:03:44,020
‫Bu satırı biraz incelersek, buradaki get actor location ve parantezlerin bize

48
00:03:44,020 --> 00:03:49,990
‫aktörün mevcut konumu olan değeri veren ifade olduğunu görebiliriz.

49
00:03:50,290 --> 00:03:57,040
‫Ardından, burada da bildirilen mevcut konuma bir atama yapıyoruz.

50
00:03:57,040 --> 00:04:00,550
‫Yani bu satırda, bu satırın tamamı bir ifade değildir.

51
00:04:00,550 --> 00:04:03,220
‫Bunun bir değeri yok, bu bir açıklama.

52
00:04:03,220 --> 00:04:09,880
‫Ve genellikle bir ifadeyi anlayabilirsiniz çünkü C++'da noktalı virgülle biter.

53
00:04:09,880 --> 00:04:16,780
‫Tamam, bu aslında daha önce kullandığımız benim vektörüm ve yerel vektörleri ortadan

54
00:04:16,780 --> 00:04:23,650
‫kaldırmamıza izin verecek çünkü burada sadece yerel değişkenimizi, aktörümüzün

55
00:04:23,650 --> 00:04:29,470
‫konumundan aldığımız bu mevcut konumu güncelleyebilmeliyiz.

56
00:04:29,470 --> 00:04:34,390
‫Yapacağımız şey, burada daha aşağıda, konumu ayarla yazan bir yorumumuz var.

57
00:04:34,390 --> 00:04:45,430
‫Bu yorum satırından sonra, sadece bu değişken değerini kullanan mevcut konum ifadesini kullanarak bir aktör konumu ayarlayacağım ve ardından tüm bu

58
00:04:45,430 --> 00:04:50,110
‫şeyin bir ifade olduğunu söylemek için satırın sonuna noktalı virgül

59
00:04:50,110 --> 00:04:51,460
‫koyacağım.

60
00:04:51,460 --> 00:04:58,990
‫Bu eylem setini bir konumda çalıştırmasını istiyoruz ve yorumlarım girintili olsa da, kodu eşleşecek şekilde

61
00:04:58,990 --> 00:05:04,120
‫girintilememeye karar verdim çünkü genellikle istediğimiz budur.

62
00:05:04,630 --> 00:05:09,130
‫Kodlar, fonksiyon içinde bir girinti seviyesinde olmalıdır.

63
00:05:09,670 --> 00:05:15,490
‫Şimdi yapabileceğim şey, daha önce sahip olduğumuz tüm kodu, yerel vektörü içeren her şeyi kaldırabilirim.

64
00:05:15,490 --> 00:05:18,430
‫Vektörüm yerel vektörü kullanarak bir konum belirledi.

65
00:05:18,430 --> 00:05:23,830
‫Tüm bunları kaldırabilirim, böylece elimizde sadece yorumlarımızın etrafındaki şeyler kalır.

66
00:05:24,040 --> 00:05:27,100
‫Ayrıca başlık dosyasına gidip burayı biraz temizleyeceğim.

67
00:05:27,100 --> 00:05:31,420
‫Artık my vektörüne ihtiyacımız yok, artık my x new özelliklerine ihtiyacımız yok.

68
00:05:31,420 --> 00:05:34,440
‫Bu yüzden bunları da sileceğim.

69
00:05:34,450 --> 00:05:40,000
‫Şimdi açıkçası hareketli platform CP'si aslında pek bir şey yapmıyor çünkü mevcut aktif konumu

70
00:05:40,000 --> 00:05:44,680
‫alıyoruz, sonra tekrar ayarlıyoruz, bu da temelde hiçbir etkiye sahip değil.

71
00:05:44,680 --> 00:05:52,870
‫Bu nedenle, bu tik fonksiyonunda hareketli platformun mevcut konumunu güncellemeyi denemenizi istiyorum.

72
00:05:52,990 --> 00:05:56,530
‫Bu yüzden X veya Y üyelerini uygun gördüğünüz şekilde kullanın.

73
00:05:56,530 --> 00:06:03,820
‫Bir X sizi ileri taşıyacak, Y sizi sağa taşıyacak, daha sonra buna ekleme yapabilir ve hareketli platformlarımızın konumunu

74
00:06:03,820 --> 00:06:08,770
‫güncellemek için daha önce yaptığımız gibi üyeye geri atayabilirsiniz.

75
00:06:08,770 --> 00:06:15,940
‫Bu yüzden platformun ne kadar hızlı hareket etmesini istediğinize bağlı olarak bir veya iki tane ekleyin ve ardından platformu

76
00:06:15,940 --> 00:06:20,860
‫başlangıç konumuna taşıyın çünkü artık başlangıç konumunu söylemek için üye değişkenimiz

77
00:06:20,860 --> 00:06:23,920
‫yok, aslında mevcut konumu kullanıyoruz.

78
00:06:23,920 --> 00:06:28,960
‫Bu yüzden platformu nereye yerleştirirseniz, platform oradan başlayacaktır.

79
00:06:29,200 --> 00:06:35,380
‫Daha sonra kodunuzu derleyip test etmenizi ve beklediğiniz gibi hareket edip etmediğini görmenizi istiyorum.

80
00:06:35,410 --> 00:06:37,240
‫Videoyu duraklatın ve deneyin.

81
00:06:40,030 --> 00:06:40,360
‫Tamam.

82
00:06:40,360 --> 00:06:41,240
‫Tekrar hoş geldiniz.

83
00:06:41,260 --> 00:06:47,230
‫Bu kod satırını, bundan bahseden yorumun hemen altına yerleştireceğiz, o konuma

84
00:06:47,230 --> 00:06:49,210
‫vektör ekleyeceğiz.

85
00:06:49,600 --> 00:06:52,900
‫Bunu buraya koymamızın nedeni de sıralama.

86
00:06:52,900 --> 00:06:56,830
‫Mevcut konumu almak, güncellemek ve ardından ayarlamak istiyoruz.

87
00:06:56,860 --> 00:06:59,710
‫Orada sıra dışı bir şey olmasını istemiyoruz.

88
00:07:00,070 --> 00:07:04,790
‫Değişkeni oluşturmadan önce onu güncellemiş olsaydık, o değişken var olmazdı.

89
00:07:04,810 --> 00:07:06,490
‫Unutmayın, bu yerel bir değişkendir.

90
00:07:06,520 --> 00:07:11,110
‫Yalnızca işlevin bu özel çağrısı içinde oluşturduğumuzda var olur.

91
00:07:11,110 --> 00:07:16,750
‫Ve eğer bunu aktör konumunu tekrar ayarladıktan sonra yapsaydık, bu değişiklik işlevdeki

92
00:07:16,750 --> 00:07:20,210
‫kapanış parantezine geldiğimizde atılacaktı.

93
00:07:20,260 --> 00:07:29,410
‫Bu yüzden mevcut konumu nokta x olarak ayarlayacağız, mevcut konuma eşit, nokta x artı bir kullanacağım ve

94
00:07:29,410 --> 00:07:34,180
‫ardından satırın sonuna noktalı virgül koyacağım.

95
00:07:34,180 --> 00:07:40,180
‫Unreal'a geri döneceğiz ve derleme düğmesine basacağız.

96
00:07:40,180 --> 00:07:45,640
‫Ve bahsettiğim gibi, şimdi gidip bu hareketli platformu başlangıç konumuna taşımamız gerekiyor.

97
00:07:45,640 --> 00:07:51,490
‫Üçüncü şahıs karakterimize tıklayacağım ve konumuna sağ tıklayıp kopyala düğmesine basarak konumunu kopyalayacağım,

98
00:07:51,490 --> 00:07:56,770
‫ardından hareketli platformumuza gidip konumuna sağ tıklayıp yapıştır düğmesine basacağım.

99
00:07:56,770 --> 00:08:01,510
‫Bu da platformu doğrudan oynatıcımızın içine yerleştirir ki bu aslında istediğimiz şey değildir.

100
00:08:01,510 --> 00:08:09,790
‫Bu yüzden oyuncunun biraz sağına doğru hareket ettireceğim ve doğru yükseklikte olup olmadığını görebileceğim.

101
00:08:09,790 --> 00:08:15,400
‫Sanırım bunu biraz daha aşağıda yapacağım, konum değişkeni yerine mevcut konumu kullanmanın faydalarından

102
00:08:15,400 --> 00:08:20,560
‫biri de bu platformun dünyanın neresinde olacağını gerçekten görebilmemdir.

103
00:08:20,800 --> 00:08:27,130
‫Şimdi devam edip oynat düğmesine basarsam, platformun X yönünde güzel bir şekilde ilerlediğini ve hala üzerine

104
00:08:27,130 --> 00:08:31,510
‫atlayıp onunla birlikte hareket edebildiğimi görebilirsiniz.

105
00:08:31,510 --> 00:08:32,450
‫Harika bir şey.

106
00:08:32,470 --> 00:08:36,490
‫Artık geri dönüş değerlerinin fonksiyonlar dışında nasıl çalıştığını öğrendik.

107
00:08:36,490 --> 00:08:43,160
‫C++ dünyasındaki planlardan birçok kavramı gerçekten anlamaya başlıyoruz.

108
00:08:43,180 --> 00:08:44,890
‫Bir sonraki derste görüşürüz.

