Java Slick2d - 如何将形状始终保持在 window 内?

Java Slick2d - how to keep a shape allways inside a window?

我用鼠标在 window 上拖动一个圆圈。我应该让它始终在 window 内。

所以默认情况下,当您以鼠标退出框架的方式拖动圆圈时,一半的圆圈会消失(因为它退出了框架),另一半不会。我需要使其始终整个可见,即使您的光标退出框架。这是代码:

if(draggingcircle)
{
  g.drawString("Dragging circle = " + draggingcircle, 50, 110);
  circle.setCenterX( gc.getInput().getMouseX() );
  circle.setCenterY( gc.getInput().getMouseY() );
}

不管圆包含在什么里面,让我们调用 id ,如果你知道半径或直径(我忘了是哪个),你可以用简单的数学将它保存在容器中

所以

if(draggingcircle)
{
  g.drawString("Dragging circle = " + draggingcircle, 50, 110);
  circle.setCenterX( gc.getInput().getMouseX() );
  circle.setCenterY( gc.getInput().getMouseY() );
}

变成

var width = $('#container').width();
var height = $('#container').height();
var radius = 2;

if(draggingcircle)
{
  g.drawString("Dragging circle = " + draggingcircle, 50, 110);
  if (gc.getInput().getMouseX() > radius && gc.getInput().getMouseX() < width - radius)
  {
    circle.setCenterX( gc.getInput().getMouseX() );
  }
  if (gc.getInput().getMouseY() > radius && gc.getInput().getMouseY() < height - radius)
  {
    circle.setCenterY( gc.getInput().getMouseY() );
  }
}

抱歉我的语法不好,我不熟悉 Slick2d,但是按照这些思路应该可以。