C# 使物体以恒定速度运动
我正在使用计时器设置对象的动画,使其以恒定速度移动 这是我的密码:C# 使物体以恒定速度运动,c#,timer,C#,Timer,我正在使用计时器设置对象的动画,使其以恒定速度移动 这是我的密码: Class class1 = new Class(); public int x; public int y; public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e
Class class1 = new Class();
public int x;
public int y;
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
class1.Draw(g);
}
private void timer1_Tick(object sender, EventArgs e)
{
x += 1;
class1.Move(x/2, x/2);
Invalidate();
}
类别:
class Class
{
private int x;
private int y;
public void Draw(Graphics g)
{
SolidBrush Brush = new SolidBrush(Color.White);
g.FillRectangle(Brush, x, y, 10, 10);
}
public void Move(int X, int Y)
{
x = x + X/3;
y = y + Y/3;
}
}
正方形在加速,有没有办法让它以恒定的速度移动?你每次都在增加“x”,然后将其用作移动的增量。点评:
// x += 1;
class1.Move(x/2, x/2);
您还需要为此指定一个默认的“x”。您每次都要递增“x”,然后将其用作移动的增量。点评:
// x += 1;
class1.Move(x/2, x/2);
您还需要为此指定一个默认的“x”。选择一些更好的名称,问题就会变得更清楚
x
是一个位置,dx
是一个速度<代码>移动(x/2,x/2)看起来确实在远离原点加速。这是Windows窗体应用程序吗?选择一些更好的名称,问题就会变得更清楚x
是一个位置,dx
是一个速度<代码>移动(x/2,x/2)代码>看起来像是从原点加速。这是Windows窗体应用程序吗?如果我错了,请纠正我,但使用此代码,正方形不会保持静止吗?@user2432378如果在开始时将x设置为非零值,则不会。“移动”方法递增:x=x+x/3代码>谢谢!如果我错了,请纠正我的错误,但是使用此代码,正方形不就是静止的吗?@user2432378如果在开始时将x设置为非零值,则不会。“移动”方法递增:x=x+x/3代码>谢谢!非常感激