【问题标题】:balls bouncing from a line drawn by mouse dragging球从通过鼠标拖动绘制的线弹跳
【发布时间】:2014-05-21 02:26:16
【问题描述】:

我有一个带有弹跳球的空间,当我拖动鼠标时,我想在其中画一条线,以便球也开始从它弹跳。

  1. 我可以画一条由小圆圈组成的线,并将它们的内部区域相加,如果球与该区域相交,则改变方向。这行得通。问题是圆圈不会产生实线(因为 mouseDragged 事件很少触发),但如果我使用 Line2D 代替,它不会包围任何区域。
  2. 在每个鼠标拖动事件中,我可以在 startPoint 和 endPoint 之间插入数据,并在获得的 x、y 处绘制一个圆。它可以工作,但一切都冻结得很厉害
  3. 我可以检查球的覆盖矩形是否包含某种颜色(如果是,则改变方向),但又应该怎么做——检查每个像素似乎根本没有效率?

有没有办法/最好的方法来处理它?

【问题讨论】:

  • 为什么不使用薄的 Rectangle2D?
  • 我已经考虑过了。但是随后您需要旋转每个矩形,据我所知,这可能很麻烦(您需要旋转图形或图像,对吗?)。有没有更好的“常规”方法?
  • 我不明白你想要做什么。您是否正在尝试创建乒乓球游戏?
  • 不,抱歉我的措辞不好。我编辑了问题

标签: java swing awt graphics2d java-2d


【解决方案1】:

但如果我改用 Line2D,它不会包围任何区域。

使用宽度(非常细)的Path2DPolygon。它看起来像一条线,但有一个区域。

然后在this answer看到的代码中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多