2013-07-22 51 views
1

這顯然是一個noob問題,但在XNA是...設置Vector2在XNA

Vector2 a; 
Vector2 b; 

a = b; 
在任何情況下一樣

a.X = b.X; 
a.Y = b.Y; 

+1

答案是...是的。如果你初始化'b',否則它甚至不會編譯。 –

+0

哦,對不起,我的意思是:我可以通過調用a = b來設置Vector2的兩個組件嗎?或者是在a = b之後設置爲相同的地址,那麼這意味着如果我改變了a,我也改變了b?這不是類的情況嗎? –

+0

所以基本上,問題不在於如何初始化矢量;-) –

回答

3

Vector2是一個struct(這是一個值類型)。

所以,如果你做a = b

這意味着它將b的內存複製到a。它等效於:

a.X = b.X; 
a.Y = b.Y; 

所以,如果你這樣做:

b = new Vector2(1, 2); 
a = b; 
b.X = 5; 
Console.WriteLine("a.X = {0}, a.Y = {1}", a); 
Console.WriteLine("b.X = {0}, b.Y = {1}", b); 

結果是:

a.X = 1, a.Y = 2 
b.X = 5, b.Y = 2