0

我在 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 时,似乎“游戏”也不起作用。这是说类型或命名空间“游戏”不存在。

4

2 回答 2

1

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

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

顺便说一句,您可能希望使用一个教程来结合 Windows 窗体和 XNA。据我所知,这是可能的,但不一定是直截了当的。

于 2013-07-26T00:53:27.057 回答
1

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

如果您尝试从 [Microsoft.Xna.Framework.Game][1] 实例中检索它?或者您有添加到包含 Game 对象的 Form 的特殊控件吗?

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

于 2013-07-26T01:17:22.357 回答