feat(chess): 初始化棋盘和玩家颜色,优化代码结构,重构多人游戏代码
- 在 ChessGame 中初始化棋盘,根据玩家颜色设置棋子 - 更新 UI 显示玩家颜色 - 调整棋盘位置和 UI 布局 - 重构部分代码以提高可读性和维护性
This commit is contained in:
@ -7,7 +7,7 @@ public class Player {
|
||||
private readonly SelectedPiece selectedNode;
|
||||
private readonly MoveRecords<VirtualPiece> moveRecords;
|
||||
public EventHandler<VirtualBoard.MoveEventArgs> OnMove;
|
||||
public ArrayList pieces = new();
|
||||
|
||||
|
||||
public enum PlayerType {
|
||||
Human,
|
||||
@ -86,11 +86,16 @@ public class Player {
|
||||
// board.InitChessBoard();
|
||||
}
|
||||
|
||||
public void SetAllowedPieces(ArrayList allowedPieces) {
|
||||
selectedNode.allowedPieces = allowedPieces;
|
||||
}
|
||||
|
||||
private class SelectedPiece {
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
private Vector2 selectedNodePos = Vector2.Inf;
|
||||
private VirtualPiece piece;
|
||||
private readonly VirtualBoard board;
|
||||
public ArrayList allowedPieces = null;
|
||||
|
||||
public SelectedPiece(VirtualBoard board) {
|
||||
this.board = board;
|
||||
@ -105,8 +110,11 @@ public class Player {
|
||||
|
||||
public void SetPos(Vector2 pos) {
|
||||
// piece = board.GetNodeFromBoard(pos) as VirtualPiece;
|
||||
piece = board.GetPiece(pos);
|
||||
if (allowedPieces != null && allowedPieces.Contains(piece) == false) {
|
||||
return;
|
||||
}
|
||||
selectedNodePos = pos;
|
||||
piece = board.GetPiece(selectedNodePos);
|
||||
piece.Selected(true);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user