(在以下代码中,player
是一种包含名为Vector2
的{{1}}
Vector
VS
Vector2 v = player.Vector;
v.X -= player.Speed * (float)gameTime.ElapsedGameTime.TotalSeconds;
player.Vector = v;
这两个都完成了同样的任务(绕过“不能修改返回值,因为它不是一个变量”错误),但是比另一个更有效吗?
是否使用较少的内存? (没有权利?) 一个人执行得更快吗? 还有更好的方法吗?
答案 0 :(得分:2)
第二个选项更好,因为它不会改变任何对象。为了提高可读性,我将提取一个如下变量:
var x = player.Vector.X - player.Speed * (float)gameTime.ElapsedGameTime.TotalSeconds;
player.Vector = new Vector2(x, player.Vector.Y);