Java Slick2d - 如何在窗口内保持形状?

时间:2015-05-23 16:30:01

标签: java shape drag slick2d

我用鼠标拖动它在窗口上移动一个圆圈。我应该永远把它放在窗户里面。

因此,默认情况下,当您以鼠标退出框架的方式拖动圆圈时,圆圈的一半将消失(因为它退出框架),其中一半不会消失。我需要让它始终显示整个 ,即使光标退出框架也是如此。这是代码:

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

1 个答案:

答案 0 :(得分:0)

无论包含哪个圆圈,让我们调用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并不熟悉,但这些内容应该有用。