Microsoft.Xna.Framework的gameTime无法在C#中工作

时间:2013-07-26 00:43:35

标签: c# xna

我在XP上使用C#2010 .net 4.0。

我在使用gameTime时遇到错误,如下所示:当前上下文中不存在“gameTime”这个名称

我已下载(xnafx40_redist.msi)并从参考中添加了Microsoft.Xna.Framework并将其用于我的代码:

    using System;
    using System.Windows.Forms;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;

    namespace WindowsFormsApplication1
    {

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {

                int counter = 1;
                int limit = 50;
                float countDuration = 2f; 
                float currentTime = 0f;

                //Error on gameTime
                currentTime += (float)gameTime.ElapsedGameTime.TotalSeconds; 

                if (currentTime >= countDuration)
                {
                    counter++;
                    currentTime -= countDuration; 
                }
                if (counter >= limit)
                {
                    counter = 0;
                }
            }
        }
    }

我也尝试将GameTime声明为变量,但它也超出了范围。 是否与我复制的XNA框架有关?还是XP?还是.net版本?代码是否需要对象或其他东西?我是XNA解决方案的新手。


其他信息:当我宣布使用其他代码的Microsoft.Xna.Framework.Game时,似乎是“游戏”也无效。它说的是“游戏”的类型或命名空间不存在。

2 个答案:

答案 0 :(得分:1)

您可能习惯于访问传递给XNA's Game.Update() methodgameTime参数。您似乎不在该方法中。也许您可以在每次游戏更新期间缓存一些时间信息,然后在按钮回调中引用缓存的信息?

如果你完全不确定我在说什么,请找一个示例项目并稍微梳理一下。

另外,您可能希望使用教程将Windows窗体与XNA结合使用。从我收集的内容来看,这是可能的,但不一定是直截了当的。

答案 1 :(得分:1)

我不确定你要从哪里检索你的gameTime变量?

如果您尝试从[Microsoft.Xna.Framework.Game] [1]实例中检索它?或者您是否有一个特殊的控件添加到您的表单中,其中包含Game对象?

我不确定我是否能够提供帮助,但这些资源可能会有所帮助: