Как перетащить UIImageView по пути Безье

#ios #iphone #c #cocoa-touch #sprite-kit

#iOS #iPhone #c #cocoa-touch #sprite-kit

Вопрос:

Я разрабатываю игру, в которой UIImageView игрок движется по определенной Bezier траектории. Я хочу обеспечить взаимодействие пользователя с перемещением UIimageview , чтобы пользователь мог направлять UIImageView перемещение, касаясь UIImageView и перетаскивая его по пути! Как это сделать?

введите описание изображения здесь

Ответ №1:

Просто используйте pan gesture и добавьте его в UIImageView и укажите свой путь, по которому пользователь перемещает его.Жест панорамирования

Эта ссылка может быть полезна для понимания и реализации того же. Что-нибудь еще, дайте мне знать.

Комментарии:

1. я хочу обеспечить взаимодействие пользователя с движущимся UIImageView, чтобы пользователь мог направлять UIImageView, касаясь UIImageView и перетаскивая UIImageView по пути Безье.

2. Итак, я предоставил вам ссылку, просто пройдите по ней и посмотрите, подходит ли она вам. Надеюсь, что это еще даст мне знать, что я найду для вас что-нибудь другое

3. Для этого пути Безье вы должны предоставить его пользователю в виде большой строки / строки, чтобы он / она мог знать, по какому пути он / она должен переместить это изображение.

4. Остальное я не имею большого представления о вашей игре и ее сюжете.

5. я вижу, что ссылка эта ссылка предназначена только для перемещения изображения по экрану, которое я хочу, когда пользователь прикасается к изображению, изображение перетаскивается и перемещается по предопределенному пути.

Ответ №2:

Вы должны проверить, находятся ли координаты точки касания внутри пути Бейзера. Если он находится внутри, разрешить UITouch и перемещение, иначе нет. Дайте соответствующее условие If.

Комментарии:

1. не могли бы вы, пожалуйста, предоставить мне какой-нибудь код или документ, как это сделать.

Ответ №3:

Пожалуйста, попробуйте это…

Здесь selectedImageCat — это общий объект uiimageview, а touchimgView — это выбранный (затронутый) imageview

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        for (UITouch *touchPoint in touches)
        {
              if(CGRectContainsPoint(touchimgView.frame, [touchPoint locationInView:self.view]))
        selectedImageCat=(UIImageView*)touchimgView;

        }
    }

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        if (selectedImageCat!=nil)
        {
            CGPoint pt = [[touches anyObject] locationInView:self.view];
            [selectedImageCat setCenter:pt];
        }
    }

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
    {


        //here you provide final frame for touchimgView object
    }
 

Комментарии:

1. уже сделано это для перемещения изображения по экрану а не для выбранного пути