2014-02-20 2 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 픽셀 반복.

관련 문제