ahmetr

Yeni üye
21 Mar 2017
22
0
0
(80) Osmaniye
Selam arkadaşlar ben hayatta kalma oyunu yapıyorum envanteri bitirdim gibi birşey şimdi sıkıntım chesti control etme misal içine item koyma ve alma yapamadım açıyorum itemi alıyorum ama eksilmiyor bunun hakkında bilgi verirmisiniz
 
ahmetr' Alıntı:
Selam arkadaşlar ben hayatta kalma oyunu yapıyorum envanteri bitirdim gibi birşey şimdi sıkıntım chesti control etme misal içine item koyma ve alma yapamadım açıyorum itemi alıyorum ama eksilmiyor bunun hakkında bilgi verirmisiniz

Bunun için UMG'yi ve InventoryDragDrop sınıfını iyi anlamanız lazım. Her bir itemin bir slotu olmalı. Aynı şekilde chestinde. Chestten item alınca, belirli slota göre chestin tutulduğu veri tipindeki diziden slot numarasına göre remove index yapacak.

Diğer bir şekilde C++ kullanıyorsanız büyük ihtimalle bir USTRUCT oluşturup. Bunun üzerine örnek bir struct yapısını TArray olarak kullandınız. TMap template kullanarak basit bir şekilde slot numaralarını verilerinizde tutup işlem yapabilirsiniz 

TMap<int32, FName> 

int32 otomatik değer, yani key belirtiyor. FName ise sizin herhangi bir slot değeri için tutacağınız özel bir değer.
Key (int32) parametresi sizin slot numranız oluyor, buna göre item eklendiği zaman basitçe "append" metodunu kullanarak yeni bir tanım oluşturabilirsiniz.

Bu kadar kısıtlı bilgiler ile bir yere varmak mümkün gibi gözükmüyor. Fakat size nasıl yapılacağını anlattım. İlginç olan tarafı bu kadar ileriye gidip basit bir işlemi yapamamak.
 

Misal burda remove yapıyorum hata veriyor ama event tick kullanıyorum delayı 5 sn yapıyorum ekliyor burda benim hatam ne? mantıgını biliyorum ezbere degil ama hata veriyo
 
ahmetr' Alıntı:

Misal burda remove yapıyorum hata veriyor ama event tick kullanıyorum delayı 5 sn yapıyorum ekliyor burda benim hatam ne? mantıgını biliyorum ezbere degil ama hata veriyo
REMOVE INDEX kutusundaki INTEGER PIN 0'a ayarlanmış. Yani bu custom event'i aktif ettiğinizde sürekli indeks numarası 0 olan değeri siliyor. Bunun yerine custom eventinizdeki New param 0 değerini bir slot numarası olarak atayıp daha sonra belirli indekse göre silme işlemi uygulamalısınız.
 
Öylede yaptım itemin ındexını silsin diye ama custom eventi çalıştırınca hata veriyor ama kendi içinden event tick yardımıyla silme işlemini yapıyor burda ne hatam var onu anlamadım
 
ahmetr' Alıntı:
Öylede yaptım itemin ındexını silsin diye ama custom eventi çalıştırınca hata veriyor ama kendi içinden event tick yardımıyla silme işlemini yapıyor burda ne hatam var onu anlamadım

Ne hatası veriyor? Bize göstermen lazım. Ben de hatayı anlamadan sanırım bir cevap vermem. Custom Eventini ne için bağladın?
 
Custom eventi drag Drop sisteminden ındex sayısını alııyorum ama misal remove yaparken hata veriyor bende arrayın içine 5 tane item koydum açınca 5 saniyede bir 0 ındex silinsin diye bir deneme yaptım siliniyor ama ben silemiyorum nasıl gösterim size
 
ahmetr' Alıntı:
Custom eventi drag Drop sisteminden ındex sayısını alııyorum ama misal remove yaparken hata veriyor bende arrayın içine 5 tane item koydum açınca 5 saniyede bir 0 ındex silinsin diye bir deneme yaptım siliniyor ama ben silemiyorum nasıl gösterim size

Event Tick functionunu bağladığınız için olabilir mi? Event tick her bir çerçevenin geçiş sırası arasında hesaplanır. Belirli bir işlem yapıldığında düşüreceksiniz. Yanlış eventi seçmişsiniz. 

Aşağıdaki forumdaki  Nick Darnell kullanıcının yaptığı örneklere göz atın. Event Dispatcher kullanmayı öğrenin, bu sayede farklı eventleri sırasına göre bir arada kullanabilirsiniz.

https://forums.unrealengine.com/sho...g-mouse-events&p=164942&viewfull=1#post164942

attachment.php



attachment.php


attachment.php