如何在paper.js中沿贝塞尔曲线弯曲的路径设置对象的动画?

drdn5

我正在尝试使用paper.js构建一个小型老虎机赛车游戏,但是我无法将汽车对象沿着我创建的轨道移动。

我已经搜索了其他线程,但是没有找到贝塞尔曲线的音轨的解释。我已经画了一条赛道和一辆车。尽管我实现了onFrame函数,应该将汽车的位置改变了,但汽车仍位于轨道上,但并未移动。

我猜racingtrack.getPointAt(i*length)底部的onFrame函数有问题,但是我不知道是什么。该代码对我来说很有意义,并且上面的代码racingtrack.getPointAt(offset)正在运行。

有人可以帮我吗?非常感谢!

这是我的代码:

//DRAW A RACING TRACK
var racingtrack = new Path();

racingtrack.strokeColor='#DA0734';
racingtrack.strokeWidth=4;

var handleInTop = new Point(-90, 0);
var handleOutTop = new Point(90, 0);
var handleInSide = new Point(0, -90);
var handleOutSide = new Point(0, 90);

Segment1 = new Segment(new Point(230, 100), handleOutTop, handleInTop);
Segment2 = new Segment(new Point(100, 275), handleInSide, handleOutSide);
Segment3 = new Segment(new Point(230, 450), handleInTop, handleOutTop);
Segment4 = new Segment(new Point(435, 450), handleInTop, handleOutTop);
Segment5 = new Segment(new Point(765, 100), handleInTop, handleOutTop);
Segment6 = new Segment(new Point(970, 100), handleInTop, handleOutTop);
Segment7 = new Segment(new Point(1100, 275), handleInSide, handleOutSide);
Segment8 = new Segment(new Point(970, 450), handleOutTop, handleInTop);
Segment9 = new Segment(new Point(765, 450), handleOutTop, handleInTop);
Segment10 = new Segment(new Point(435, 100), handleOutTop, handleInTop);

racingtrack.add(Segment1, Segment2, Segment3, Segment4, Segment5, Segment6, Segment7, Segment8, Segment9, Segment10);
racingtrack.closed=true;

racingtrack.fullySelected=false;
racingtrack.position = view.center;

//DRAW A RACING CAR
var racingcar = new Path();

racingcar.fillColor = '#DA0734';

var handleInRightCar = new Point(0, 13)
var handleOutRightCar = new Point(0, -13)

FirstCorner = new Point(100, 470);
SecondCorner = new Point(100, 496);
ThirdCorner = new Point(140, 496);
FourthCorner = new Segment(new Point(145, 483), handleInRightCar, handleOutRightCar);
FifthCorner = new Point(140, 470);

racingcar.add(FirstCorner, SecondCorner, ThirdCorner, FourthCorner, FifthCorner);
racingcar.closed = true;


//PUT RACINGCAR ON STARTING POINT
var offset = 0;
var startposition = racingtrack.getPointAt(offset);

racingcar.position = startposition;


//MOVE CAR ALONGSIDE RACINGTRACK
//set the number of parts the track is divided into
var amount = 100;
//calculate the length of one part
var length = racingtrack.length / amount;

//animate the car, moving from position to position alongside the racingtrack
var carposition = new Point();

function onFrame(event){
    for(var i=0; i < amount+1; i++){
        carposition = racingtrack.getPointAt(i * length);
        racingcar.position = carposition;
    }
}
品牌

请记住,onFrame尝试每秒执行60次。

这意味着您要移动100个位置X 60fps ==每秒6000次绘制==绘制太多

此代码大约每1 1/2秒将您的汽车送出赛道。

var currentPosition=0;

function onFrame(event){

    carposition = racingtrack.getPointAt(currentPosition * length);

    racingcar.position = carposition;

    if(++currentPosition>100){currentPosition=0;}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在paper.js中沿贝塞尔曲线弯曲的路径设置对象的动画?

来自分类Dev

如何使用AS3设置贝塞尔曲线的动画?

来自分类Dev

如何使用Paper.js连接具有贝塞尔曲线的对象

来自分类Dev

如何在Android中绘制贝塞尔曲线

来自分类Dev

如何在贝塞尔曲线中添加渐变?

来自分类Dev

如何在UIView中绘制贝塞尔曲线

来自分类Dev

如何设置贝塞尔曲线的控制点以折线?

来自分类Dev

如何使贝塞尔曲线中的线接点平滑?

来自分类Dev

如何在圆形贝塞尔曲线路径内绘制图像

来自分类Dev

在html5画布中绘制动画的贝塞尔曲线时如何保持平滑的线条

来自分类Dev

如何计算沿其移动的1/4圆弧(贝塞尔曲线)?

来自分类Dev

如何生成“厚”贝塞尔曲线?

来自分类Dev

如何使精灵遵循贝塞尔曲线

来自分类Dev

如何从图像模拟贝塞尔曲线?

来自分类Dev

如何在cytoscape.js中使用贝塞尔曲线

来自分类Dev

如何将视图/图层的移动路径约束为贝塞尔曲线路径?

来自分类Dev

如何在QML中渲染三次贝塞尔曲线?

来自分类Dev

如何在KineticJS中补间Shape或Group alogn贝塞尔曲线?

来自分类Dev

D3js-Topojson:如何从像素化曲线移动到贝塞尔曲线?

来自分类Dev

如何快速使用贝塞尔曲线路径创建大小不同的图饼?

来自分类Dev

如何使用十进制值的坐标获取贝塞尔曲线的路径

来自分类Dev

如何编码n阶贝塞尔曲线

来自分类Dev

如何平滑三次贝塞尔曲线过渡

来自分类Dev

如何找到贝塞尔曲线的控制点

来自分类Dev

贝塞尔曲线与指定椭圆相交时如何检测?

来自分类Dev

如何启发式制作平行贝塞尔曲线

来自分类Dev

如何找到贝塞尔曲线的控制点

来自分类Dev

如何绘制贝塞尔曲线 C#

来自分类Dev

通过示例了解如何绘制 SVG 贝塞尔曲线

Related 相关文章

  1. 1

    如何在paper.js中沿贝塞尔曲线弯曲的路径设置对象的动画?

  2. 2

    如何使用AS3设置贝塞尔曲线的动画?

  3. 3

    如何使用Paper.js连接具有贝塞尔曲线的对象

  4. 4

    如何在Android中绘制贝塞尔曲线

  5. 5

    如何在贝塞尔曲线中添加渐变?

  6. 6

    如何在UIView中绘制贝塞尔曲线

  7. 7

    如何设置贝塞尔曲线的控制点以折线?

  8. 8

    如何使贝塞尔曲线中的线接点平滑?

  9. 9

    如何在圆形贝塞尔曲线路径内绘制图像

  10. 10

    在html5画布中绘制动画的贝塞尔曲线时如何保持平滑的线条

  11. 11

    如何计算沿其移动的1/4圆弧(贝塞尔曲线)?

  12. 12

    如何生成“厚”贝塞尔曲线?

  13. 13

    如何使精灵遵循贝塞尔曲线

  14. 14

    如何从图像模拟贝塞尔曲线?

  15. 15

    如何在cytoscape.js中使用贝塞尔曲线

  16. 16

    如何将视图/图层的移动路径约束为贝塞尔曲线路径?

  17. 17

    如何在QML中渲染三次贝塞尔曲线?

  18. 18

    如何在KineticJS中补间Shape或Group alogn贝塞尔曲线?

  19. 19

    D3js-Topojson:如何从像素化曲线移动到贝塞尔曲线?

  20. 20

    如何快速使用贝塞尔曲线路径创建大小不同的图饼?

  21. 21

    如何使用十进制值的坐标获取贝塞尔曲线的路径

  22. 22

    如何编码n阶贝塞尔曲线

  23. 23

    如何平滑三次贝塞尔曲线过渡

  24. 24

    如何找到贝塞尔曲线的控制点

  25. 25

    贝塞尔曲线与指定椭圆相交时如何检测?

  26. 26

    如何启发式制作平行贝塞尔曲线

  27. 27

    如何找到贝塞尔曲线的控制点

  28. 28

    如何绘制贝塞尔曲线 C#

  29. 29

    通过示例了解如何绘制 SVG 贝塞尔曲线

热门标签

归档