Hey. Ben 480 x 800 görüntü var ve bu benim tilemap üzerine yerleştirmek istiyorum. Görüntüyü bir ızgaraya (6 x 10) bölmeye çalışıyorum ve görüntünün belirli bir bölümünü her bir döşemeye atadım. Esasen, her bir döşemenin kendisine bağlı görüntünün ilgili kısmına sahip olması nedeniyle tilemap büyük bir görüntü gibi görünecektir. Bunu yapmanın en iyi yolu nedir? Her bir döşemeden geçmeyi ve onu bir WriteableBitmap'e çizmeyi denedim, ancak tüm görüntüler aynı.Fayanslara görüntüyü kırın
WriteableBitmap wb = new WriteableBitmap(80,80);
Rect src= new Rect(x*Width,y*Height, 80, 80);
Rect dest= new Rect(0, 0, 80, 80);
wb.Blit(dest, mainWb, src);
tile.SetImage(wb);
(x ve y) tilemap yineleme kullanılan sadece dizinlerinin 80 karo yükseklik ve genişlik ve mainWb
I bölmek isteyen büyük bir görüntüdür. Herhangi bir yardım için teşekkürler.
düzenleme: Tam döngü kodu:
var mainImage = Application.GetResourceStream(new Uri("MainImage.jpg", UriKind.Relative)).Stream;
WriteableBitmap mainWb = new WriteableBitmap(480, 800);
mainWb.SetSource(mainImage);
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 12; y++)
{
Tile tile = new Tile();
WriteableBitmap wb = new WriteableBitmap(80,80);
Rect src = new Rect(x*Width,y*Height, 80, 80);
Rect dest = new Rect(0, 0, 80, 80);
wb.Blit(dest, mainWb, src);
tile.SetImage(wb);
Canvas.SetLeft(tile, x * WIDTH);
Canvas.SetTop(tile, y * HEIGHT);
LayoutRoot.Children.Add(tile);
ls.Add(tile);
}
}
Tile
sınıf bir resim denetimi ile basit 80x80 tuval img
denilen olduğunu. SetImage
yöntem yukarıda şudur:
public void SetImage(WriteableBitmap wb)
{
img.Source = wb;
}
Bu kod doğru görünüyor. Tüm döngüyü gönderir misin? –
@Olivier Payen - Tam döngüyü ekledim. – Skoder