首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪碧套件SKAction问题

雪碧套件SKAction问题
EN

Stack Overflow用户
提问于 2014-03-20 23:44:28
回答 1查看 152关注 0票数 0

在我的简单游戏中,我正在为一个商店区做按钮。当按钮被点击时,我想简短地强调一下它变白了一段时间。我正在使用SKActions来完成这个任务。下面是我代码的相关部分:

代码语言:javascript
复制
@interface TheScene()
{
    ...
    SKAction *visualFeedbackSequence;
    SKSpriteNode *buttonForFeedback;
    CGRect orangeCheckboxRect;

    ...
}
...
@implementation TheScene
...
-(void)initWithSize:(CGSize)size {
    ...
    buttonForFeedback = [SKSpriteNode spriteNodeWithImageNamed:@"button"];
    SKAction *makeItWhite = [SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:0.8 duration:0.85];
    SKAction *andBackAgain = [SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:0.0 duration:0.01];
    visualFeedback = [SKAction sequence:@[makeItWhite, andBackAgain]];
    orangeCheckboxRect = buttonForFeedback.frame;

...
return self;
}
...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
...
if(CGRectContainsPoint(orangeCheckboxRect, location) ) {
        NSLog(@"Running vis feedback on orange check"); //Inserted for debugging
        [orangeCheckbox runAction:visualFeedback];
        if([shopController hasUpgrade:@"theupgrade"]) {
            [shopController setCurrentUpgrade:@"theupgrade"];

        }
...

注意:所有的shopController内容都是返回是或否,如果他们有选择的升级。

我的问题是,当我第一次点击我正在使用的按钮时,效果就会显现出来。但是任何后续的水龙头,效果都不会显现出来。我在if语句中放入的调试NSLog确实执行了,这意味着操作应该在它之后直接运行。我想我需要改变这里使用的SKActions,但我已经尝试了许多相关操作的组合,但都没有成功。这是SKActions已知的bug,还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 14:21:57

由于您保留了对反馈操作的引用,所以每次运行它时都需要复制:

代码语言:javascript
复制
[orangeCheckbox runAction:[visualFeedback copy]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22547483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档