| | |
| | | { |
| | | double dis2 = DistanceOfTire2Edge(map, car); |
| | | |
| | | MA_SendDistance(-1, dis2); |
| | | MA_SendDistance(DistanceOf(map->point[8], map->point[7]) - dis2, dis2); |
| | | } |
| | | |
| | | if (prevMoveDirect != moveDirect) { |
| | |
| | | // 全车都需不在地图中 |
| | | bool ret = false; |
| | | |
| | | Polygon carBody; |
| | | Polygon carBody, map2; |
| | | PointF vPoint = Calc3Point(map->point[8], map->point[0], DistanceOf(map->point[8], map->point[7]), 'R'); |
| | | |
| | | map2.num = 4; |
| | | map2.point = (PointF *)malloc(map2.num * sizeof(PointF)); |
| | | |
| | | MakePolygon(&map2, {vPoint, map->point[0], map->point[7], map->point[8]}); |
| | | |
| | | carBody.num = car->bodyNum; |
| | | carBody.point = (PointF *)malloc(carBody.num * sizeof(PointF)); |
| | |
| | | carBody.point[i] = car->carXY[car->body[i]]; |
| | | } |
| | | |
| | | if (IntersectionOf(&carBody, map) == GM_None) { |
| | | if (IntersectionOf(&carBody, &map2) == GM_None) { |
| | | ret = true; |
| | | } |
| | | |
| | | free(carBody.point); |
| | | |
| | | free(map2.point); |
| | | return ret; |
| | | } |