为了账号安全,请及时绑定邮箱和手机立即绑定
好酷的老师哈哈哈哈

最赞回答 / SummerWang3150009
问题出在draw函数里面  把for(var i=0;i<piece.length;i++)改成for(var i=1;i<piece.p.length;i++)  就可以了  你要清楚这个循环循环的是 tangram数组里key值p的value 
确实用splice快很多,反正splice之后数组的index也会重新排
var g_temp = balls[i].g;
if(balls[i].vy&gt;=-2&amp;&amp;balls[i].vy&lt;=2){
g_temp = 0;
balls[i].vy=0;
}
balls[i].vy+=g_temp;
小球低幅度跳动的原因是g。所以更改vg的时候在一定条件下不是vy+=g,而是:var g_temp = balls[i].g;if (balls[i].y&gt;=WINDOW_HEIGHT-RADIUS) {balls[i].y=WINDOW_HEIGHT-RADIUS; balls[i].vy = -balls[i].vy*0.65;if(balls[i].vy&gt;=-2&amp;&amp;balls[i].vy&lt;=2){ g_temp = 0;balls[i].vy=0; }}balls[i].vy+=g_temp;
}
小球低幅度跳,判断一定速度内让它速度为0就好了
if (balls[i].y&gt;=WINDOW_HEIGHT-RADIUS) {
balls[i].y=WINDOW_HEIGHT-RADIUS;
balls[i].vy = -balls[i].vy*0.75;
if(balls[i].vy&gt;=-6&amp;&amp;balls[i].vy&lt;=6){
balls[i].vy=0;
}
}
老师,您给的方法不支持canvas的浏览器没有反应啊
总之还是习惯于for(){},然后每一个后面跟分号,要不然有些时候会报错还会影响效果。
for(var i = 0 ;i &lt; tangram.length;i ++) 我的错误是 老师里面这段代码 点看不清楚我直接敲了 空格 其实有点 加上点 代码和老师一模一样 效果就出来了
js 的定时器啊啊啊
数学好的 js又有基础,真是福音啊哈哈哈!跟不上吧!后面还有各种三角函数啊 嗷 !!!跟canvas相见恨晚啊
吸收起来毫无压力,太简单了 继续吸收
@qq_明夕何夕_0,因为老师代码里下面那个for循环写错了,for循环只到cxt.lineTo(piece.p[i].x,piece.p[i].y) }因为到这里结束

已采纳回答 / 刘小骏
在使用 fill() 的时候不需要写 closePath() ,fill()的结果会自动让图形封闭,这点跟 closePath() 的效果一样,而不是代表 绘制结束,不用跟 beginPath()成对出现,他俩的用法跟名字中的 begin、close 代表的意思不一样,你可以看下 canvas 的 api,再自己试试就知道了
课程须知
1.要对HTML+CSS相关标签有所掌握;2.对网页布局知识有简单的了解;3.掌握一定的JS基础知识
老师告诉你能学到什么?
通过学习Cancas倒计时效果的基础知识:比如球形的绘制,动画的基础原理,让Canvas帮助我们制作出绚丽的效果,力图每一个课程除了介绍知识,还能帮助大家使用Canvas制作出属于自己的动画和游戏作品。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消