XNA - 在GameScreens之间传递信息

时间:2009-09-23 02:58:04

标签: c# xna event-handling

所以,这就是我要做的事情:

我正在使用creators.xna.com的GameStateManagement示例制作游戏。

整个系统在这里解释得太多了,所以对样本的经验是必要的。

它的要点是有多个游戏屏幕相互叠加。一个包含一块板,上面覆盖了一些卡片图像。最终目标是能够将卡片图像拖放到桌面上(或点击它,方法不是真正的问题)。

实际问题是,我如何将数据从一个屏幕(叠加的卡片)传递到另一个屏幕(表格)。

我认为有可能创建一个事件,当我拖放一张卡片或点击它或者你有什么东西时会被触发,然后在另一个屏幕上注册一个事件处理程序来处理它。

但是,我对C#中的自定义事件几乎没有任何经验。我不确定所有被解雇的事件是否会进入某个地方的大型“事件池”,处理程序可以将它们捡起来,无论它们在哪里或如何工作。我问,因为表格屏幕和覆盖屏幕是单独的类,它们都处理绘图和更新,而不是相互发送信息。

希望这是足以正确概述问题的信息。欢迎任何提示/建议。

谢谢!

1 个答案:

答案 0 :(得分:2)

经过一些更多的实验,看起来事件就好了。

在不知道事件如何工作的细节的情况下,只要您注册接收事件,就可以从几乎任何地方获取被激活的事件。

所以,我的问题的解决方案是在我的“手动屏幕”中创建一个“OnDrag”事件。然后注册以在“表格屏幕”中处理此事件。

这个资源帮助我开始了基本的自定义事件处理:Writing C# Custom Events