使对象移动C#

时间:2016-10-03 20:52:43

标签: c# physics monogame

我在c#中制作游戏,并且我试图让我的纹理移动。我需要一些帮助和建议来使纹理移动。这是我到目前为止所使用的。

public float InitialTime { get; set; }

public Vector2 InitialPosition { get; set; }

public Vector2 InitialVelocity { get; set; }

public Vector2 Position(GameTime time)
{
    float t = (float)time.TotalGameTime.TotalSeconds = InitialTime;
    return InitialPosition + t * InitialVelocity;
}

float t'行,它出现以下错误,

  

错误CS0131作业的左侧必须是变量,   财产或指数

1 个答案:

答案 0 :(得分:1)

你的问题是因为:

float t = (float)time.TotalGameTime.TotalSeconds = InitialTime;

赋值操作的两端都需要有有效的语法。如果您要隔离第二个任务,它将如下所示:

(float)time.TotalGameTime.TotalSeconds = InitialTime;

这不仅是无效的语法,而且也没什么意义。

我认为你进行演员表的原因是因为TotalSecondsInitialTime是双打的,你需要将它们转换为浮点数。有两种方法可以实现这一目标。

您可以将作业分成两行:

time.TotalGameTime.TotalSeconds = InitialTime;
float t = (float)time.TotalGameTime.TotalSeconds;

或者,如果您坚持在一行上执行此操作,请使用括号对您的操作进行分组:

float t = (float)(time.TotalGameTime.TotalSeconds = InitialTime);

编辑:

然后,我一直认为双重任务是故意的。您可能要做的是从InitialTime中减去TotalTime以获取当前时间戳。在这种情况下,它只是一个错误的简单修复:

float t = (float)(time.TotalGameTime.TotalSeconds - InitialTime);

(请注意,如果TotalSecondsInitialTime是双打,则需要使用括号将操作转换为浮动,就像我所做的那样。)