Cocos2D меняет цвета в последнем ряду пикселей в спрайте? - PullRequest
0 голосов
/ 02 октября 2010

Я никогда раньше не видел эту проблему, она очень странная. Просто интересно, сталкивался ли кто-нибудь еще с этим.

alt text

Я добавил спрайт в свою игру, он должен быть в верхнем левом углу поля для размещения текста. Я хочу сделать его масштабируемым, не теряя ничего, поэтому я разбил его на разделы. На изображении сверху изображение сверху - само изображение, а затем изображение внизу - изображение, когда оно рисуется в симуляторе iPhone.

Есть идеи, почему последний столбец пикселей справа изменяется? Я не масштабировал изображение вообще.

Ответы [ 2 ]

2 голосов
/ 02 октября 2010

Я не знаю о Cocos2D, но в общих чертах вы здесь нарисовали изображение в положении, не кратном одному пикселю.

Следовательно, даже без масштабированияВы пересэмплировали изображение в сетке, которая не совпадает с исходными данными изображения, из-за чего все пиксели немного не совпадают.Это просто правый край - наиболее очевидный случай, так как повторная выборка оставляет здесь частичную прозрачность.Но посмотрите, например, на два ряда фиолетовых пикселей на границе: они не одинаковы, потому что вертикальное выравнивание также отключено, в результате чего небольшое количество цвета от серой границы под ним сливается в нижний ряд фиолетового цвета..

1 голос
/ 03 октября 2010

Хорошо, на самом деле я понял это на этот раз. Cocos2D добавляет немного сглаживания в текстуры CCT. Чтобы остановить это, вам нужно позвонить так:

[[mySprite texture] setAliasTexParameters];

чтобы включить его, позвоните по этому номеру:

[[mySprite texture] setAntiAliasTexParameters];

...