我的主循环:按引用传递一个TouchCollection
...
// Variables declaration
TouchCollection touch_;
...
private void InitializeAll()
{
...
player = new Player(touch_);
...
}
protected override void Update(GameTime gametime)
{
touch_ = TouchPanel.GetState();
player_.Update(gametime);
...
}
我想打电话给TouchPanel.GetState();
只是一个时间每次更新,所以我没有把它也在玩家的更新循环,并在所有其他对象的更新需要了解触摸状态的循环。所以我将touch_
传入玩家的构造函数,但我不工作:玩家没有看到touch_
变量的任何更新。
据我所知,这是一个与每次分配touch_
的事实有关的问题。
我该如何解决这个问题?
“touch_”的数据类型是什么?如果它是一个结构体,我可以理解它为什么不起作用。 (是的,它[是一个结构](http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.touch.touchcollection.aspx)) – gunr2171
@ gunr2171那么我该如何解决问题? –
先生Skeet发布了一个很好的答案[通过c#结构参考?](http://stackoverflow.com/a/16614732/2596334),你可能会发现有帮助。 –