我在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时,似乎是“游戏”也无效。它说的是“游戏”的类型或命名空间不存在。
答案 0 :(得分:1)
您可能习惯于访问传递给XNA's Game.Update()
method的gameTime
参数。您似乎不在该方法中。也许您可以在每次游戏更新期间缓存一些时间信息,然后在按钮回调中引用缓存的信息?
如果你完全不确定我在说什么,请找一个示例项目并稍微梳理一下。
另外,您可能希望使用教程将Windows窗体与XNA结合使用。从我收集的内容来看,这是可能的,但不一定是直截了当的。
答案 1 :(得分:1)
我不确定你要从哪里检索你的gameTime变量?
如果您尝试从[Microsoft.Xna.Framework.Game] [1]实例中检索它?或者您是否有一个特殊的控件添加到您的表单中,其中包含Game对象?
我不确定我是否能够提供帮助,但这些资源可能会有所帮助: