我目前正在使用CompositionTarget.Rendering为我的图形,我的弹丸模拟,但我不知道如何让我的加速度变化。它是否有可能喜欢它的一个变量,并被绑定到它,因为它的变化,所以加速度?
谢谢你的帮助。
到目前为止我的代码是:
private Point position; // in pixels
private Vector Velocity; // in pixels per second
private Vector acceleration; // in pixels per square second
Velocity = new Vector(HVelTemp, VVelTemp); // y direction is downwards
acceleration = new Vector(0, -1 * newEnvironment.gravity * PixelPerMeter); // y direction is downwards
private void OnLoaded(object sender, RoutedEventArgs e)
{
position = new Point(5, (HighestPoint * PixelPerMeter)); // fix later pls
int removedtime = 0;
time = DateTime.Now;
RenderingEvent = (s, g) => OnRendering(s, g, removedtime, time);
CompositionTarget.Rendering += RenderingEvent;
}
private void OnRendering(object sender, EventArgs g, int removedtime, DateTime t)
{
var now = DateTime.Now.AddSeconds(-removedtime);
var dt = (now - t).TotalSeconds;
time = now;
position += Velocity * dt;
Velocity += acceleration * dt;
projectileGeometry.Center = position;
}发布于 2015-02-15 10:13:13
您可以将Acceleration声明为依赖项属性。因此,它是可绑定的。下面的声明假设您的代码属于MainWindow类。
public static readonly DependencyProperty AccelerationProperty =
DependencyProperty.Register(
"Acceleration", typeof(Vector), typeof(MainWindow));
public Vector Acceleration
{
get { return (Vector)GetValue(AccelerationProperty); }
set { SetValue(AccelerationProperty, value); }
}
...
Velocity += Acceleration * dt;https://stackoverflow.com/questions/28524970
复制相似问题