我正在尝试为我的游戏创建一种简单的方法,但是我不确定如何实现它。我现在有一个从.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/