我在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作业的左侧必须是变量, 财产或指数
答案 0 :(得分:1)
你的问题是因为:
float t = (float)time.TotalGameTime.TotalSeconds = InitialTime;
赋值操作的两端都需要有有效的语法。如果您要隔离第二个任务,它将如下所示:
(float)time.TotalGameTime.TotalSeconds = InitialTime;
这不仅是无效的语法,而且也没什么意义。
我认为你进行演员表的原因是因为TotalSeconds
和InitialTime
是双打的,你需要将它们转换为浮点数。有两种方法可以实现这一目标。
您可以将作业分成两行:
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);
(请注意,如果TotalSeconds
和InitialTime
是双打,则需要使用括号将操作转换为浮动,就像我所做的那样。)