首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >compositionTarget.rendering:变化变量

compositionTarget.rendering:变化变量
EN

Stack Overflow用户
提问于 2015-02-15 10:01:54
回答 1查看 72关注 0票数 0

我目前正在使用CompositionTarget.Rendering为我的图形,我的弹丸模拟,但我不知道如何让我的加速度变化。它是否有可能喜欢它的一个变量,并被绑定到它,因为它的变化,所以加速度?

谢谢你的帮助。

到目前为止我的代码是:

代码语言:javascript
复制
    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;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-15 10:13:13

您可以将Acceleration声明为依赖项属性。因此,它是可绑定的。下面的声明假设您的代码属于MainWindow类。

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28524970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档