add 新增远程连接,实现多人游戏

This commit is contained in:
ZZY
2024-06-27 15:02:57 +08:00
parent d892cd6c0e
commit 9a79bef410
23 changed files with 1167 additions and 211 deletions

View File

@ -1,4 +1,3 @@
using System.Dynamic;
using Godot;
class VirtualBoard {
@ -11,12 +10,12 @@ class VirtualBoard {
return arrayPos.X < 0 || arrayPos.X >= boradRows || arrayPos.Y < 0 || arrayPos.Y >= boradCols;
}
public Node getNodeFromBoard(Vector2 arrayPos) {
public Node GetNodeFromBoard(Vector2 arrayPos) {
if (ArrPosOutOfRange(arrayPos)) return null;
return nodesBorad[(int)arrayPos.X, (int)arrayPos.Y];
}
public void setNodeToBoard(Vector2 arrayPos, Node node) {
public void SetNodeToBoard(Vector2 arrayPos, Node node) {
if (ArrPosOutOfRange(arrayPos)) return;
nodesBorad[(int)arrayPos.X, (int)arrayPos.Y] = node;
}
@ -30,29 +29,29 @@ class VirtualBoard {
if (ArrPosOutOfRange(newPos) || ArrPosOutOfRange(oldPos)) {
return false;
}
if (getNodeFromBoard(newPos) != null) {
if (GetNodeFromBoard(newPos) != null) {
return false;
}
if (getNodeFromBoard(oldPos) is ChessPiece chessPiece) {
if (GetNodeFromBoard(oldPos) is ChessPiece chessPiece) {
chessPiece.movePos(newPos);
}
setNodeToBoard(newPos, getNodeFromBoard(oldPos));
setNodeToBoard(oldPos, null);
SetNodeToBoard(newPos, GetNodeFromBoard(oldPos));
SetNodeToBoard(oldPos, null);
return true;
}
public bool RemoveNode(Vector2 arrayPos) {
if (ArrPosOutOfRange(arrayPos)) return false;
if (getNodeFromBoard(arrayPos) is ChessPiece chessPiece) {
if (GetNodeFromBoard(arrayPos) is ChessPiece chessPiece) {
chessPiece.QueueFree();
}
setNodeToBoard(arrayPos, null);
SetNodeToBoard(arrayPos, null);
return true;
}
public void InsertNode(ChessPiece chess, Vector2 arrayPos) {
chess.Position = PosTrans.transArrToPix * arrayPos;
setNodeToBoard(arrayPos, chess);
SetNodeToBoard(arrayPos, chess);
BoardRoot.AddChild(chess);
}