Пожалуйста, помогите мне
Я создал ребра в своем проекте. Я знаю, как проверить позицию касания внутри фигуры
if (fix->TestPoint(locationWorld))
{
CCLOG(@"****touch inside shape***");
}
но я хочу создать шестиугольник, и мне нужно создать шар внутри шестиугольника и двигаться внутри шестиугольника.
Я сделал движение шара внутри шестиугольника, используя следующий код:
b2BodyDef groundBodyDef;
groundBodyDef.position.Set (0, 0);
b2Body * groundBody = world-> CreateBody (& groundBodyDef);
int countVal=[pos count];
// Define the ground box shape.
b2PolygonShape groundBox;
int range=[pos count]-2;
CCLOG(@"countVal=%d,range=%d",countVal,range);
for (int i=0; i<=range; i=i+2)
{
float x1,y1,x2,y2;
x1=[[pos objectAtIndex:i] floatValue];
y1=[[pos objectAtIndex:i+1] floatValue];
if (i==range)
{
x2=[[pos objectAtIndex:0] floatValue];
y2=[[pos objectAtIndex:1] floatValue];
}
else
{
x2=[[pos objectAtIndex:i+2] floatValue];
y2=[[pos objectAtIndex:i+3] floatValue];
}
CCLOG(@"x1=%f,y1=%f,x2=%f,y2=%f",x1,y1,x2,y2);
groundBox.SetAsEdge(b2Vec2(x1/PTM_RATIO,y1/PTM_RATIO),b2Vec2(x2/PTM_RATIO,y2/PTM_RATIO));
groundBody->CreateFixture(&groundBox, 0);
}
но я не знаю, как найти позицию касания внутри многоугольника. Я использую cocos2d с box2d
Пожалуйста, помогите мне