试图在javascript画布上制作动画

时间:2015-11-02 22:19:58

标签: javascript animation canvas vector setinterval

正如标题所说我试图在java画布上制作动画,但我不知道如何添加到我的对象的矢量类当前位置 我被告知要使用它:

Bus.prototype.update = function()
{
    this.getPosition().add(new Vector(10.0));
}

但它无法识别.add函数,并在使用setInterval函数时出现错误

我将包括我的get / set函数以及incase

Bus.prototype.getPosition = function()  {       
    return this.mPosition;
};
Bus.prototype.setPosition = function (pPosition)    {
    this.mPosition = pPosition;
};

我对编码非常陌生,所以如果这是非常模糊或写得不好我会道歉

1 个答案:

答案 0 :(得分:0)

jsFiddle:https://jsfiddle.net/CanvasCode/41z9o10p/1/

的javascript

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");

var Bear = function(xSet, ySet)
{
    this.XPos = xSet;
    this.YPos = ySet;
}

Bear.prototype.updatePosition = function(xValue, yValue)
{
    this.XPos += xValue;
    this.YPos += yValue;
}

var bear = new Bear(0,0);

setInterval( function()
            {
    ctx.fillStyle = "#000";
    ctx.fillRect(0,0,c.width,c.height);
    ctx.fillStyle = "#0F0";
    ctx.fillRect(bear.XPos, bear.YPos, 50,50);

    bear.updatePosition(0.2, 0.4);
} ,1);

熊是一个自定义的“类”。所有熊都有一个X位置和一个Y位置,构造函数可以接受两个值来设置X和Y值。然后,我向Bear添加一个名为updatePosition的新方法。所有updatePosition都会接受两个值并将它们添加到原始X位置和Y位置(您也可以提供负数以相反的方式移动)。现在有了我们的熊,我们可以创建一个,然后使用它的updatePosition函数并移动它。