Düzeltme | Neredeyse Herkeste Olan Ymir Hatası

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 639

Kaiser

Adͥᴍiͣnͫ
Admin
Süper Üye
Geliştirici
Yardımsever Üye
Mesaj
4.630
Çözümler
456
Beğeni
5.713
Puan
5.349
Ticaret Puanı
0
Efekt yönetimiyle alakalı küçük bir mantık hatası fark ettim. Bunun kasıtlı olarak yapılıp yapılmadığından emin değilim, efektlerle içli dışlı olanlar herhangi bir yanlış anlamayı düzeltebilirler, fakat kod bu haliyle mantıksız görünüyor.

ParticleSystemData.cpp:
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emittershape", &m_EmitterProperty.m_byEmitterShape))
    return FALSE;
    
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterShape = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
    /*
    m_byEmitterAdvancedType nesnesini sorguluyor ama m_byEmitterShape nesnesine aktarıyor?
    m_byEmitterShape bir üstte zaten ayrıca sorgulanmış.
     m_byEmitterShape ve m_byEmitterAdvancedType farklı enumlara aittir.
    */
}

Olması gereken(ikinci if):
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterAdvancedType = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
}
 
neredeyse herkeste demiş çünkü benim fileste olmadığını biliyor...
 
Evet doğru tespitte bulunmuşsun emitteradvancedtype verisi okunamadığında, m_byEmitterAdvancedType yerine yanlışlıkla m_byEmitterShape değişkenine değer atanıyor. Bu mantıksal bir hata dediğin gibi muhtemelen bilerek yapmışlar aydınlattığın için teşekkürler 2 farklı dosyamda kontrol ettiğim girişi düzgün diğerinde mevcut hata
 
Efekt yönetimiyle alakalı küçük bir mantık hatası fark ettim. Bunun kasıtlı olarak yapılıp yapılmadığından emin değilim, efektlerle içli dışlı olanlar herhangi bir yanlış anlamayı düzeltebilirler, fakat kod bu haliyle mantıksız görünüyor.

ParticleSystemData.cpp:
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emittershape", &m_EmitterProperty.m_byEmitterShape))
    return FALSE;
   
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterShape = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
    /*
    m_byEmitterAdvancedType nesnesini sorguluyor ama m_byEmitterShape nesnesine aktarıyor?
    m_byEmitterShape bir üstte zaten ayrıca sorgulanmış.
     m_byEmitterShape ve m_byEmitterAdvancedType farklı enumlara aittir.
    */
}

Olması gereken(ikinci if):
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterAdvancedType = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
}
imzadaki set hangi set kanka öyle
 
o zaman boss u ver bize :poke:
Başlıksız-1.webp
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst