2015-04-23 3 views
1

Я хочу создать многоугольник, который столкнется с прямоугольником, используя overlapse(). Единственная проблема, с которой я сталкиваюсь, это то, что я не знаю, как создать многоугольник, и я имею в виду только многоугольник. Каждый раз, когда я пытался найти его в Интернете, я нахожу самые сложные коды. Поэтому, если вы можете просто показать мне, как создать многоугольник и объяснить, как объявить его форму, мы будем очень благодарны.Как создать базовый многоугольник?

многоугольник выглядит примерно так:

примечание: оно должно быть симметричным, но я не уверен, если я обратил его симметричная ...

+0

Как вы думаете, что означает «полигон»? – Kevin

+0

любая форма, которая не круглая, и если вы спросите ее вот так, я думаю, что я вот-вот открою, что я абсолютно тупой? –

+0

ну, ты не ошибаешься. Но в программировании мы обычно имеем дело с треугольниками ... Я не знаю, что предлагает libgdx с точки зрения обнаружения столкновений, но с предоставленной вами формой вам потребуется довольно сложная математика для обнаружения столкновения. – Kevin

ответ

0

Согласно documentation на полигоне class, вы можете просто использовать его конструктор для определения нового многоугольника. Пример:

//we want to create a simple square shaped polygon 
//we create an array to hold every vertex we need, there are 4 vertices 
//this constructor uses 1 float array as parameter, where every two element define the position of 1 vertex 
polygon = new Polygon(new float[]{ //so we pass a new float array to the constructor 
         0,0, //this is the x,y of the first vertex 
         width,0, //the second vertex 
         width,height, //the third 
         0,height}); //and the last 

Это простой пример, но вы должны иметь возможность выяснить, как расширить форму. Я дам еще один пример, чтобы добавить дополнительную вершину, чтобы создать «дом форму»:

polygon = new Polygon(new float[]{ //so we pass a new float array to the constructor 
         0,0, //this is the x,y of the first vertex 
         width,0, //the second vertex 
         width,height, //the third 
         (width*0.5),(height*1.5), //this one is now extra, it adds one vertex between the last and the one before it 
         0,height}); //and the last 

Позвольте мне знать, если вам нужна дополнительная информация.

+0

извините за поздний ответ, но Большое спасибо. Я все понял, но есть ли способ проверить полигон? чтобы посмотреть, нужна ли мне форма? –

+0

Я имею в виду, если вы можете визуализировать это временно –

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