//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不会着色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)