我正在制作游戏。对象属于这个游戏。我打算做这个"跌倒"通过交换2D数组中的元素来实现。每个元素都是一个保持颜色的对象。
我搜索所有元素。
它应该交换。
我不明白我做错了什么。
如果我错了,请纠正我,但不是这样交换吗?
var namespace = {
one: function (args) {
// Do something
return this;
},
two: function () {
// Do something
return this;
}
}
答案 0 :(得分:0)
我会在您的代码中发布相关部分并在其上回答
Int x = currentTile.getX()/50;
int y = (currentTile.getY()+1)/50;
CellPane botTile = board[x][y];
if (botTile.getBackground().equals(Color.BLACK)){
board[x][y].setBackground(currentTile.getBackground());
board[currentTile.getX()/50][currentTile.getY()/50].setBackground(botTile.getBackground());
}
botTile持有与board [x] [y]相同的对象(板块)的引用。检查botTile的颜色,并将其替换为currentTile上的颜色。这意味着botTile和board [x] [y]引用的对象现在都有了新的颜色。这意味着旧颜色已丢失,因为您没有将其保存在另一个变量中。你应该做这样的事情
CellPane botTile = board[x][y];
if (botTile.getBackground().equals(Color.BLACK)){
Color oldColor = botTile.getBackground;
board[x][y].setBackground(currentTile.getBackground());
board[currentTile.getX()/50][currentTile.getY()/50].setBackground(oldColor);
}
答案 1 :(得分:0)
由于您将值除以50,y值将不会递增,除非值为50,100等等...... 如下所示分配y:
int y = 1 + currentTile.getY()/50;