2016-04-10 22 views
0

Oyunuma birden çok fayans yüklerken bazı sorunlar yaşıyorum. Oyun dünyam şu anda 770x450 piksel boyutuna sahip. Tek bir döşemeyi (0, 330) konumuna yükledim ve döşemeyi x ekseni boyunca ulaşana kadar kopyalayan ve yükleyen bir döngü yapmak istedim (770, 330).Monogame - Birden fazla fayans yükleme

Ben sonraki kiremit yüklemez ancak her döngü üzerine, bu döngü yapmak mümkün olmuştur

, sadece sonraki pozisyona hareket, burada döngü var:

for (int i = 0; i < 770; i += 31) 
{ 
    position = new Vector2(i, 330); 
    // Some sort of draw method here! 
    if (i == 744) 
    { 
     i = i + 26; 
     // or here... 
     position = new Vector2(i, 330); 
     // or maybe here? 
    } 
} 

Ve bu eğer yalnızca bir kez karo çiziyorsun

spriteBatch.Begin(); 
spriteBatch.Draw(gameTile, position, Color.White); 
spriteBatch.End(); 

cevap

2

: burada benim şimdiki Draw() yöntemidir, yardımcı olur. Anlatabilirsiniz çünkü sadece bir tane spriteBatch.Draw() aramanız var. Döngü içindeki pozisyonu güncellemek için yeterli değildir. Her yere de çizmelisin.

public void Draw() 
{ 
    spriteBatch.Begin(); 

    for (int i = 0; i < 770; i += 31) 
    { 
     position = new Vector2(i, 330); 
     if (i == 744) 
     { 
      i = i + 26; 
      position = new Vector2(i, 330); 
     } 
     spriteBatch.Draw(gameTile, position, Color.White); 
    } 

    spriteBatch.End(); 
} 

Tabii ki, Draw() yöntemde tüm bu loopy mantığı önlemek istiyorum. Bunun tek yolu, Update() yönteminizde çizilmesini istediğiniz her konum için bir döşeme oluşturmaktır. Daha sonra Draw() yöntemi, tüm gameTiles'leriniz arasında dolaşabilir ve bunları karşılık gelen pozisyona getirebilir.

İlgili konular