Ich habe ein Projekt in der Klasse, wo ich beschloss, ein DX-Ball-Spiel in XNA zu machen, und ziemlich gut gegangen, aber jetzt bin ich fest.XNA/C# Liste bearbeiten <> aus einer anderen Klasse
Ich habe eine Liste von "Ziegeln" erstellt, also Rechtecke, damit meine Sprites von und für meinen Ball positioniert werden können. Ich habe eine Idee, alle Ball-Logik in der Ball-Klasse zu lassen, also jetzt der lustige Teil, mit dem ich Hilfe brauche. Wie man diese Liste bearbeitet, wenn der Ball mit einem der Steine kollidiert. Ich möchte den Stein, der getroffen wurde, löschen, und ich denke, das wird in Ordnung sein, da sie als einzelne Steine mit individuellen Koordinaten deklariert sind.
Ich habe diese Frage gefunden, und sie beantwortet den Teil, wie man Dinge aus einer Liste herausholt, aber nicht wie man sie bearbeitet.
Ich habe über das Schreiben einer Booleschen Funktion in das Ball-Update-Feld nachgedacht, da ich es nicht jedes Mal berechnen muss, wenn es einen Frame aktualisiert. Wenn die Kollision wahr ist, kann sie die Funktion, die durch die Liste von Steinen iteriert, löschen und diejenige löschen, die der Ball getroffen hat.
Ich bin mir nicht sicher, was ich aus meinem Ball Klasse zeigen muss, so dass es einige später wenn nötig geben könnte.
public struct BoundingBrick
{
public Vector2 brickPosision;
public double BrickW;
public double BrickH;
}
public BoundingBrick boundingBrick = new BoundingBrick();
boundingBrick.BrickW = 50;
boundingBrick.BrickH = 20;
boundingBrick.brickPosision.X = 50;
boundingBrick.brickPosision.Y = 50;
bricks = new List<Rectangle>();
for (var i = 0; i < 14; i++)
{
for (var j = 0; j < 12; j++)
{
bricks.Add(new Rectangle((int)boundingBrick.brickPosision.X + j * 50, (int)boundingBrick.brickPosision.Y + i * 20, (int)boundingBrick.BrickW, (int)boundingBrick.BrickH));
}
}
Zunächst einmal willkommen in SO. Ich würde dir raten, eine boolesche Variable, etwa "Sichtbar", zu deinem "BoundingBrick" hinzuzufügen. Anstatt eine 'List ' zu haben, sollten Sie besser eine 'List' haben und Ihr Rechteck erstellen, nachdem die Liste aufgefüllt wurde. Ich bin kein XNA-Experte, also kann ich Ihnen nicht weiter helfen. –
Pikoh
RemoveAt (Index) entfernt das Element am angegebenen Index. https://msdn.microsoft.com/pt-br/library/5cw9x18z(v=vs.110).aspx – Magnetron
Aber wie aus einer anderen Klasse bearbeiten? –