请教下,为什么海葵和果实的摆动幅度不一致啊

来源:3-7 水澡长在海葵上面

qazzxc3549823

2016-06-28 20:57

var aneObj = function()

{

this.rootx = [];

this.headx = [];

this.heady = [];

this.amp = [];

this.alpha = 0;

}

aneObj.prototype.num = 50;

aneObj.prototype.init = function()

{

for (var i = 0; i < this.num; i++)

{

this.rootx[i] = i*16+Math.random() * 20;

this.headx[i] = this.rootx[i];

this.heady[i] = canHeight - 250+Math.random()*50;

this.amp[i] = Math.random() * 50 + 10;

}

}

aneObj.prototype.draw = function()

{

this.alpha += deltaTime * 0.0008;

var l = Math.sin(this.alpha);

ctx2.save();

ctx2.globalAlpha=0.6;

ctx2.lineWidth = 20;

ctx2.lineCap = "round"

ctx2.strokeStyle = "#3b154e";

for(var i=0;i<this.num;i++)

{

ctx2.beginPath();

ctx2.moveTo(this.rootx[i],canHeight);

this.headx[i] = this.rootx[i] + l * this.amp[i];

ctx2.quadraticCurveTo(this.rootx[i],canHeight - 120,this.headx[i] + l * this.amp[i],this.heady[i]);

ctx2.stroke();

}

ctx2.restore();

}

var fruitObj = function()

{

this.alive = [];

this.x=[];

this.y=[];

this.aneNO = [];

this.l=[];

this.spd=[];

this.fruitType=[];

this.orange = new Image();

this.blue = new Image();

}

fruitObj.prototype.num = 30;

fruitObj.prototype.init = function()

{

for (var i = 0; i < this.num; i++)

{

this.alive[i] = false;

this.x[i] = 0;

this.y[i] = 0;

this.aneNO[i] = 0;

this.spd[i] = Math.random() * 0.017+0.003;

this.fruitType[i]="";

}

this.orange.src = "./src/fruit.png";

this.blue.src = "./src/blue.png";

}

fruitObj.prototype.draw = function()

{

for (var i = 0; i < this.num; i++)

{

if(this.alive[i])

{

if(this.fruitType[i] == "blue")

{

var pic = this.blue;

}

else

{

var pic = this.orange;

}

if(this.l[i] <=14)

{

var NO = this.aneNO[i];

this.x[i] = ane.headx[NO];

this.y[i] = ane.heady[NO];

this.l[i] += this.spd[i] * deltaTime;

}

else

{

this.y[i] -= this.spd[i] * 7 * deltaTime;

}

ctx2.drawImage(pic, this.x[i]-this.l[i] * 0.5,this.y[i]-this.l[i] * 0.5,this.l[i],this.l[i]);

if(this.y[i] < 10)

{

this.alive[i] = false;

}

}

}

}

fruitObj.prototype.born = function(i)

{

this.aneNO[i] = Math.floor(Math.random() * ane.num);

this.l[i] = 0;

this.alive[i] = true;

var ran = Math.random();

if(ran<0.2)

{

this.fruitType[i] = "blue";

}

else

{

this.fruitType[i] = "orange";

}

}

fruitObj.prototype.dead=function(i)

{

this.alive[i]=false;

}

function fruitMonitor()

{

var num = 0;

for(var i=0;i<fruit.num;i++)

{

if(fruit.alive[i]) num++;

}

if(num<15)

{

sendFruit();

return;

}

}

function sendFruit()

{

for(var i=0;i<fruit.num;i++)

{

if(!fruit.alive[i])

{

fruit.born(i);

return;

}

}

}


写回答 关注

1回答

  • 薄荷味的白衬衫
    2016-06-29 17:02:53

    beginPath();

    ctx2.moveTo(this.rootx[i],canHeight);

    this.headx[i] = this.rootx[i] + l * this.amp[i];

    ctx2.quadraticCurveTo(this.rootx[i],canHeight - 120,this.headx[i],this.heady[i]);


    薄荷味的白衬...

    你的贝塞尔函数内的 X坐标不对 你自己检查一下看看

    2016-06-29 17:04:37

    共 1 条回复 >

HTML5小游戏---爱心鱼(下)

通过一个清新美好的小游戏教程,熟悉游戏开发流程

46272 学习 · 189 问题

查看课程

相似问题