【发布时间】:2014-11-04 06:10:37
【问题描述】:
在水平移动的gameScene背景中,它工作正常,但我想根据分数的增加缓慢和快速地移动背景,我以这种方式进行,改变nstimeinterval但我看不到改变背景移动缓慢和快速它只是正常,如果这种方式是错误的,请帮助我。
SKTexture *backgroundTexture = [SKTexture textureWithImageNamed:@"background10"];
NSTimeInterval _move;
int _gameScore;
if (_gameScore>=5) {
_move =0.09;
}else{
_move = 0.02;
}
SKAction *movBg = [SKAction moveByX:-backgroundTexture.size.width*2 y:0 duration:_move*backgroundTexture.size.width];
SKAction *resetBg =[SKAction moveByX:backgroundTexture.size.width*2 y:0 duration:0];
SKAction *movebackgroundforever =[SKAction repeatActionForever:[SKAction sequence:@[movBg,resetBg]]];
for (int i= 0; i<2 + self.frame.size.width/(backgroundTexture.size.width*2 ); ++i) {
SKSpriteNode* sprite = [SKSpriteNode spriteNodeWithTexture:backgroundTexture];
[sprite setScale:1.0];
sprite.zPosition = -20;
sprite.anchorPoint = CGPointZero;
sprite.position = CGPointMake(i* sprite.size.width, 0);
[sprite runAction:movebackgroundforever];
[_bgLayer addChild:sprite];
【问题讨论】:
-
我认为你需要将
_gameScore直接乘以_move,为什么要乘以backgroundTexture.size.width。 -
你能编辑代码吗?
-
因为它的时间间隔随着宽度水平移动
-
但是你是在duration参数中传递的,这里我们只需要提供动画/动作的持续时间。
-
是的,我传递了持续时间参数来移动背景,无论我提供什么时间,背景都会乘以宽度
标签: ios objective-c xcode5 sprite-kit