2014-02-08 169 views
0

我正在为潜水艇编程AI,当它在水面以上时“看到”车队,但会预测车队在水下时的位置。当我将车队的位置复制到潜艇级别的Vector2中时,无论车队的位置何时更新,这个Vector2都会改变。那么,如何在不将该位置与原始位置绑定的情况下复制车队的位置?复制一个值,但不会在更改时受到影响

回答

2

您是否尝试过:的

Vector2 vec2 = new Vector2(vec1.X,vec1.Y); 

代替

Vector2 vec2 = vec1; 

了吗?

编辑:
您可以运行数组/列表并将新矢量添加到新列表中。

for(int i=0;i<originalList.Count;i++){ 
    newList.Add(new Vector2(originalList[i].X,originalList[i].Y)); 
} 

EDIT2:
当你“复制”非基本变量,如自定义类,那么你实际上使一个新的“参考”而不是“复制”。为了制作副本,您必须创建一个新实例,并将原始实例的原语复制到新实例。
Primitives.

+0

是的,这工作,谢谢!我如何能够用类来做类似的事情 - 我有一个ConvoyShip类和一个包含它们的数组,如果我可以将数组复制到子类的内部,并且执行所有预测,但后来我又遇到了同样的问题! (我是一个新手,很抱歉,如果这是一个愚蠢的问题) – Cogythea

+0

我该如何做一些不是Vector2的东西呢? – Cogythea

+0

你必须复制原语。 – Zhafur

相关问题