为什么物体的符号反转时会粘在边缘?

时间:2019-05-12 14:16:16

标签: javascript

我正在学习一点点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)"
    }
  }
}

1 个答案:

答案 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;