Ваш код рисования не будет иметь большого значения, я предполагаю, что вы знаете, как нарисовать то, что вы хотите нарисовать. Здесь важно настроить физику. Если у вас работает физический движок (например, Бурундук или другие), то эффекты встряхивания при перемещении мяча, о котором я расскажу через секунду, могут привести к движению мяча в другом направлении, если вы так и делаете. Вы написали свою физику. Имейте это в виду. На данный момент я предполагаю, что гравитация выключена.
Идея, которую вы хотите сделать, это сначала выяснить, собираетесь ли вы ориентироваться на iOS до версии 3.2, потому что наши API жестов отличаются между ними (один способ работает в 3.2 и позже, но вы действительно хотите использовать распознаватели жестов, если вы не беспокоитесь о поддержке 3.0 или 3.1).
Если вы хотите поддерживать более ранние версии iOS, чем 3.2, то вам нужно взглянуть на apis для motionEnded: withEvent: и motionBegan: withEvent: это даст вам информацию о движении устройства. Ваше окончательное решение о том, был ли это коктейль или нет, и подробности о коктейле должны приниматься в движении. Round: withEvent: чтобы вы не пропускали зажигание. Здесь вы хотите переместить мяч в соответствии с информацией, которую вы получаете о встряхивании.
Что касается распознавателей жестов, то же самое действительно верно, хотя API намного проще. Вы просто создаете распознаватель жестов дрожания и сообщаете ему, что вы хотите делать, когда он обнаруживает дрожание. Очень просто, но доступно только на iOS 3.2 и выше.