我正在製作一個庫存系統,我被卡在物品應該通過簡單的拖放來移動的部分。XNA遊戲物品拖放 - 如何實現對象交換?
有一個Item[,] Inventory
陣列持有的項目,object fromCell, toCell
應該抱到細胞中的引用時釋放鼠標按鍵與操作,但是當我嘗試這樣做:
object temp = toCell;
toCell = fromCell;
fromCell = temp;
...遊戲只是交換對象引用而不是實際的對象。我如何完成這項工作?
UPD:感謝Bartosz,我明白了這一點。原來,你可以放心地使用一個對象數組的引用,並用你希望交換的對象的已保存索引來更改它它。
代碼可以是這樣的:
object fromArray, toArray;
int fromX, fromY, toX, toY;
// this is where game things happen
void SwapMethod()
{
object temp = ((object[,])toArray)[toX, toY];
((object[,])toArray)[toX, toY] = ((object[,])fromArray)[fromX, fromY];
((object[,])fromArray)[fromX, fromY] = temp;
}
當然,指數! – user1306322