使对象移动c#
本文关键字:移动 对象 | 更新日期: 2023-09-27 18:11:25
我正在用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赋值操作的左边必须是一个变量,属性或索引
你的问题是因为这个:
float t = (float)time.TotalGameTime.TotalSeconds = InitialTime;
赋值操作的两边都需要有有效的语法。如果您要分离第二个赋值,它看起来像这样:
(float)time.TotalGameTime.TotalSeconds = InitialTime;
这不仅是无效的语法,而且没有什么意义。
我想,你做cast的原因是因为TotalSeconds
和InitialTime
是双精度,你需要将它们转换为浮点数。有两种方法可以做到这一点。
您可以将赋值分隔为两行:
time.TotalGameTime.TotalSeconds = InitialTime;
float t = (float)time.TotalGameTime.TotalSeconds;
或者,如果您坚持在单行中执行此操作,请使用括号将操作分组:
float t = (float)(time.TotalGameTime.TotalSeconds = InitialTime);
编辑:然而,我一直假设双赋值是有意的。您可能想要做的是从TotalTime
中减去InitialTime
以获得当前时间戳。在这种情况下,它只是一个简单的拼写错误修复:
float t = (float)(time.TotalGameTime.TotalSeconds - InitialTime);
(注意,如果TotalSeconds
和InitialTime
是双精度,您需要使用括号将操作转换为浮点数,就像我所做的那样)