2014-02-22 6 views
1

문제가 발생하여 그 답을 찾을 수 없습니다. 나는 iOS 게임을 만들기 위해 Xcode의 SK 템플릿으로 작업 중입니다. 나는 초보자이기 때문에 나와 함께 곰.시퀀스를 실행할 때 동작 매개 변수를 동적으로 할당합니다.

SKAction *releaseBubbles = [SKAction sequence:@[ 
                [SKAction performSelector:@selector(createBubbleNode)onTarget:self], 
                [SKAction waitForDuration:speed]]]; 
[self runAction: [SKAction repeatAction:releaseBubbles 
             count:300]]; 

-(id)initWithSize:(CGSize)size { 
    if (self = [super initWithSize:size]) { 

에 내가 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 내 게임 레벨을 변경하고 난 레벨을 변경할 때 또한 속도 매개 변수를 변경해야 실행 :

기본적으로이 코드를 가지고있다. 물론 장면이 초기화 될 때 액션이 시작되고 매개 변수를 전환하지 않는다고 생각하기 때문에 이것은 작동하지 않습니다.

레벨을 기준으로 특정 페이스로 나타나는 거품으로 화면을 계속 채우면됩니다. 나는 중지하고 어떻게 든 액션 시퀀스를 다시 시작해야 할 것처럼 나에게 것 때문에

은 정말

당신의 소중한 의견을 기대 ... 어떻게이 문제를 해결하는 단서가 없다.

답변

1

화면에 거품이 계속해서 채워지려면 방법을 SKScene 사용할 수 있습니다. 방법은 다음과 같습니다.

먼저 풍선을 마지막으로 추가 할 때 날짜를 저장할 속성을 추가하십시오. 또한 필요

-(void)createBubbleNode 
{ 
    // Your code here 

    // Set the date to now. 
    _lastBubbleCreationDate = [NSDate date]; 
} 

: 마지막으로 거품을 만들 때 시간을 저장할 필요가 당신의 createBubbleNode 방법에 마지막으로

-(void)update:(CFTimeInterval)currentTime 
{ 
    // Create new bubble every 5s. 
    if (ABS([_lastBubbleCreationDate timeIntervalSinceNow]) > 5) 
    { 
     [self createBubbleNode]; 
    } 
} 

:

@property(nonatomic, strong) NSDate *lastBubbleCreationDate; 

그런 다음, 당신의 update: 방법을 변경 createBubbleNode을 호출하여 _lastBubbleCreationDate의 초기 값을 설정하십시오. didMoveToView: 메소드에서이 작업을 수행 할 수 있습니다. 그냥 장면 구현에이 방법을 추가

- (void)didMoveToView:(SKView *)view 
{  
    // Creates first bubble and sets the initial value of the _lastBubbleCreationDate 
    [self createBubbleNode]; 
} 

다음 수준에서 방금 더 자주 게임을 더 어렵게 만들 것이다 거품을 만들 수있는 5s 값을 변경할 수 있습니다.