【发布时间】:2014-02-28 06:27:06
【问题描述】:
我已经像这样创建了一个 SKSpriteNode:
//Easy Button Image
_easyImage = [[SKSpriteNode alloc]initWithImageNamed:@"smiley.png"];
_easyImage.position = CGPointMake(-20,screenHeight / 2);
_easyImage.name = easyBtnName;
_easyImage.physicsBody.affectedByGravity = NO;
_easyImage.zPosition = 10;
[self addChild:_easyImage];
我正在尝试在触摸开始方法中单击后为图像着色。我有一个对 SKSpriteNode 属性的引用,所以一旦我看到它被点击,我就会执行这段代码
SKAction *pulseRed = [self colorizeChoosenSpriteNodeWithColor:[SKColor redColor]];
[_easyImage runAction: pulseRed];
引用了这个方法
-(SKAction*)colorizeChoosenSpriteNodeWithColor:(SKColor*)color
{
SKAction *changeColorAction = [SKAction colorizeWithColor:color colorBlendFactor:1.0 duration:0.3];
SKAction *waitAction = [SKAction waitForDuration:0.2];
SKAction *selectAction = [SKAction sequence:@[changeColorAction, waitAction]];
return selectAction;
}
但是,我的图像颜色永远不会改变。我可以完全改变图像的纹理,但不能只改变颜色。
编辑:我删除了一些分散注意力的代码。我已经调试了代码,它肯定可以正确执行,但我没有得到预期的结果。
更新:颜色出现在我发现的图像下方。
左边的图片显示缺少图片,右边的图片使用正确的图片。只有在不显示图像时才会出现颜色。我怎样才能真正为 spriteNode 纹理着色?
【问题讨论】:
标签: ios objective-c sprite-kit