У меня есть два изменяемых массива, которые я зацикливаю, когда объекты удаляются из массивов, меняются индексы, и мне нужно, чтобы значения 'rpoint' и 'rsprite' уменьшались на единицу, когда он повторяется и повторяет код.1001 *
вот то, что у меня есть, оно работает, когда у меня есть это.
CGPoint cg1 = CGPointMake(33,33);
NSValue *cg1obj = [NSValue valueWithCGPoint:cg1];
CGPoint cg2 = CGPointMake(33,97);
NSValue *cg2obj = [NSValue valueWithCGPoint:cg2];
NSMutableArray *numberxy = [[NSMutableArray alloc] initWithCapacity:2]; int pointcount = 0;
[numberxy insertObject:cg1obj atIndex:pointcount++];
[numberxy insertObject:cg2obj atIndex:pointcount++];
CGPoint red1point = CGPointMake(red1.position.x,red1.position.y);
NSValue *red1pointobj = [NSValue valueWithCGPoint:red1point];
CGPoint red2point = CGPointMake(red2.position.x,red2.position.y);
NSValue *red2pointobj = [NSValue valueWithCGPoint:red2point];
NSMutableArray *sprites = [[NSMutableArray alloc] initWithCapacity:2]; int spritecount = 0;
[sprites insertObject:red1pointobj atIndex:spritecount++];
[sprites insertObject:red2pointobj atIndex:spritecount++];
for (int i=0; i<3;i++) {
int rpoint;
int rsprite;
do{
rpoint = arc4random() % 2;
rsprite = arc4random() % 2;
} while (rpoint == 0 && rsprite == 0);
CGPoint point = [[numberxy objectAtIndex:rpoint] CGPointValue];
CGPoint sprite = [[sprites objectAtIndex:rsprite] CGPointValue];
sprite = ccp(point.x,point.y);
CCSprite *sprite1;
if (rsprite <3) {
sprite1 = [CCSprite spriteWithFile:@"Red tile.png"];
sprite1.position = sprite;
sprite1.scale = 0.9;
[self addChild:sprite1];
}
}
, но как только я добавляю это в цикл for, оно не работает, и я понял, индексчисла изменяются из объектов в массивах при удалении, и поэтому диапазон для случайного числа, которое генерируется для целых чисел rpoint и rsprite (которые используются для получения случайного порядкового номера), должен уменьшаться на единицу, когда код повторяетсяно я не уверен, как ты это сделаешь.
if (sprite1.position.x == point.x && sprite1.position.y == point.y) {
[numberxy removeObjectAtIndex:rpoint];
[sprites removeObjectAtIndex:rsprite];
}