C# 如何以不同的速度以随机间隔移动对象500像素?
我正在尝试编写一段代码,允许对象随机“冲刺”500像素。我已经记下了随机时间,这是我遇到问题的具体距离 这是一个任务,我应该研究如何做,但我没有找到任何运气。我尝试过创建一个增量变量,但计算速度不够快,我确信它与对象移动的方程有关:xPosition+=xSpeed*xDirection;。我就是搞不懂。该代码还显示了一些其他功能,比如在覆盖500像素后将速度降低到以前的速度 另一个问题是,我正在处理的网格有正数和负数,所以我不确定,但我是否也需要考虑这一点C# 如何以不同的速度以随机间隔移动对象500像素?,c#,object,C#,Object,我正在尝试编写一段代码,允许对象随机“冲刺”500像素。我已经记下了随机时间,这是我遇到问题的具体距离 这是一个任务,我应该研究如何做,但我没有找到任何运气。我尝试过创建一个增量变量,但计算速度不够快,我确信它与对象移动的方程有关:xPosition+=xSpeed*xDirection;。我就是搞不懂。该代码还显示了一些其他功能,比如在覆盖500像素后将速度降低到以前的速度 另一个问题是,我正在处理的网格有正数和负数,所以我不确定,但我是否也需要考虑这一点 if (xSpeed
if (xSpeed >= 10)
{
if (xPosition < 0)
{
distance = distance + 1;
}
if (xPosition > 0)
{
distance = distance + 1;
}
}
if (collisionNum == ranCollision - 1)
{
dashPosStart = xPosition;
}
// Method for stopping dash
if (distance >= 500)
{
while (xSpeed > startSpeed)
{
xSpeed--;
}
ySpeed = xSpeed / 2;
}
if (distance == 500)
{
dashPosFin = xPosition;
}
xPosition += xSpeed * xDirection; // Horizontal movement
yPosition += ySpeed * yDirection; // Vertical movement
如果(xSpeed>=10)
{
if(xPosition<0)
{
距离=距离+1;
}
如果(X位置>0)
{
距离=距离+1;
}
}
如果(collisionNum==ranCollision-1)
{
dashPosStart=xPosition;
}
//停止短跑的方法
如果(距离>=500)
{
while(xSpeed>startSpeed)
{
X速度--;
}
y速度=x速度/2;
}
如果(距离==500)
{
dashPosFin=xPosition;
}
xPosition+=xSpeed*xDirection;//水平运动
Y位置+=Y速度*Y方向;//垂直运动
距离应该是每一个像素计数,但它的计数速度似乎要慢得多,并且慢于每秒60次(程序运行的速度)。这件事我已经想了好几天了,就是想不通。任何帮助/建议都会很好!谢谢。你总是把距离增加一倍;因此,破折号始终需要500帧才能完成,而不是500像素的距离
最短的修复方法是在每一帧中以破折号速度增加距离(确保适当地处理负值)。您应该以每秒像素(或单位)为单位工作。当您更新屏幕并检查当前和上一次更新之间的增量时间时。(使用秒表)将其与所需速度相乘。(这将处理更新/秒的波动)在一个方向上移动的像素量取决于速度,如果你说移动200px/秒(假设你有60hz显示器),那么你每帧移动3.33像素谢谢!我只知道这将是一个简单的解决方案,我试图过度思考。它工作得很好。