Web纹路
if(this.r[i] > 60){
this.alive[i] = false;
break;
}
慕尼黑7258959
if(this.alive[i] > 50){
this.alive[i] = 50;
break;
}把this.alive[i] = 50;改为this.alive[i] = false;
慕丝1033313
ctx1.linWidth=2;//拼写错误lineWidth
this.r[i]+=deltatime+0.05;//半径逐渐变大
//你写的是deltatime+0.05,应该是deltatime*0.05才减小半径增长速度吧。
//细心啊,少年!
吾辈是猫
context.lineWidth = 30; 设置了线条宽度
或
context.shadowBlur = 20; //设置了阴影
qq_世界因你颤抖_0
圈圈没有出现可以从大体三个方面去排查错误,第一个是没有执行stroke()绘制命令,第二个在大鱼和果实做碰撞检测那里没有传好参数,也就是没有获取到果实与大鱼碰撞的位置,从而导致白色圈没有出现在屏幕以内的可视范围。第三个,这个也是最有可能出现的,就是在判断born中白色圈alive状态的时候,把if中的条件改成“if(this.alive[i]==false)”
再者,整个游戏由代码组成,如若不是代码出现问题,游戏是可以正确执行的。
qq_筱萤火虫_0
碰撞果实的时候,才产生白色圈。白色圈的x,y是否是写的果实的?应该如此。
苍白的尾巴
还有第39行,alive后面少写了 [i] ,
把我说的这几处都改一下就可以了、、、
hk凯
if(fruit.fruitType[i]=="blue")
{
deta.double=2;//若果实是蓝色,则标记,分数双倍
wave.born(fruit.x[i],fruit.y[i],1); }
else
{
deta.double=1;
wave.born(fruit.x[i],fruit.y[i],2);
}
在碰撞判断的时候在原本有颜色判断的地方出生圈圈,然后给圆圈的born函数多加一个参数,并赋给圆圈新加的参数,在draw中判断这个参数,进行不同的绘制
waveObj.prototype.born=function(x,y,n)
{
for(var i=0;i<this.num;i++)
{
if(!this.alive[i])//这个空闲
{
this.alive[i]=true;
this.r[i]=10;
this.x[i]=x;
this.y[i]=y;
this.color[i]=n;//颜色标记
return;//找到一个就跳出,一次出生一个
}
}
}
draw函数中添加的判断
if(this.alive[i])//&&this.color[i]==1)
代小代
if (this.r[i] > 60) {
this.alive[i] = false;
continue;
}
continue;改成break;
BarsyHorm
我也有过这个问题,就是一开始只能出西现一个圈,一旦同时将出现两个圈,就不会有圈出现了
后来发现ctx1.arc(this.x[i],this.y[i],this.r[i],0,Math.PI*2);这行我写成了
ctx1.arc(this.x,this.y,this.r[i],0,Math.PI*2);
你看看自己有没有吧每个this.x,this.y后面加上[i]
陈先生往事
不是 好像canvas已经不支持RGBA 了 我用了另外一个API成功解决了 ctx1.globalAlpha=alpha 在W3C 手册里面有