使对象移动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赋值操作的左边必须是一个变量,属性或索引

使对象移动c#

你的问题是因为这个:

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

赋值操作的两边都需要有有效的语法。如果您要分离第二个赋值,它看起来像这样:

(float)time.TotalGameTime.TotalSeconds = InitialTime;

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

我想,你做cast的原因是因为TotalSecondsInitialTime是双精度,你需要将它们转换为浮点数。有两种方法可以做到这一点。

您可以将赋值分隔为两行:

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);

(注意,如果TotalSecondsInitialTime是双精度,您需要使用括号将操作转换为浮点数,就像我所做的那样)