为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

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]);


0 回复 有任何疑惑可以回复我~
#1

薄荷味的白衬衫

你的贝塞尔函数内的 X坐标不对 你自己检查一下看看
2016-06-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信