2014-07-20 1 views
0

검은 색으로 계속 표시됩니다.CCMotionStreak setColor는 cocos2d 3.1에서 작동하지 않습니다.

- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    [self beginMotionStreak]; 
} 

- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    [self addMotionStreak:[touch locationInWorld]]; 
} 

- (void)touchEnded:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    [self endMotionStreak]; 
} 

- (void)beginMotionStreak 
{ 
    CCMotionStreak *streak = [CCMotionStreak streakWithFade:10 minSeg:1.0 width:5.0 color:[CCColor greenColor] texture:nil]; 
    [self addChild:streak z:1 name:@"streak"]; 
} 

- (void)addMotionStreak:(CGPoint)touchLoc 
{ 
    CCMotionStreak *streak = (CCMotionStreak *)[self getChildByName:@"streak" recursively:YES]; 
    [streak setColor:[CCColor redColor]]; 
    [streak setPosition:touchLoc]; 
} 

- (void)endMotionStreak 
{ 
    [self removeChildByName:@"streak" cleanup:YES]; 
} 

어떤 조언 :

다음은 내 데모 코드? 감사합니다.

답변

0

은 움직임 줄무늬 모양으로 사용되는 질감을 지정해야합니다 (). CCMotionStreak를 만들 때 그냥 작은 원형을 만들거나 흰색 이미지를 직사각형과 텍스처로 지정 : 마지막 매개 변수의 이름은 textureFilename하지 texture 될 것

- (void)beginMotionStreak 
{ 
    CCMotionStreak *streak = [CCMotionStreak streakWithFade:10 minSeg:1.0 width:5.0 color:[CCColor greenColor] textureFilename:@"motion_streak.png"]; 
    [self addChild:streak z:1 name:@"streak"]; 
} 

주를, 그렇지 않으면 당신은 첫 번째 텍스처를 직접로드하고 인스턴스를 전달해야 파일 이름 대신.

왜 텍스처가 흰색이어야합니까? 나중에 설정하는 색상에 텍스처의 색상이 곱해지기 때문입니다.

이미지의 모양이 확실하지 않은 경우 그래픽 편집기에서 다른 이미지를 만들어보세요. 나는 Gimp를 사용해 왔지만 그렇게 간단한 작업을하는 것은 과잉이다.

+0

대단히 흥미 롭습니다. 감사 – goofansu