我正在学习一点点javascript,发现当您绘制一个对象并将其设置为从边界“反弹”时,将其乘以(var * = -1)不起作用。该物体粘在边界上并停止移动。
在此示例中,球到达页面顶部,并像在边界上“卡住”一样反复上下移动:
{
"fake": {
"headers": {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
},
"method": "get",
"payload": "",
"followRedirects": true,
"validateHttpsCertificates": true,
"useIntranet": false,
"contentType": null,
"url": "https://www.httpbin.org/headers"
},
"real": {
"headers": {
"Accept-Encoding": "gzip,deflate,br",
"Host": "www.httpbin.org",
"User-Agent": "Mozilla/5.0 (compatible; Google-Apps-Script)"
}
}
}
答案 0 :(得分:1)
如果球的y小于23或大于377,反转速度不会使其再次进入可接受的范围,并且方向将再次反转,因此它会不断地向上和向下跳跃。您可以将条件更改为:
if (y > 375 && speed > 0 || // if reaching upper broder and moving up or
y < 25 && speed < 0 // if reaching lower border and moving down
) speed *= -1;