#iphone #cocoa-touch #cocos2d-iphone
#iPhone #cocoa-touch #cocos2d-iphone
Вопрос:
Я пытаюсь добавить освещение в определенной степени в моей игре для iPhone на основе карты листов. За неимением лучшего примера, я пытаюсь добавить освещение в стиле minecraft — чем дальше плитка от источника света, тем больше у нее «темного» оттенка.
Самый эффективный способ, который я могу придумать для этого, — добавить некоторый тип маски поверх слоя tilemap, чтобы создать этот эффект, и просто перемещать маски вместе с tilemap по мере перемещения игрока.
Я не смог найти никакой документации о том, как добавлять маски ко всему слою, возможно ли это? Или это плохая практика? Или вы можете придумать лучший возможный метод для достижения этого эффекта?
Ответ №1:
Самым простым и эффективным решением было бы изменить свойство цвета плитки. По умолчанию все узлы имеют цвет «белый», и, применяя серый цвет между черным и белым, вы сможете управлять яркостью плитки.
Однако обратите внимание, что когда вы обрабатываете плитку как CCSprite, cocos2d изменит плитку по сравнению с ее базовой реализацией и превратит ее в CCSprite. Это может привести к снижению производительности и / или памяти. Когда я в последний раз проверял cocos2d 0.99, каждый экземпляр CCSprite занимал 420 байт.