好的,
我有一个敌人矩阵Enemy enemyGrid[x, y]
然后,在我的代码中,我通过调用获得一个敌人的实例Enemy tmp = enemyGrid[a, b]
但是,如果我更改 tmp 中的一个属性,下次我将矩阵中的对象加载到同一个对象 tmp 中时,它不会反映出来。
每次完成 tmp 后,我都需要= null
将更改反映到网格中的对象中?
这是为什么?我认为 tmp 只会保存对对象的引用,并且会直接在主对象中进行更改。
谢谢。
代码更新:
填充网格:
Enemy [,] spriteGrid = new Enemy[countCols, countRows];
spriteGrid[x, y] = new Enemy();
访问对象并更改属性:
Enemy tmp = spriteGrid[i, j];
tmp.canShoot = true;
tmp.Update(gameTime, game.Window.ClientBounds);
tmp.canShoot = false;
最后一行 (canShoot = false) 不会反映到存储在网格中的对象中。