【问题标题】:Set minimum duration for Sprite Kit action设置 Sprite Kit 动作的最短持续时间
【发布时间】:2014-06-16 03:23:11
【问题描述】:

我在我的 Sprite Kit 游戏中实现了以下方法:

-(void) sprayWater{  
    [self runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:self.runWasserFrames timePerFrame:0.05 resize:YES restore:YES]] withKey:@"water"];    
}

将此动作的最短时间设置为 1.5 秒的最优雅的方法是什么? 我尝试了几种方法,但到目前为止它们都不适合我。

【问题讨论】:

  • 最短时间是什么意思?一个动作要么无限期地运行(通过 repeatforever),要么持续特定的持续时间
  • 我在上面的touchesBegan-Method中调用了这个方法。只要按下屏幕,主角就会喷水。一切正常,但是当您高频按下屏幕时,帧速率会下降到 30fps。我想通过设置此操作的最短时间来防止这种情况发生,在该时间中调用该方法并且同时触摸是无用的,因此它们不会影响帧速率。具体持续时间不符合我的需要,因为只要按住屏幕就应该喷水。想不出有什么办法可以解决这个问题……

标签: sprite-kit duration skaction


【解决方案1】:

如果我正确理解了这个问题,你应该尝试这样的事情:

-(void) sprayWater
{  

        if ([self actionForKey:@"water"] == nil)
        {
             [self runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:self.runWasserFrames timePerFrame:0.05 resize:YES restore:YES]] withKey:@"water"];   
        } 
}

逻辑是,如果水已经在流,不要创建另一个动作。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多