Newer
Older
DungeonShooting / DungeonShooting_Godot / src / test / TestGenerateDungeon.cs
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 测试地牢生成
  6. /// </summary>
  7. public partial class TestGenerateDungeon : Node2D
  8. {
  9. [Export] public NodePath TileMapPath;
  10. [Export] public NodePath Camera3D;
  11.  
  12. private TileMap _tileMap;
  13. private Camera2D _camera;
  14.  
  15. private GenerateDungeon _generateDungeon;
  16. private Font _font;
  17.  
  18. // public override void _Ready()
  19. // {
  20. // _tileMap = GetNode<TileMap>(TileMapPath);
  21. // _camera = GetNode<Camera2D>(Camera3D);
  22. //
  23. // _font = ResourceManager.Load<Font>(ResourcePath.resource_font_cn_font_36_tres);
  24. //
  25. // _generateDungeon = new GenerateDungeon();
  26. // _generateDungeon.Generate();
  27. //
  28. // foreach (var info in _generateDungeon.RoomInfos)
  29. // {
  30. // //临时铺上地砖
  31. // var id = (int)_tileMap.TileSet.GetTilesIds()[0];
  32. // for (int i = 0; i < info.Size.X; i++)
  33. // {
  34. // for (int j = 0; j < info.Size.Y; j++)
  35. // {
  36. // _tileMap.SetCell(i + (int)info.Position.X, j + (int)info.Position.Y, id);
  37. // }
  38. // }
  39. // }
  40. // }
  41. //
  42. // public override void _Process(float delta)
  43. // {
  44. // //移动相机位置
  45. // var dir = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
  46. // _camera.Position += dir * 1000 * delta;
  47. //
  48. // Update();
  49. // }
  50. //
  51. // public override void _Draw()
  52. // {
  53. // DrawRoomInfo(_generateDungeon.StartRoom);
  54. //
  55. // }
  56. //
  57. // private void DrawRoomInfo(RoomInfo room)
  58. // {
  59. // var cellSize = _tileMap.CellSize;
  60. // var pos1 = (room.Position + room.Size / 2) * cellSize;
  61. // foreach (var nextRoom in room.Next)
  62. // {
  63. // var pos2 = (nextRoom.Position + nextRoom.Size / 2) * cellSize;
  64. // DrawLine(pos1, pos2, Colors.Red);
  65. // DrawRoomInfo(nextRoom);
  66. // }
  67. //
  68. // DrawString(_font, pos1, room.Id.ToString(), Colors.Yellow);
  69. //
  70. // foreach (var roomDoor in room.Doors)
  71. // {
  72. // var originPos = roomDoor.OriginPosition * cellSize;
  73. // switch (roomDoor.Direction)
  74. // {
  75. // case DoorDirection.E:
  76. // DrawLine(originPos, originPos + new Vector2(3, 0) * cellSize, Colors.Yellow);
  77. // DrawLine(originPos + new Vector2(0, 4) * cellSize, originPos + new Vector2(3, 4) * cellSize,
  78. // Colors.Yellow);
  79. // break;
  80. // case DoorDirection.W:
  81. // DrawLine(originPos, originPos - new Vector2(3, 0) * cellSize, Colors.Yellow);
  82. // DrawLine(originPos + new Vector2(0, 4) * cellSize, originPos - new Vector2(3, -4) * cellSize,
  83. // Colors.Yellow);
  84. // break;
  85. // case DoorDirection.S:
  86. // DrawLine(originPos, originPos + new Vector2(0, 3) * cellSize, Colors.Yellow);
  87. // DrawLine(originPos + new Vector2(4, 0) * cellSize, originPos + new Vector2(4, 3) * cellSize,
  88. // Colors.Yellow);
  89. // break;
  90. // case DoorDirection.N:
  91. // DrawLine(originPos, originPos - new Vector2(0, 3) * cellSize, Colors.Yellow);
  92. // DrawLine(originPos + new Vector2(4, 0) * cellSize, originPos - new Vector2(-4, 3) * cellSize,
  93. // Colors.Yellow);
  94. // break;
  95. // }
  96. //
  97. // if (roomDoor.HasCross && roomDoor.RoomInfo.Id < roomDoor.ConnectRoom.Id)
  98. // {
  99. // DrawRect(new Rect2(roomDoor.Cross * cellSize, cellSize * 4), Colors.Yellow);
  100. // }
  101. // }
  102. //
  103. // //绘制地图上被占用的网格
  104. // // _generateDungeon.RoomGrid.ForEach((x, y, value) =>
  105. // // {
  106. // // DrawRect(new Rect2(new Vector2(x, y) * cellSize + new Vector2(6, 6), new Vector2(4, 4)), Colors.Green);
  107. // // });
  108. // }
  109. }