Я пишу приложение для iPhone, используя cocos2d, где у меня есть 4 спрайта, которые являются кнопками. Я подумал, что реализую функциональность кнопки, используя 2 спрайта с разными файлами .png, представляющими нажатые / не нажатые состояния. Я думал, что это будет лучше, чем использовать анимацию. В дополнение к определению, когда кнопки нажимаются и отпускаются, мне нужно определить, когда происходит комбинация из двух кнопок: нажатие / отпускание (например, аккорд). Я мог бы даже перенести это на 3 и 4 кнопки. И еще одна функция, которую я хотел бы реализовать, - это обнаружение, если щелчок произошел из-за кнопки, и ответить другой последовательностью действий.
Каков оптимальный подход для этого? Буду ли я использовать ограничивающий прямоугольник / или спрайт для четырех кнопок (они в квадратной форме) и глотать касания? Тогда я бы использовал меньшие спрайтовые спекты, чтобы определить, на каком (-их) касании (-ях) произошло? Или я бы попросил отдельные спрайты сделать обнаружение, а затем проверить, не нажаты ли и не отпущены ли другие кнопки одновременно? Буду ли я использовать переменную состояния Bool для любого из этих способов?
У меня было все отлично, используя CCMenu и CCMenuitem, сделав один пункт меню / меню для каждого спрайта кнопки; однако я не мог понять, как определить, был ли нажат пункт меню из одного меню и одновременно отпущен пункт меню из другого меню. Я использовал отдельные меню, потому что если бы я использовал одно и то же меню с несколькими пунктами меню, то одновременно можно было нажать только одно меню. Я говорю, что он работал нормально, то есть работал с одним и несколькими нажатиями, но рассматривал бы множественные нажатия как два последовательных нажатия вместо одновременного нажатия. То есть: одно нажатие привело к выполнению одной последовательности действий (как и предполагалось), а одновременная комбинация нажатий привела к запуску отдельных последовательностей действий для каждой кнопки, как если бы я нажимал их каждую по отдельности (я хочу, чтобы она выполняла одну конкретную последовательность действий к этой комбинации кнопок). Вот почему я решил, что может быть лучше попытаться внедрить мою собственную систему кнопок вместо использования системы CCMenu. Правильно ли я ухожу от CCMenu?
Извините за длинное описание, но оно действительно было конкретным. B)
Буду очень признателен за понимание того, как кто-либо еще реализовывал или будет реализовывать это!