它一直显示黑色。
以下是我的演示代码:
- (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 :(得分:0)
您需要指定用作运动条纹形状的纹理。只需创建小的圆形或矩形白色图像,并在创建CCMotionStreak
时将其指定为纹理:
- (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"];
}
请注意,最后一个参数名称为textureFilename
而不是texture
,否则您需要先自己加载纹理并传递实例而不是文件名。
为什么纹理应该是白色?因为您稍后设置的颜色会与纹理的颜色相乘。
如果您不确定图像的形状,请尝试在任何图形编辑器中创建不同的图像。我使用过Gimp,但这对于这么简单的任务来说太过分了。