最赞回答 / SummerWang3150009
问题出在draw函数里面 把for(var i=0;i<piece.length;i++)改成for(var i=1;i<piece.p.length;i++) 就可以了 你要清楚这个循环循环的是 tangram数组里key值p的value
2016-09-01
var g_temp = balls[i].g;
if(balls[i].vy>=-2&&balls[i].vy<=2){
g_temp = 0;
balls[i].vy=0;
}
balls[i].vy+=g_temp;
if(balls[i].vy>=-2&&balls[i].vy<=2){
g_temp = 0;
balls[i].vy=0;
}
balls[i].vy+=g_temp;
2016-08-31
小球低幅度跳动的原因是g。所以更改vg的时候在一定条件下不是vy+=g,而是:var g_temp = balls[i].g;if (balls[i].y>=WINDOW_HEIGHT-RADIUS) {balls[i].y=WINDOW_HEIGHT-RADIUS; balls[i].vy = -balls[i].vy*0.65;if(balls[i].vy>=-2&&balls[i].vy<=2){ g_temp = 0;balls[i].vy=0; }}balls[i].vy+=g_temp;
}
}
2016-08-31
小球低幅度跳,判断一定速度内让它速度为0就好了
if (balls[i].y>=WINDOW_HEIGHT-RADIUS) {
balls[i].y=WINDOW_HEIGHT-RADIUS;
balls[i].vy = -balls[i].vy*0.75;
if(balls[i].vy>=-6&&balls[i].vy<=6){
balls[i].vy=0;
}
}
if (balls[i].y>=WINDOW_HEIGHT-RADIUS) {
balls[i].y=WINDOW_HEIGHT-RADIUS;
balls[i].vy = -balls[i].vy*0.75;
if(balls[i].vy>=-6&&balls[i].vy<=6){
balls[i].vy=0;
}
}
2016-08-31
for(var i = 0 ;i < tangram.length;i ++) 我的错误是 老师里面这段代码 点看不清楚我直接敲了 空格 其实有点 加上点 代码和老师一模一样 效果就出来了
2016-08-30
@qq_明夕何夕_0,因为老师代码里下面那个for循环写错了,for循环只到cxt.lineTo(piece.p[i].x,piece.p[i].y) }因为到这里结束
2016-08-27
已采纳回答 / 刘小骏
在使用 fill() 的时候不需要写 closePath() ,fill()的结果会自动让图形封闭,这点跟 closePath() 的效果一样,而不是代表 绘制结束,不用跟 beginPath()成对出现,他俩的用法跟名字中的 begin、close 代表的意思不一样,你可以看下 canvas 的 api,再自己试试就知道了
2016-08-27