İlk libGDX oyunumu geliştiriyorum, masaüstü simülatörü ile bir tür Boşta oyun. Ama benim sorum genel olarak Java ile ilgili.
Bu oyunda GameEvents verilerini ilk çalıştırmada bir CSV dosyasından yönetmek istiyorum ve daha sonra Gdx'e kaydedilecekti.Uygulama.Bir Dize olarak tercihler, bu iyi çalışıyor.
Ancak beklendiği gibi çalışmayan şey, en kolay şey gibi görünen şey, CSV ayrıştırma yöntemi, çok karmaşık bir şey değil, yalnızca her CSV alanı için bir döngü yapıyorum ve bir oyun etkinliğinde saklıyorum. Sınıf (tüm ilkel veri türleri, int, string ve float) ve aslında çalışır... ama bazı Booleanların aslında olmadıklarında yanlış olduğunu söylüyor.
Bu benim ayrıştırma yöntemim:
private void parseEventData(String data) {
String[] text = data.split(";");
int i=0;
for(String field : text) {
switch(i){
case 0:
this.id=field;
break;
case 1:
this.eventState=field;
break;
case 2:
[...]
case 8:
this.mainEvent= (Boolean.getBoolean(field));
break;
case 9:
this.active= (Boolean.getBoolean(field));
break;
case 10:
this.continueEvent= (Boolean.getBoolean(field));
break;
[...]
}
i++;
}
}
Hata ayıklamak için bir çift println () ekledim, ilki 2 GameEvents değeriyle girerken" data " raw yazdırıyor:
1970MM01; BEKLEMEDE; titlelonglonglong/ / altyazı / / Anne / / bu ana metindir / / çeşitli satırlarda ayırabilirseniz daha iyidir; MAİL/ / MAİLB; 1970MM02; NULL; MAİL; MAİL; true; true; true;1970;1;0.5;0.5;1;1;0;doğru; 60 1970MM02; BEKLEMEDE; childtitleçok çok çok çok uzun bir başlık//altyazı / / falan filan blah//booooh;MANAGER//MANAGERb//MANAGERc;NULL;NULL;MAIL;MAIL;false;true;false;1970;0;0.5;0.5;1;1;0;true;30
Ve bu diğeri Gameevent'te ayrıştırdıktan sonra.sınıf, başka bir yönteme geçmeden ayrıştırıldı...
1970MM01; BEKLEMEDE; titlelonglonglong/ / altyazı / / Anne / / bu ana metindir / / çeşitli satırlarda ayırabilirseniz daha iyidir; MAİL/ / MAİLB; 1970MM02; NULL; MAİL; MAİL; false; false; false;1970;1.0;0.5;0.5;1.0;1.0;0.0;doğru; 60
Boole ile ilgili belgeleri kontrol ettim.valueOf() ve Boolean.Boolean olsun... ancak her ikisi de bazı alanlarda rastgele görünen bazı değerler verir, ancak diğerlerinde iyi çalışır...
Neyi yanlış yapıyorum?
PS: "İf" ifadeleriyle ve true/false değerini 0/1 değiştirerek veya Json kullanarak bazı geçici çözümler yapabileceğimi biliyorum, ancak csv ayrıştırıcısı kadar kolay bir şeyde neyi yanlış anladığımı bilmem gerekiyor. T