как уменьшить изображение Cocos2D несколько раз - PullRequest
1 голос
/ 22 ноября 2011

Я несколько раз сжимаю изображение (а затем отрисовываю его в новое полноразмерное изображение) на небольшую величину, и в результате полоса по центру не уменьшается. Я предполагаю, что это связано с методом изменения размера, который использует cocos2d. Если я увеличу величину, то уменьшу изображение слишком быстро, а если уменьшу размер, то полоса посередине станет еще больше! следующий код вызывается 60 раз в секунду. На рисунке ниже показан результат! Итак ... какие-либо предложения о том, как избавиться от бара?

 [mySprite setScaleX:rtt.scaleX - .05]; 

enter image description here

Ответы [ 3 ]

1 голос
/ 22 ноября 2011

Я не совсем понял, что вы имели в виду, но вы имели в виду, что вы вызываете эту строку 60 раз в секунду?второй ...

0 голосов
/ 04 декабря 2011

Я новичок в движке cocos2d, так что надеюсь, это поможет.Если вы уменьшаете изображение, я бы предложил использовать CCScaleBy.Вы можете попробовать что-то вроде этого ...

CCScaleBy * yourSprite = [CCScaleBy actionWithDuration: .01 scaleX: .95 scaleY: 1.0f];

Это будет масштабироватьсяВаш спрайт уменьшается на 5% каждый раз, когда его вызывают.Затем вы можете заменить его новым изображением, когда оно достигнет того, что вы считаете его самой маленькой точкой пикселя.С длительностью, возможно, придется поиграться, но я подумал, что это поможет.

0 голосов
/ 22 ноября 2011

Каждый раз, когда вы манипулируете изображением, вы теряете информацию.

Лучшим подходом было бы всегда изменять размер оригинала и просто каждый раз изменять размер, а не постоянно изменять размер результата последней операции изменения размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...