2011-11-15 2 views
0

투명 배경을 가진 png에서 생성 된 CCSprite가 있습니다.기본 색상을 사용하지 않고 CCSprite 채색

스프라이트의 실제 색상이 추가해야하는 각 색상의 양이 없어도이 스프라이트에 색상을 적용 할 수 있기를 원합니다.

mySprite.color = ccc3 (200,200,255);

I`ve이 시도

내 스프라이트에 약간의 푸른 색 느낌을 추가하려는 시도가 있지만 스프라이트의 기존 색상을 기반으로 표시 될 색조의 양을 설정하여 작동하므로 내 스프라이트는 사실상 아무런 파란색을 갖지 않습니다 그 결과 (대부분은 노란색 임) 결과 효과는 매우 개략적이며, 모든 것이 실제로 어두워지고, 약간의 청색 색조가 있지만, 원하는 것은 아닙니다.

이 경우 나를위한 이상적인 효과는 매우 낮은 알파로 밝은 파란색 마스크를 추가하는 것입니다.

스프라이트를 작성하지 않고도 쉽게 할 수 있습니까?

CCTexture2D를 사용해 보았지만 색상이있는 작업 방법이 없으므로 운이 없었습니다. 대부분의 자습서는 이미지 파일에서 텍스처를 만드는 방법 만 가르칩니다.

답변

1

원래의 스프라이트 코드에서는 현혹시키기가 어렵습니다. 또 다른 옵션은 다음과 같습니다

  • 이 흰색 스프라이트의 색 속성이 이제
  • 전달 RGB 값에 정확히 반응 할
  • 단지 원래 스프라이트의 흰색 개요 버전 인 새로운 스프라이트를 생성
  • 그래서 흰색 스프라이트에 밝은 파란색 값을 전달하고 올바르게
  • 을 불투명도를 설정 원래 스프라이트

모든 좋은에 오버레이?

+0

답변 해 주셔서 감사합니다! 그 일을 피하려고했지만 CCSprite는 매우 원시적이어서 시도해 볼 것입니다. 그런 다음 몇 가지 질문이 제기됩니다. 이미지를 가진 정사각형 PNG와 투명한 배경이므로이 흰색 복제본을 어떻게 만듭니 까? 이 두 가지 결과 스프라이트를 사용하여 스프라이트를 만들거나 단일 객체에 블렌드 할 수 있습니까? 스프라이트를 많이 움직이면 둘 모두를 추적하고 두 가지 모두에 대해 동일한 작업을 수행하는 것이 어려울 것입니다. – Marcelo

+0

아, 네가 스프라이트를 작곡하는 걸 피하기를 원한다. 오 잘. 어쨌든, CCSprites에 자식을 추가 할 수 있습니다. 이 아이들은 부모에게 행해진 모든 것을 존중합니다. 제 스프라이트의 주변에 테두리와 그림자를두기 위해 똑같은 일을하고 있습니다.하지만 제 경우에는 원본 뒤에 스프라이트를 넣고 있지만, 앞면에 스프라이트를 넣을 수도 있습니다. Photoshop에서 흰색 스프라이트를 만들려면 투명 영역에서 마술 지팡이를 사용하십시오. -> CTRL + SHIFT + I -> delete -> 흰색으로 채 웁니다. 그런 다음 Cocos2D에서 원래대로 스프라이트의 중심을 설정하고 자식으로 추가합니다. –

+0

감사합니다. 그게 효과가있어! 너무 늦어서 지금 시도해 보지 만, 나는 내일 그것을 시도하고 당신에게 피드백을 줄 것이다! – Marcelo

0

이것을 달성 할 수있는 유일한 방법은 스프라이트와 적절한 OpenGL 혼합 기능을 오버레이 (마스킹)하는 것입니다. "라이트 블루 마스크를 추가하십시오"라고 말하면 당신이해야 할 일입니다. 마스크 스프라이트와의 블렌딩이 어떻게 작동하는지, 그리고이를 사용하여 달성 할 수있는 것을 이해하는 경우에만 visual blendfunc tool이 도움이 될 것입니다. 그러나 Cocos2D에 의한 내장 지원은 없기 때문에 cocos2d 노드의 -(void) draw {} 메소드 내에서 순수 OpenGL로 되돌려 야합니다.

색조 변경 (색상 속성 변경)은 4 개의 모든 정점의 정점 색상을 변경하여 전체 이미지의 RGB 채널 만 수정합니다.

+0

답변 해 주셔서 감사합니다. iOS 개발을 처음 접했을 때 알려 주겠다 : 기본적으로 Cocos2d CCSprite 클래스를 상속하고, draw 메소드를 오버라이드하고, super 메소드를 호출하고, 바로 아래에 더러운 작업을 수행하겠다고 말했습니까? 이 해킹이 아이디어를 얻는 것처럼 보이게하는 방법 몇 줄을 초안 수 있습니까? – Marcelo

관련 문제