Hallo,
ich selbst beschäftige mich in letzer Zeit mit C# und wollte sowas Ähnliches auch machen, aber so wie du es beschrieben hast ist es nicht möglich (korrigiert mich wenn ich falsch liege), also ich habe dafür eine 2-dimensionale Array erstellt die sozusagen das Spielfeld markiert.
Aber da ich jetzt nicht soviel schreiben möchte poste ich gerne den Code
(Ich selbst bin noch Anfänger)
Code:
private string[,] gridArray = new string[100, 100];
private int gridIndex1;
private int gridIndex2;
private int playerX;
private int playerY;
private int life = 3;
public void SetGrid(int index1, int index2)
{
gridIndex1 = index1;
gridIndex2 = index2;
for (int i = 0; i <= index1; i++)
{
for (int i2 = 0; i2 <= index2; i2++)
{
gridArray[i, i2] = Tile01;
}
}
}
public void ShowGrid()
{
Console.Clear();
Console.WriteLine("Life: " + life.ToString());
Console.WriteLine();
for (int i = 0; i <= gridIndex1; i++)
{
for (int i2 = 0; i2 <= gridIndex2; i2++)
{
Console.Write(gridArray[i, i2]);
}
Console.WriteLine("\n");
}
}
public void SetChar(int y, int x)
{
playerX = x;
playerY = y;
gridArray[y, x] = Player01;
}
public void MoveChar(int newX, int newY)
{
gridArray[playerY, playerX] = Tile01;
playerX += newX;
playerY += newY;
gridArray[playerY, playerX] = Player01;
ShowGrid();
}
Habe noch die Datei selbst angehängt hoffe konnte dir helfen.
EDIT: Bei MoveChar bei den 2 Parametern kommt nicht die neue Coord rein sondern wie er sich bewegen soll z.B
Hoch = muss immer -1y gerechnet werden
Runter = genau andersherum
Links = muss immer -1x gerechnet werden
Rechts = genau andersherum