Cocos2d-js, как прочитать/устновить пиксели у слоёв или текстур?
Привет!
Необходимо "вручную" установить пиксели у слоя (спрайта), никаких bitmap'ов в кокосе не обнаружил, у объектов cc.texture2d и cc.DrawNode отсутствуют методы для чтения пикселей у API на JavaScript.
Очень нужно вручную забить пикселями один из слоёв в игре.
Подскажите идеи, пожалуйста, как быть?
P.S. А вообще суть в том, что используется ClippingNode для птатформера, где вместо тайлов-текстур ставим тайлы-маски, которые накладываются на более крупные тайлы. Беда в том, что ClippingNode очень сильно просаживает FPS на Android-устройствах, рендер в текстуру не работает с ClippingNode, поэтому единственным выходом вижу вручную забить пикселями в те места, где есть маска. У объекта cc.DrawNode есть метод drawDot, которым в принципе можно установить пиксель, передав в параметры правильный радиус точки и цвет. Но как прочитать, какой именно пиксель ставить? Т.е. нужно из другой ноды (слоя) прочитать попиксельно цвет маски, и взять цвет у текстуры.
Хочу порекомендовать Вам перейти на pixi.js и написанные на его основе замечательные движки phaser и panda. После того, как я узнал эти названия, моя жизнь стала лучше. Теперь мне даже постовые улыбаются по пути на работу и птицы поют на за окном даже в минус пятьдесят. PIXI.JS - неповторим!!!
Да, спасибо, Phaser мы тоже используем больше года, в нём своих проблем хватает тоже, но при этом он намного лучше, чем Кокос дли браузеров. Однако, именно этот проект необходимо разрабатывать на кокосе. Один из багов, или вернее сказать, ошибок фазера - это слишком ранний переход движка на fixedTime, в результате мощности мобильных устройства не хватает на обработку физики с нужной скоростью. Был печальный опыт, когда динамичной игре изначально разрабатываемой на фазере, вдруг обнаружилось, что fixedTime обеспечивает плавность игры, но разную скорость выполнения на разных девайсах, плюс физик-боди всегда безнадежно отстаёт от спрайта или наоборот. И побороть это никак не получилось на офф. форуме. Кокос, при всей своей сырости и неудобстве, имеет больше свободы в реализации, так как в нём deltaTime - что позволяет реализовать любой способ апдейта и это решило проблему, но игру пришлось переписать на кокос. Тоже самое и с этой игрой.