【问题标题】:How to calculate coordinates of ball when collided with a wall?与墙壁碰撞时如何计算球的坐标?
【发布时间】:2015-09-30 17:31:12
【问题描述】:

我正在开发一款类似泡泡射击游戏的游戏,需要实现球从垂直墙上的反弹。我有以下输入:

  1. 气泡起始位置:{left: 382, right: 378}
  2. 以弧度表示的发射角度:1.34
  3. 游戏板尺寸:{width: 760, height: 620}.
  4. 气泡大小为{width: 44px, height: 44px}

我在气泡的左侧和气泡的右侧有两堵墙。

如何计算气泡的中心点坐标以将其停止在右墙碰撞的左侧?

【问题讨论】:

  • 您的输入数据中缺少三个重要项目。气泡的大小和形状是多少?角度0是什么方向?角度是从0开始顺时针还是逆时针?
  • 我已经更新了帖子的尺寸。如果角度为0,我不考虑方向,我认为我需要设置最小角度。
  • 角度 1.34 弧度如果您不知道角度 0 在哪里,或者角度的测量方向(顺时针或逆时针)是什么,则没有任何意义
  • 我添加了希望回答您问题的图片
  • 所以,发射角为 1.34

标签: javascript linear-algebra game-physics


【解决方案1】:

如果气泡的尺寸是 44x44,我认为这意味着边界框就是那个尺寸(因为你没有测量圆形的宽度和高度)。

如果是这样的话,比你有类似的东西

也就是说圆的直径是44px,也就是说圆的半径是22px。假设墙与圆相切,墙到圆心的距离为1r 或 22px。

如果您从边界框的左上角开始计数,您希望在 x 和 y 坐标上都增加 22px,这样您就可以得到中心的坐标。

【讨论】:

  • 好的,但是我该如何计算 x, y 我应该在哪里停止气泡 buildanhtml5game.com/?page_id=20
  • 我不知道。这取决于你的坐标系是什么。如果气泡的位置是由其左上角的位置决定的,则您希望将气泡停止在距左墙 0px 和距右墙 44px 的位置。如果它来自中心,您希望从任一方向停止 22px。
  • 我的问题是我不明白如何计算top 坐标。请看游戏buildanhtml5game.com/?page_id=20。现在泡沫不会停在墙上。我需要计算topleft 坐标以将其停在墙上的正确位置
  • @Erik 这严格来说是一道数学题,而不是编程题。如果您不了解其背后的数学原理,也许您应该在 Mathematics 或类似论坛上提问。
  • 我已经问过math.stackexchange.com/questions/1357888/… 并且管理员已关闭它:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
相关资源
最近更新 更多