bugfix 修复撤回和重新开始按钮的逻辑错误
This commit is contained in:
parent
9ba2e1af6b
commit
d892cd6c0e
@ -9,7 +9,7 @@ public partial class ChessBoard : Node2D {
|
|||||||
public override void _Ready() {
|
public override void _Ready() {
|
||||||
Board = new VirtualBoard(this as Node);
|
Board = new VirtualBoard(this as Node);
|
||||||
Records = new MoveRecords(onUndoRecordCallback: (newNode, oldNode, newPos, oldPos) => {
|
Records = new MoveRecords(onUndoRecordCallback: (newNode, oldNode, newPos, oldPos) => {
|
||||||
GD.Print("Undo: ", newNode, "->", newNode, ":", newPos, "->", oldPos);
|
GD.Print("Undo: ", newNode, "->", oldNode, ":", newPos, "->", oldPos);
|
||||||
ChessPiece newPiece = newNode as ChessPiece;
|
ChessPiece newPiece = newNode as ChessPiece;
|
||||||
ChessPiece oldPiece = oldNode as ChessPiece;
|
ChessPiece oldPiece = oldNode as ChessPiece;
|
||||||
Board.MoveNode(oldPos, newPos);
|
Board.MoveNode(oldPos, newPos);
|
||||||
@ -64,6 +64,7 @@ public partial class ChessBoard : Node2D {
|
|||||||
}
|
}
|
||||||
Node NowNode;
|
Node NowNode;
|
||||||
if (NowChess != null) {
|
if (NowChess != null) {
|
||||||
|
GD.Print("nowchess", NowChess);
|
||||||
NowNode = NowChess.Duplicate();
|
NowNode = NowChess.Duplicate();
|
||||||
Board.RemoveNode(clickArrPos);
|
Board.RemoveNode(clickArrPos);
|
||||||
} else {
|
} else {
|
||||||
@ -83,6 +84,7 @@ public partial class ChessBoard : Node2D {
|
|||||||
public void redo() {
|
public void redo() {
|
||||||
Records.Clear();
|
Records.Clear();
|
||||||
Board.Clear();
|
Board.Clear();
|
||||||
|
selectedNodePos = Vector2.Inf;
|
||||||
Board.InitChessBoard();
|
Board.InitChessBoard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ class VirtualBoard {
|
|||||||
public void Clear() {
|
public void Clear() {
|
||||||
foreach (var node in BoardRoot.GetChildren()) {
|
foreach (var node in BoardRoot.GetChildren()) {
|
||||||
if (node is ChessPiece chessPiece) {
|
if (node is ChessPiece chessPiece) {
|
||||||
|
RemoveNode(chessPiece.getPos());
|
||||||
chessPiece.QueueFree();
|
chessPiece.QueueFree();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user