Iphone 屏幕上的CGRect网格?

Iphone 屏幕上的CGRect网格?,iphone,objective-c,ios,cocos2d-iphone,Iphone,Objective C,Ios,Cocos2d Iphone,我想在屏幕中央创建一个矩形网格,在边缘留下一些空间。这种需求的产生是因为我在随机点喷出不同的精灵,它们不断地在其他精灵之上产卵。所以我想,如果有一种方法可以创建一个类来创建网格,并返回一个随机的矩形并标记它已被占用,只要精灵停留在该矩形中,并在之后释放它 如果我能得到一些帮助或任何提示,那就太好了。实现这一目标的任何其他解决方案都是受欢迎的 谢谢。您可以为嵌套两个循环,一个用于行,一个用于列,使它们都运行5次,在每个循环中,将x位置和y位置增加屏幕宽度和高度的五分之一,并将这些坐标放入一个cGc

我想在屏幕中央创建一个矩形网格,在边缘留下一些空间。这种需求的产生是因为我在随机点喷出不同的精灵,它们不断地在其他精灵之上产卵。所以我想,如果有一种方法可以创建一个类来创建网格,并返回一个随机的矩形并标记它已被占用,只要精灵停留在该矩形中,并在之后释放它

如果我能得到一些帮助或任何提示,那就太好了。实现这一目标的任何其他解决方案都是受欢迎的


谢谢。

您可以为嵌套两个
循环,一个用于行,一个用于列,使它们都运行5次,在每个循环中,将x位置和y位置增加屏幕宽度和高度的五分之一,并将这些坐标放入一个
cGcorrect
。这可以满足您的需要。

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

谢谢@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;
}
-(void)makeCGRectArray{
rectsArray=[[NSMutableArray alloc]init];

对于(int x=30;x感谢@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;
}
-(void)makeCGRectArray{
rectsArray=[[NSMutableArray alloc]init];

对于(int x=30;x您是否要求我们为您编写代码?本网站是针对特定的编程问题,而不是为您编写项目代码的模糊邀请。我可以自己编写代码,只是需要一些关于如何实现上述目标的帮助。您能说得更具体一点吗?您需要帮助的具体点是什么?我想知道吃一个长方形网格,我可以在其中生成我的精灵,这样它们就不会相互重叠。通过划分屏幕宽度和高度,可能就像一个5X5的网格。你是在要求我们为你编码吗?这个网站是针对特定的编程问题,而不是模糊的邀请为你编码你的项目我可以自己编码,只需要一些他lp关于如何实现我上面提到的目标。你能说得更具体一点吗?你需要帮助的具体点是什么?我想创建一个矩形网格,我可以在其中生成精灵,这样它们就不会相互重叠。通过划分屏幕宽度和高度,可能类似于5X5的网格。