2012-04-26 7 views
1

화면 가운데에 사각형의 격자를 만들고 가장자리에 약간의 간격을두고 싶습니다. 내가 임의의 지점에서 다른 스프라이트를 뿌리고 다른 곳에서 스프라이트를 계속 먹고 있기 때문에 그 필요성이 발생합니다. 그리드를 생성하고 무작위로 rect와 마크를 리턴하는 클래스를 생성하는 방법이 있다면 스프라이트가 오랫동안 그 자리에 머물러 있고 그것을 자유롭게 만들 때 점령했다고 생각했습니다.CGRect Grid?

내가 도움이나 조언을 얻을 수 있다면 좋을 것입니다. 이것을 달성하는 다른 해결책도 환영합니다.

감사합니다.

+0

코드 작성을 요청하는 사람이 있습니까? 이 사이트는 특정 프로그래밍 문제에 대한 것이므로 모호하지 않은 초대장을 통해 프로젝트를 코딩 할 수 있습니다. – johnbakers

+0

코딩을 직접 할 수 있습니다. 위에서 언급 한 내용을 달성하는 방법에 대한 도움이 필요합니다. – jahan

+0

조금 더 구체적으로 알려주시겠습니까? 도움이 필요한 것은 정확히 무엇입니까? – starbugs

답변

1

두 개의 for 루프를 중첩 할 수 있습니다. 하나는 행에, 다른 하나는 열에 대해 다섯 번 실행하고 각 루프에서 x 위치와 y 위치를 화면의 너비와 높이의 1/5만큼 증가시키고 이 좌표는 CGRrect입니다. 그것은 당신이 원하는 것을 할 것입니다.

0

감사합니다. @andrewx에게 도움을 요청합니다. 주어진 범위에서 CGRect를 생성 한 다음 임의의 것을 반환합니다.

-(void) makeCGRectArray{ 

rectsArray = [[NSMutableArray alloc] init]; 

for (int x = 30; x<=420; x= x+60) { 
    for (int y=40; y<=280; y=y+40) { 

     CGRect newRect = CGRectMake(x, y, 60, 40); 
     [rectsArray addObject:[NSValue valueWithCGRect:newRect]]; 
    } 
} 

[self getRandomCgrect:rectsArray]; 

} 

-(CGRect) getRandomCgrect:(NSMutableArray*) rectArray{ 

    NSInteger randomPoint = (arc4random() % (49)); 

    CGRect randomRect = [[rectsArray objectAtIndex:randomPoint] CGRectValue]; 

    self.isOccupied = YES; 
    return randomRect; 
}