2014-08-31 5 views
0

저는 첫 번째 Xcode 프로젝트를 시작했습니다. 두 개의 타이머를 사용하여 화면에서 앞뒤로 움직이는 사각형을 만들려고합니다. 결국 사용자가 개체를 멈출 수있게 만들기 위해서입니다. 화면상의 버튼을 탭하여 사각형을 나타냅니다. 그러나 지금은 사각형을 화면의 오른쪽으로 이동하여 뒤로 이동했지만 불행히도 화면의 다른 쪽에서 멈출 수는 없습니다.화면에서 물건을 앞뒤로 움직입니까?

내 코드는 지금 이것이다 :

- (void)viewDidLoad 
{ 
    Square.center = CGPointMake(-9, 246); 
    SquareTimer1 = [NSTimer scheduledTimerWithTimeInterval:0.004 target:self selector:@selector(moveSquare1)userInfo:nil repeats:YES]; 

    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void)moveSquare1 
{ 
    Square.center = CGPointMake(Square.center.x + 0.3, Square.center.y); 

    if (Square.center.x > 290){ 
    [SquareTimer1 invalidate]; 
    SquareTimer1 = [NSTimer scheduledTimerWithTimeInterval:0.004 target:self selector:@selector(moveSquare2) userInfo:nil repeats:YES]; 
    } 

    if (Square.center.x < -9){ 
     [SquareTimer1 invalidate]; 

     } 
} 

-(void) moveSquare2 
{ 
    Square.center = CGPointMake(Square.center.x - 0.3, Square.center.y); 
} 

작동하지 않는 내 코드의 유일한 부분은 내 두 번째 if 문입니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

이렇게해야합니다. 당신이 어떤 의심이 있으면 알려주세요 moveSquare1에서 그 두 번째 if를 제거하고 moveSquare2

- (void)viewDidLoad 
{ 
    Square.center = CGPointMake(-9, 246); 
    SquareTimer1 = [NSTimer scheduledTimerWithTimeInterval:0.004 target:self selector:@selector(moveSquare1)userInfo:nil repeats:YES]; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)moveSquare1 
{ 
    Square.center = CGPointMake(Square.center.x + 0.3, Square.center.y); 

    if (Square.center.x > 290){ 
     [SquareTimer1 invalidate]; 
     SquareTimer1 = [NSTimer scheduledTimerWithTimeInterval:0.004 target:self selector:@selector(moveSquare2) userInfo:nil repeats:YES]; 
    } 
} 

-(void) moveSquare2 
{ 
    Square.center = CGPointMake(Square.center.x - 0.3, Square.center.y); 

    if (Square.center.x < -9){ 
     [SquareTimer1 invalidate]; 

     // If you want to move the Square back in the right side. Otherwise, comment this below line. 
     SquareTimer1 = [NSTimer scheduledTimerWithTimeInterval:0.004 target:self selector:@selector(moveSquare1) userInfo:nil repeats:YES]; 
    } 
} 

에 넣습니다.

관련 문제