【问题标题】:Cocos2d schedule interval decreaserCocos2d 调度间隔减少器
【发布时间】:2012-02-07 18:48:53
【问题描述】:

我做了一个简单的计时器,但试图随着时间的推移增加计时器的速度,所以我基本上希望计时器的间隔为 1.0,每 10 秒我希望计时器的间隔减少 0.1

我该怎么做呢?

[self schedule:@selector(tick:)interval:1.0];

在初始化部分

-(void)tick:(ccTime)dt{
myTime = myTime+1;
totalTime = myTime; 

[timeLabel setString:[NSString stringWithFormat:@"%i", totalTime]]; 
}

那是计时器。

这是一个间隔为 1.0 秒的基本计时器,但我希望间隔每 10 秒减少 10%。

【问题讨论】:

    标签: iphone c object ios4 cocos2d-iphone


    【解决方案1】:

    在.h文件中

    @property(nonatomic,readWrite)CGFloat lastUpdatedInterval;
    

    在.m文件中,初始化self.lastUpdatedInterval = 1.0;

    然后调用

    [self schedule:@selector(tick:)interval:self.lastUpdatedInterval];
    

    在更新循环中,

    -(void)tick:(ccTime)dt
    {
        if(myTime>9 && (myTime%10 == 0))
        {
          [self unschedule:@selector(tick:)];
          self.lastUpdatedInterval = self.lastUpdatedInterval - (self.lastUpdatedInterval*0.1);
          [self schedule:@selector(tick:)interval:self.lastUpdatedInterval];
        }
    
    myTime = myTime+1;
    totalTime = myTime; 
    
    [timeLabel setString:[NSString stringWithFormat:@"%i", totalTime]]; 
    
    }
    

    【讨论】:

    • 只需添加更多条件以防止它变为负数。
    • 'code' @property(nonatomic,readWrite)CGFloat lastUpdatedInterval; “代码”你能告诉我那是做什么的吗?谢谢
    • 我试过了,但它说:属性 'lastUpdatedInterval' 需要定义方法 'setLastUpdatedInterval:' - 使用 (at)synthesize、(at)dynamic 或提供方法实现。对不起,我对此很陌生。没有更简单的方法吗?
    • 在.m文件中,写@synthesize lastUpdatedInterval; @实现后
    • 谢谢伙计,我已经开始工作了,但我的计时器似乎跳过了每个数字 1!哈哈!所以它会去 1..2..3..4..5..6..7..8..9..10..blink..12..etc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2019-08-12
    • 2014-03-10
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多