CGRect Grid在屏幕上?

时间:2012-04-26 16:28:53

标签: iphone objective-c ios cocos2d-iphone

我想在屏幕中心创建一个矩形网格,在边缘留下一些空间。出现这种情况的必要性是因为我在随机点喷出不同的精灵,并且它们会继续产卵。所以我想如果有一种方法可以创建一个创建网格的类,并返回一个随机的rect,并在精灵停留在该矩形中时将其标记为占用,并在之后使其自由。

如果我能得到一些帮助或任何提示,那将会很棒。任何其他解决方案也是受欢迎的。

感谢。

2 个答案:

答案 0 :(得分:1)

你可以嵌套两个for循环,一个用于行,一个用于列,使它们都运行5次,并且在每个循环中将x位置和y位置增加五分之一的宽度和高度。屏幕并将这些坐标放入CGRrect。那会做你想要的。

答案 1 :(得分: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;
}