Как я могу повернуть изображение стрелки, коснувшись этого изображения? - PullRequest
2 голосов
/ 23 марта 2009

Я работаю над проектом, в котором мне нужно повернуть изображение, касаясь его.

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

Можете ли вы показать мне некоторые учебники или как это можно сделать?

Ответы [ 3 ]

1 голос
/ 23 марта 2009

Поместите ваше изображение в UIImageView, затем либо создайте подкласс для этого представления и замените touchesBegan: withEvent:, либо установите для него делегат и реализуйте тот же метод, что и метод делегата. Это даст вам возможность реагировать на события касания (в данном случае это начало касания, хотя вы можете сделать то же самое для прекращения касания или перемещения пальца).

В этом методе обработки касаний вы можете реализовать нечто похожее на то, что я описал здесь , чтобы выполнить вращение с поддержкой Core-Animation вашего UIImageView с заданной скоростью. Чтобы изменить скорость, измените свойство длительности анимации, которую я предоставляю. Как я и предлагаю, вы можете захотеть взглянуть на CAKeyframeAnimation, чтобы сделать плавную анимацию с ускорением и замедлением в начале и в конце.

0 голосов
/ 11 апреля 2009

Используя Cocos2d, у вас не может быть спрайтов с сенсорным включением, isTouchEnabled находится на уровне слоя. Вы должны будете получить касание на уровне слоя, а затем проверить местоположение касания относительно местоположения сенсорного спрайта. Функции CGRect * включают в себя «точку, содержащую прямоугольник», в которую можно передать местоположение касания, а также прямоугольник спрайта, чтобы увидеть, было ли оно «затронуто», и какую точку вы можете сказать [sprite runAction: [Rotate .... ]]

0 голосов
/ 25 марта 2009

Более простой способ - настроить NStimer и вращать преобразование при каждом запуске.

У меня есть пример кода, который по совпадению делает нечто похожее:

http://github.com/kailoa/touchsamplecode/tree/master

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...