HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 带图像的SKSpriteNode不会着色大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个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@L_696_4@的引用,所以一旦我看到它被单击,我执行此代码

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纹理?

解决方法

我认为你在触摸开始方法中缺少一个for循环.你的触摸开始方法应如下所示:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
     for (UITouch *touch in touches) {   
     if ([node.name isEqualToString:easyBtnName]){
         _easyImage.color = [SKColor redColor];
         _easyImage.colorBlendFactor = 1;
         SKAction *pulseRed = [self colorizeChoosenSpriteNodeWithColor:[SKColor redColor]];
    [_easyImage runAction: pulseRed];
    } }
    }

大佬总结

以上是大佬教程为你收集整理的ios – 带图像的SKSpriteNode不会着色全部内容,希望文章能够帮你解决ios – 带图像的SKSpriteNode不会着色所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。