我在具有随机位置的场景上生成随机精灵:
-(void)addWRight
{
int randNo = arc4random()%5;
int randType = arc4random()%3;
for(int i = 0; i <= randNo; i++)
{
NSString *strSprite = @"1.png";
if(randType == 0)
{
strSprite = @"1.png";
}
else if(randType == 1)
{
strSprite = @"2.png";
}
else
{
strSprite = @"3.png";
}
int minX = 130;
int maxX = 240;
int randX = arc4random() % (maxX - minX) + minX;
CCSprite *spr = [CCSprite spriteWithFile:strSprite];
spr.position = ccp(randX, 200);
[self addChild:spr];
[whiteArray addObject:spr];
}}
我根据randNo的结果添加精灵。因此,如果例如randNo值为2,那么将添加3个精灵。我的问题是,在精灵的随机x轴位置。我这样做是因为它们位于130-240之间的任何位置。然而,这是有效的,因为x轴是随机的,存在两个或更多个精灵彼此重叠的趋势。所以现在我的问题是,如何防止精灵重叠?
答案 0 :(得分:0)
我可以建议两种方法:
为了降低检查两个边界是否发生冲突的复杂性,您可以执行以下操作:
答案 1 :(得分:0)
this帖子中有 timTheMystic 发布的代码段。虽然不是一个好的,但仍然是一个可以接受的解决方案,以防止精灵之间的重叠。