провести линию пальцем, и объект будет следовать по этому пути?

Я новичок в разработке игр на iOS. Теперь я хочу сделать игру, похожую на "Управление полетом в воздухе" и "Диспетчер воздушного движения",

где пользователь может нарисовать линию пальцем, и объект будет следовать по этому пути

Итак, любой может посоветовать мне, что лучше всего подходит для подобной разработки. Может ли Cocos2d лучше всего подойдет для этого? Или что-то еще, что я должен использовать для этого.

Также, если кто-то знает об уже существующем руководстве или какой-либо справочной ссылке, пожалуйста, предложите мне.

Заранее спасибо.


person Harin    schedule 20.08.2012    source источник
comment
привет, как ты выполнил свою задачу   -  person Rajneesh071    schedule 11.09.2013
comment
Проверил ответы, которые я принял. Это было полезно для меня.   -  person Harin    schedule 12.09.2013


Ответы (1)


Чтобы просто позволить объекту следовать за вашим пальцем, реализуйте касания (и только один из его методов):

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint toPoint = [touch locationInView:self.view];
    [yourObjectOutlet setCenter:toPoint];
}

Здесь центр вашего объекта будет следовать за вашим путем, но вы можете настроить его точку привязки, отредактировав «toPoint» в соответствии с рамкой объекта.

РЕДАКТИРОВАТЬ

Если вы хотите нарисовать путь, затем заставьте объект следовать по этому пути, сделайте следующее:

//define an NSMutableArray in your header file (do not forget to alloc and init it in viewDidLoad), then:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   //you begin a new path, clear the array
   [yourPathArray removeAllObjects];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint toPoint = [touch locationInView:self.view];
    //now, save each point in order to make the path
    [yourPathArray addObject:[NSValue valueWithCGPoint:toPoint]];
}

Теперь вы хотите начать движение:

- (IBAction)startMoving{
   [self goToPointWithIndex:[NSNumber numberWithInt:0]];
}
- (void)goToPointWithIndex:(NSNumber)indexer{
   int toIndex = [indexer intValue];  

   //extract the value from array
   CGPoint toPoint = [(NSValue *)[yourPathArray objectAtIndex:toIndex] CGPointValue];
   //you will repeat this method so make sure you do not get out of array's bounds
   if(indexer < yourPathArray.count){
       [yourObject setCenter:toPoint];
       toIndex++;
       //repeat the method with a new index
       //this method will stop repeating as soon as this "if" gets FALSE
       [self performSelector:@selector(goToPointWithIndex:) with object:[NSNumber numberWithInt:toIndex] afterDelay:0.2];
   }
}

Это все!

person John Smith    schedule 20.08.2012
comment
Согласно вашему ответу, когда я двигал пальцем, объект также будет перемещаться (это что-то вроде объекта, работающего как указатель). Я хочу следовать за объектом по определенному пути, который я нарисовал. Пожалуйста, исправьте мою ошибку. - person Harin; 20.08.2012
comment
Значит, вы хотите сказать, что сначала хотите нарисовать путь, а затем нажать кнопку, которая запустит объект, следующий по этому пути? - person John Smith; 20.08.2012
comment
он работает. Просто незначительное изменение в вашем коде, и это сделано для меня .. указатель убийцы на NSNumber, проверьте заклинание intValue .. Большое спасибо за помощь мне .. - person Harin; 20.08.2012
comment
да, спасибо, вы были правы, я только что написал этот код без проверки правописания Xcode. и я рад что помог - person John Smith; 20.08.2012