Почему полноэкранная прозрачная кнопка снижает частоту кадров с 60 до 30 на cocos2d-iphone и как мне обойти это?

У меня есть класс cclayer с невидимой кнопкой размером с экран iphone 320x480.

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

Я заметил, что, когда прозрачная кнопка «видима», мой fps падает до 30. Когда он переключается на невидимость и вызывает другие «видимые» элементы меню, мой fps возвращается к 60 кадрам в секунду.

Почему мое приложение делает это, когда есть полноэкранная прозрачная кнопка, и как мне обойти это, чтобы поддерживать 60 кадров в секунду?


person Azeworai    schedule 06.03.2011    source источник
comment
Я удалил прозрачную кнопку и внедрил ccTouchesBegan в свой CCLayer и заставил его работать так, как я хотел, без падения FPS. - (пусто) ccTouchesBegan: (NSSet *) touches withEvent: (UIEvent *) событие   -  person Azeworai    schedule 06.03.2011


Ответы (1)


Прозрачные вещи дорого рендерить, так как это требует расчета чистого эффекта после применения прозрачности. Даже если вид полностью прозрачен (т. е. виден, но альфа = 0), я думаю, эти вычисления продолжаются. Полноэкранная прозрачность может повлиять на производительность. Вместо того, чтобы использовать невидимую кнопку, попробуйте обнаружить прикосновение каким-либо другим способом, если это возможно.

person taskinoor    schedule 06.03.2011