#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. уже сделано это для перемещения изображения по экрану а не для выбранного пути