Я думаю, image1.image
в вашем втором if
состоянии необходимо image2.image
, если вам нужно более коленях image1
и image2
центра. Но если вам нужно переместить изображения, вы должны выполнить следующее:
- Проверьте, принадлежит ли точка касания к обоим объектам.
- Если да, переместите оба изображения относительно (например, добавьте перемещенную сумму в предыдущий центр изображения). Не сделать точку касания как местоположение центра изображения.
Пример: Если image1
центр в точке (x1, y1) и image2
центра в точке (x2, y2). Теперь точка касания (x3, y3) принадлежит как изображению image1
, так и image2
. Если новое перетаскивание находится на (x4, y4), сумма перетаскивания составляет x4-x3
и y4-y3
вдоль x,y
направлений соответственно. Добавьте это значение перетаскивания в центр изображения, чтобы изображение появилось в новом месте.
псевдокоде
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
float touchXBeginPoint = [touch locationInView:touch.view].x;
float touchYBeginPoint = [touch locationInView:touch.view].y;
// Now Check touchXBeginPoint, touchYBeginPoint lies in image1, image2
// Calculate the offset distance.
if(/* both are true */)
{
// Add the offset amount to the image1, image2 center.
}
else if(/* image1 touch is true */)
{
// Add the offset amount to the image1 center
}
else if(/* image2 touch is true */)
{
// Add the offset amount to the image2 center
}
}
Скачать исходный код iPhone Game Dev главы 3 и посмотреть, как изображения перемещаются.
Я просто изменил его, но я не хочу, чтобы перекрывать его. Я хочу, чтобы каждый UIImageView имел свою собственную позицию и мог одновременно перемещаться. – Rick
Я действительно смущен. Точка касания всегда будет не равна обоим изображениям, поэтому я хочу ее устранить. Вот как я далеко: - (void) touchhesBegan: (NSSet *) касается событияEvent: (UIEvent *) { \t UITouch * touch = [[event allTouches] anyObject]; \t \t , если (image1.image == [UIImage imageNamed: @ "ball.png"]) { \t \t CGPoint расположение = [сенсорный locationInView: touch.view]; \t \t image1.center = location; \t} \t, если (image2.image == [UIImage imageNamed: @ "ball2.png"]) { \t \t CGPoint расположение = [сенсорный locationInView: touch.view]; \t \t image2.center = location; \t} } – Rick