Я разрабатываю простую игру, в которой можно перемещать персонажа через лабиринт. Чтобы избежать обнаружения столкновений, я подумал, что было бы неплохо установить путь через лабиринт и перемещать персонажа по этому пути.
Персонаж перемещается касанием. Поэтому я подумал, что могу просто проверить, содержатся ли в пути touchlocation.x или touchlocation.y, а затем установить изображение символов в месте, соответствующем значению touchlocation.x или touchlocation.y.
К сожалению, я обнаружил, что могу проверить только то, содержится ли CGPoint в пути, а не координаты x или y этой точки на этом пути.
Кто-нибудь из вас знает, как это сделать?
спасибо заранее
Мав
---- EDIT ----
Это код, как я создаю свой CGPath:
mazePath = CGPathCreateMutable();
CGPathMoveToPoint(mazePath,NULL, 148, 723);
CGPathAddLineToPoint(mazePath, NULL, 148, 404);
CGPathAddLineToPoint(mazePath, NULL, 129, 353);
CGPathAddLineToPoint(mazePath, NULL, 129, 174);
CGPathAddArcToPoint(mazePath, NULL, 129, 174, 148, 404, 10);
CGPathAddLineToPoint(mazePath, NULL, 148, 404);
CGPathAddLineToPoint(mazePath, NULL, 290, 640);
CGPathAddArcToPoint(mazePath, NULL, 290, 640, 326, 196, 10);
CGPathAddArcToPoint(mazePath, NULL, 326, 296, 359, 234, 10);
CGPathAddLineToPoint(mazePath, NULL, 395, 198);
CGPathAddLineToPoint(mazePath, NULL, 396, 147);
CGPathAddLineToPoint(mazePath, NULL, 683, 147);
CGPathAddLineToPoint(mazePath, NULL, 683, 232);
CGPathAddLineToPoint(mazePath, NULL, 480, 232);
CGPathAddLineToPoint(mazePath, NULL, 461, 332);
CGPathAddLineToPoint(mazePath, NULL, 235, 345);
CGPathAddLineToPoint(mazePath, NULL, 219, 248);
CGPathAddLineToPoint(mazePath, NULL, 235, 345);
CGPathAddLineToPoint(mazePath, NULL, 233, 607);
CGPathAddLineToPoint(mazePath, NULL, 324, 605);
CGPathAddLineToPoint(mazePath, NULL, 324, 464);
CGPathAddArcToPoint(mazePath, NULL, 324, 464, 364, 425, 10);
CGPathAddLineToPoint(mazePath, NULL, 537, 426);
CGPathAddArcToPoint(mazePath, NULL, 537, 426, 559, 396, 10);
CGPathAddLineToPoint(mazePath, NULL, 559, 396);
CGPathAddLineToPoint(mazePath, NULL, 567, 330);
CGPathAddLineToPoint(mazePath, NULL, 678, 330);
CGPathAddLineToPoint(mazePath, NULL, 678, 504);
CGPathAddLineToPoint(mazePath, NULL, 412, 510);
CGPathAddLineToPoint(mazePath, NULL, 412, 598);
CGPathAddLineToPoint(mazePath, NULL, 691, 598);
CGPathAddLineToPoint(mazePath, NULL, 690, 723);