我目前正在尝试为RTS游戏制作一个选择器框。为此,我需要能够拖动鼠标以创建选择框,但这可能导致负长度/宽度。
在Libgdx中,有一种方法可以使用两组坐标来制作矩形吗?
感谢。
答案 0 :(得分:1)
这是一个简单的想法,如果我明白你想做什么:
要创建一个矩形,您可以使用此Rectangle(float x, float y, float width, float height)
进行更多信息,您可以在此处阅读http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Rectangle.html
或多或少这是一个伪代码:
创建一个侦听器,根据需要捕获击键,鼠标或它们,
触地得分中的捕获x,y,并指定一个:
yourVariableTouchDown.x = x;
yourVariableTouchDown.y = y;
然后当touchup捕获x被执行时,以及它构成触摸的点并指定:
yourVariableTouchUp.x = x;
yourVariableTouchUp.y = y;
创建rectagle之后:
private Rectangle yourRectangle = new Rectangle();
yourRectangle(yourVariableTouchDown.x, yourVariableTouchDown.y,
(yourVariableTouchDown.x - yourVariableTouchUp.x),
(yourVariableTouchDown.y - yourVariableTouchUp.y));
如果你想看到它,可以使用ShapeRenderer:
看这个http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/glutils/ShapeRenderer.html
在变量类中添加测试
private ShapeRenderer sRDebugRectangel = new ShapeRenderer();
在更新中添加测试或绘制
sRDebugRectangel.begin(ShapeType.Filled);
sRDebugRectangel.identity();
sRDebugRectangel.rect(yourRectangle.getX(),
yourRectangle.getY(),
yourRectangle.getWidth(),
yourRectangle.getHeight());
sRDebugRectangel.end();
你可以看一下那个听众的用法: https://www.google.es/#q=listener+libgdx
PS:你说的是负面的,将是一个检查,当触摸小于触地变化,在那里创建矩形,这就是我碰巧你测试它并调整变量来创建矩形现在因为你当负面的时候不能创造出理想的,现在我有时间搞定它,实际上呃没有测试过这个为什么我说它是伪代码,希望你服务,想法P.S:您还可以查看此https://stackoverflow.com/tour