我正在尝试为我的游戏创建一种简单的方法,但是我不确定如何实现它。我现在有一个从.1开始的浮点数,我希望它在特定时间范围内增加到1。

可以说这个时间范围是0.5秒。现在,很明显,将在更新循环上调用此方法以每次都增加它,但是我不确定从哪里开始。

我讨厌发布没有任何代码的问题,但我不知道它的内容。我将结果数除以deltaTime吗?任何意见,将不胜感激。

最佳答案

如果此float是CCNode后代的属性,请尝试CCActionTween:这是来自文档的摘录(版本2.1):

 /** CCActionTween

 CCActionTween is an action that lets you update any property of an object.
 For example, if you want to modify the "width" property of a target from 200 to 300 in 2
 seconds, then:

 id modifyWidth = [CCActionTween actionWithDuration:2 key:@"width" from:200 to:300];
 [target runAction:modifyWidth];

 Another example: CCScaleTo action could be rewriten using CCPropertyAction: (sic) CCActionTween

// scaleA and scaleB are equivalents
 id scaleA = [CCScaleTo actionWithDuration:2 scale:3];
 id scaleB = [CCActionTween actionWithDuration:2 key:@"scale" from:1 to:3];

 @since v0.99.2
 */


编辑:

示例:假设您有一个Cannon类,它是从CCNode派生的(如下面的.h所示)

@interface Cannon:CCNode {

    float _bulletInitialVelocity;
    float _firingRate;
}

@property (nonatomic, readwrite) float bulletInitialVelocity;
@property (nonatomic, readwrite) float firingRate;
@end

in the cannon logic, you could

CCTweenAction *fr = [CCTweenAction actionWithDuration:60.0 key:@"firingRate" from:.25 to:.75];
[self runAction:fr];


这样可以在60秒内提高点火速度。您可以对子弹的初始速度执行相同的操作。请注意,这些属性不是CCNode属性,而是一些通过扩展CCNode创建的属性。我用旧样式写的,因此您可以看到这些属性实际上是由iVar“支持”的。

关于ios - 增加一定时间的 float ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25194855/

10-11 18:28