C# 按代码绘制曲线如何使用此代码?

C# 按代码绘制曲线如何使用此代码?,c#,.net,actionscript-3,math,curve,C#,.net,Actionscript 3,Math,Curve,我试图使球的运动曲线化。此代码将直线移动对象并旋转对象,但它不会以曲线运动方式移动 if (this.ballstart.hitTestObject(this.back)) { trace("Hit back"); trace("ballstart rotation: " + this.ballstart.rotation); removeEventListener(Event.ENTER_FRAME, update); addEventListener(Even

我试图使球的运动曲线化。此代码将直线移动对象并旋转对象,但它不会以曲线运动方式移动

if (this.ballstart.hitTestObject(this.back)) {
    trace("Hit back");
    trace("ballstart rotation: " + this.ballstart.rotation);
    removeEventListener(Event.ENTER_FRAME, update);
    addEventListener(Event.ENTER_FRAME, BowlingScoreClass);

} else {
    trace("move to back");
    this.ballstart
    this.ballstart.rotation -= -30;

    //trace("this ballstart rotation: " + this.ballstart.rotation);

    this.ballstart.y = this.ballstart.y - speed;
    speed = 15;
    /*speed = speed + 0.01;*/

    if (this.ballstart.y < -height) {
        x = Math.sin(this.ballstart.rotation * (Math.PI / 180)) * speed;
        y = Math.cos(this.ballstart.rotation * (Math.PI / 180)) * speed * -1;
        this.ballstart.x += x;
        this.ballstart.y += y;
    }
}

问题是y轴速度始终是一个常数(+/-4),因此它将始终创建一条与曲线相反的直线

引入重力变量(g),该变量将改变每帧的y轴速度,然后计算新y位置的位置


yVelocity-=g;

sprite.y+=yVelocity

如果下面的答案有效,则使用
图标
if (sprite.y > 500) {
    trace(height);
    sprite.y -= 4;
    sprite.x += 4;
} else if (sprite.y > 400) {
    trace(height);
    sprite.y -= 4
    sprite.x += 2

} else if(sprite.y > this.height) {
    sprite.y -= 4
    sprite.x -= 2

}