这是我的代码,用于从左向右移动的星星,我在在线教程中使用了它:
SKTexture* starsTexture = [SKTexture textureWithImageNamed:@"stars"];
starsTexture.filteringMode = SKTextureFilteringNearest;
SKAction* movestarsSprite = [SKAction moveByX:-starsTexture.size.width*2 y:0 duration:0.02 * starsTexture.size.width*2];
SKAction* resetstarsSprite = [SKAction moveByX:starsTexture.size.width*2 y:0 duration:0];
SKAction* movestarsSpritesForever = [SKAction repeatActionForever:[SKAction sequence:@[movestarsSprite, resetstarsSprite]]];
for( int i = 0; i < 2 + self.frame.size.width / ( starsTexture.size.width * 2 ); ++i ) {
SKSpriteNode* starsSprite = [SKSpriteNode spriteNodeWithTexture:starsTexture];
[starsSprite setScale:2.0];
starsSprite.position = CGPointMake(i * starsSprite.size.width, starsSprite.size.height / 2);
[starsSprite runAction:movestarsSpritesForever];
[self addChild:starsSprite];
我是编码的初学者,现在星星重复出现在屏幕底部,我希望它们像星星一样出现在屏幕顶部。为了实现该目标,我应该改变什么?请帮忙!
最佳答案
SpriteKit中的坐标系在屏幕左下角有0,0,因此您需要增加节点位置的y坐标以将其移至更高位置。
您目前将它们设置为:starsSprite.position = CGPointMake(i * starsSprite.size.width, starsSprite.size.height / 2);
尝试:starsSprite.position = CGPointMake(i * starsSprite.size.width, self.size.height - starsSprite.size.height / 2);