ios – 带图像的SKSpriteNode不会着色

ios – 带图像的SKSpriteNode不会着色,第1张

概述我创建了一个SKSpriteNode,如下所示: //Easy Button Image_easyImage = [[SKSpriteNode alloc]initWithImageNamed:@"smiley.png"];_easyImage.position = CGPointMake(-20,screenHeight / 2);_easyImage.name = easyBtnNam 我创建了一个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纹理?

解决方法 我认为你在触摸开始方法中缺少一个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不会着色所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1023152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存