У меня есть массив из десяти спрайтов; они все сидят в одной области экрана. Для простоты объяснения, я скажу, посередине, сложены друг на друга. Что мне нужно сделать, это взять верхний спрайт и сбросить его с экрана, проведя его вперед (снизу вверх). Когда у меня есть один спрайт, у меня нет проблем с этим; это когда у меня есть несколько спрайтов, у меня есть проблемы. Я добавляю элементы к слою так:
for(int i=0; i<maxCount; i++){
CCSprite *x = [listOfItems objectAtIndex:i];
//NSLog(@"(%f, %f)", x.position.x, x.position.y);
[self addChild:x];
}
Они созданы на шаге выше:
for (int i=0; i<maxCount; i++) {
CCSprite *o = [CCSprite spriteWithFile:@"image.png"];
o.position = ccp(windowSize.width/2,windowSize.width/2);
[listOfItems addObject:o];
[o release];
}
Полагаю, реальная проблема в том, что я не знаю, как справиться с
«текущий» топ. Итак, если у меня индекс массива 0 в качестве верхней части, я могу просто использовать сенсорный жест и «стряхнуть» его с экрана. Первый работает нормально, но как только я касаюсь второго, он вылетает с EXC_BAD_ACCESS. Вот метод TouchesBegan:
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
startingPoint = location;
//Trying something here....
//if(current)
// [current release];
current = [listOfItems objectAtIndex:currentPosition];
[self reorderChild:current z:2];
actionStartTime = [NSDate timeIntervalSinceReferenceDate];
}
Когда строки «Попробовать что-то здесь ...» не закомментированы, именно здесь происходит сбой, а когда они закомментированы, это происходит при назначении current
. Я знаю, что здесь что-то упущено, но я просто не могу этого понять.