2014-02-20 88 views
0

我正在嘗試創建一個類似於Jetpack Joyride的遊戲。在某些時候,它會有一個物體,玩家必須在兩者之間飛行 - 就像飛鳥在飛翔。我已經設法創建管道對象,但是我希望對象在屏幕上上下移動,使得玩家難以在其間跳轉。我的代碼放置對象是:iOS遊戲上下移動物體

// Maths 
float availableSpace = HEIGHT(self) - HEIGHT(floor); 
float maxVariance = availableSpace - (2*OBSTACLE_MIN_HEIGHT) - VERTICAL_GAP_SIZE; 
float variance = [Math randomFloatBetween:0 and:maxVariance]; 

// Bottom object placement 
float minBottomPosY = HEIGHT(floor) + OBSTACLE_MIN_HEIGHT - HEIGHT(self); 
float bottomPosY = minBottomPosY + variance; 
bottomPipe.position = CGPointMake(xPos,bottomPosY); 
bottomPipe.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0,0, WIDTH(bottomPipe) , HEIGHT(bottomPipe))]; 
bottomPipe.physicsBody.categoryBitMask = blockBitMask; 
bottomPipe.physicsBody.contactTestBitMask = playerBitMask; 

// Top object placement 
topPipe.position = CGPointMake(xPos,bottomPosY + HEIGHT(bottomPipe) + VERTICAL_GAP_SIZE); 
topPipe.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0,0, WIDTH(topPipe), HEIGHT(topPipe))]; 

topPipe.physicsBody.categoryBitMask = blockBitMask; 
topPipe.physicsBody.contactTestBitMask = playerBitMask; 

我將如何去上下移動對象? 感謝您的幫助:)

+0

你知道如何移動節點嗎? – prototypical

回答

2

節點上的所有這些操作都是使用SKAction對象完成的。請閱讀SKAction類here

在你的情況下,使用SKAction移動節點上下會去是這樣的:

SKAction *actionMoveUp = [SKAction moveByX:0 y:20 duration:0.5]; 
SKAction *actionMoveDown = [actionMoveUp reversedAction]; 
SKAction *actionMoveUpDown = [SKAction sequence:@[actionMoveUp, actionMoveDown]]; 
SKAction *actionMoveDownRepeat = [SKAction repeatActionForever:actionMoveUpDown]; 

[bottomPipe runAction:actionMoveDownRepeat]; 
[topPipe runAction:actionMoveDownRepeat]; 

上面給出會使你的頂部和底部管道的因數有漲有跌的代碼重複20個像素。