Cocos2d-iPhone Перетащите в любое место, чтобы переместить спрайт - PullRequest
1 голос
/ 11 июля 2011

Хорошо, я бы хотел дублировать элементы управления Space Invaders Evolution.

Начните касание в любом месте, затем перетащите и спрайт перемещается 1: 1 пальцем. Спрайт не может быть перемещен с экрана.

Я использую UIGestureRecognizer, чтобы обрабатывать перетаскивание спрайта по экрану, но я все еще новичок в этом, и я пока не смог заставить его работать.

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Не знаю, не хотите ли вы попробовать это, но мне кажется, что такого рода вещи можно легко сделать с помощью ccTouchesBegan и ccTouchesMoved.Я бы реализовал это, поместив в методы ccTouchesBegan и ccTouchesMoved следующее (где sprite - это имя спрайта, который вы пытаетесь переместить):

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];    
location = [[CCDirector sharedDirector] convertToGL:location];
sprite.position = ccp(location.x, location.y);
0 голосов
/ 11 июля 2011

Используете ли вы Cocos2D или Apple Frame-work?

В cocos2d вы можете использовать слой (например, вашу сцену) для обнаружения касания, которое затем перемещает спрайт. Когда перемещение применяется, проверьте, находится ли спрайт в границах экрана, и переместите его обратно в границы экрана, если это не так.

В дистрибутиве cocos2d приведен пример сенсорного кода. Не для вашего конкретного случая, а для общего кода, с текстом и пояснениями.

...