0318 다차원 배열에서 캐릭터 이동
2021. 3. 18. 18:00ㆍC#/수업내용
public class App
{
//생성자
public App()
{
Console.WriteLine("App");
TileMapManager tmm = new TileMapManager();
tmm.Init();
tmm.PrintMap();
Hero hero = new Hero(new Coord(0, 0));
hero.Move(new Coord(1, 0));
Coord coord = hero.Coord;
Console.WriteLine("hero coord: ({0},{1})", coord.x, coord.y);
MapData data = tmm.GetMapData(coord);
Console.WriteLine("map data: {0}", data.data);
}
}
public class TileMapManager
{
private int row;
private int col;
public MapData[,] map;
public int[,] arr = {
{ 101, 100, 100 },
{ 101, 101, 101 },
{ 100, 100, 100 },
};
//생성자
public TileMapManager()
{
}
public void Init()
{
this.row = this.arr.GetLength(0);
this.col = this.arr.GetLength(1);
this.map = new MapData[this.row, this.col];
for (int i = 0; i < this.row; i++)
{
for (int j = 0; j < this.col; j++)
{
var data = new MapData(this.arr[i, j]);
this.map[i, j] = data;
}
}
}
public MapData[,] GetMap()
{
return this.map;
}
public void PrintMap()
{
for (int i = 0; i < this.row; i++)
{
for (int j = 0; j < this.col; j++)
{
MapData data = this.map[i, j];
Console.Write("{0, 2} ", data.data);
}
Console.WriteLine();
}
}
public MapData GetMapData(Coord coord)
{
return this.map[coord.y, coord.x];
}
}
public class Hero
{
public Coord Coord
{
get; private set;
}
//생성자
public Hero(Coord coord)
{
this.Coord = coord;
}
public void Move(Coord coord)
{
Console.WriteLine("hero move: ({0},{1}) -> ({2},{3})", this.Coord.x, this.Coord.y, coord.x, coord.y);
this.Coord = coord;
}
}
public struct Coord
{
public int x;
public int y;
//생성자
public Coord(int x, int y)
{
this.x = x;
this.y = y;
}
}
public class MapData
{
public int data;
//생성자
public MapData(int data)
{
this.data = data;
}
}
'C# > 수업내용' 카테고리의 다른 글
0319 Partial Class 분할 클래스 (0) | 2021.03.19 |
---|---|
0319 2차원 배열 복습 (0) | 2021.03.19 |
2차원 배열 isometric view (0) | 2021.03.18 |
0318 다차원 배열 (맵 변경하기) (0) | 2021.03.18 |
0318 다차원 배열 연습 10개 (0) | 2021.03.18 |