2015-01-24 1 views
0

В настоящее время я пытаюсь сделать селектор для игры в формате RTS. Для этого мне нужно иметь возможность перетаскивать мышь, чтобы создать поле выбора, однако это может привести к отрицательной длине/ширине.Libgdx, как я могу создать прямоугольник из координат?

В Libgdx есть ли способ сделать прямоугольник только с использованием двух наборов координат?

Спасибо.

ответ

0

это простая идея, если я понимаю, что вы хотите сделать:

, чтобы создать прямоугольник, вы можете использовать это, Rectangle(float x, float y, float width, float height) для получения дополнительной inforamacion вы можете прочитать здесь http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Rectangle.html

это код псевдо более или менее:

создать приемник, который фиксирует нажатия клавиш, мыши или их соответствующим образом,

в приземлении ловит й, у, и назначить:

yourVariableTouchDown.x = x; 
yourVariableTouchDown.y = y; 

тогда, когда TouchUp захватывает й выполняются, и точка, где она составляет касание и назначить:

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 : что вы говорите отрицательно, будет вопрос проверки, когда touchu p меньше, чем изменение приземления, когда создается прямоугольник, который был именно тем, с чем я столкнулся с вами, и проверил его и скорректировал переменные, чтобы создать прямоугольник сейчас, потому что вы не можете быть созданы желательно, когда отрицательный, теперь у меня есть время, чтобы с ним справиться, на самом деле а не проверил это, почему я сказал, что это псевдо-код, надеюсь, что вы служите, идея

PS: вы также можете посмотреть на этом https://stackoverflow.com/tour

+0

Спасибо, что выглядит великолепно - собирается попробовать и добавить его сейчас! – DrDominic

 Смежные вопросы

  • Нет связанных вопросов^_^