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,但是按照这些思路应该可以。
我用鼠标在 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,但是按照这些思路应该可以。