В следующем коде, как я могу сказать, есть 5 яблок в массиве, они будут падать один за другим с помощью пары секунд (или случайных секунд) между ними. Каждый раз, когда яблоко падает, массив переходит 5-1 = 4, затем 4-1 = 3 и т. Д., И когда он достигает 1-1 = 0, он должен прекратить падение яблок.cocos2d вычитание объектов из массива
мой .h файл:
@interface xyz : CCLayer {
CCArray *appleArray;
}
@property (nonatomic, retain) CCArray *appleArray;
мой .m файл:
@synthesize appleArray;
-(id) init
{
if((self=[super init])) {
// Init CCArray
self.appleArray = [CCArray arrayWithCapacity:5];
for (int i = 0; i < 5; i++) {
CCSprite *Apple = [CCSprite spriteWithFile:@"Apple4.png"];
[self addChild:Apple];
int positionX = arc4random()%450;
[Apple setPosition:ccp(positionX, 768)];
// Add CCSprite into CCArray
[appleArray addObject:Apple];
}
[self scheduleUpdate];
}
return self;
}
-(void) update: (ccTime) dt
{
for (int i = 0; i < 5; i++) {
// Retrieve
CCSprite *Apple = ((CCSprite *)[appleArray objectAtIndex:i]);
Apple.position = ccp(Apple.position.x, Apple.position.y -300*dt);
if (Apple.position.y < -100+64)
{
int positionX = arc4random()% 450; //not 1000
[Apple setPosition:ccp(positionX, 768)];
}
}
}
Любая помощь будет оценена !!
Спасибо за ответ Брэндон. Я имел в виду, что яблоки должны падать 1 за другим. Скажем, первое яблоко падает, а затем через 2 секунды следующего падает, а затем через 2 секунды следующего и т. Д. Это не должно быть ровно 2 секунды. Я также мог бы использовать arc4random(), чтобы рандомизировать время между ними, но я не уверен, как чтобы яблоки падали один за другим. Код, который я только что сбросил 5 яблок одновременно и с той же скоростью. Если бы вы могли помочь мне с этим, это было бы здорово! Заранее спасибо :) –
Я обновил свой ответ. Я не на своем компьютере-разработчике, поэтому я не мог проверить это, но это должно сработать. Дайте мне знать, как это происходит для вас. Имейте в виду, что если он добавляет пробежки по массиву до того, как первое яблоко закончит его падение, оно переместит его обратно в начало, чтобы снова начать падать. –
Привет, Брэндон, спасибо за вашу помощь! Это действительно не работает, но я думаю, что я не могу понять, почему он рушится. Он перемещает яблоко на пару пикселей вниз, а затем другое яблоко перемещается вниз таким же образом, а затем оно падает. Apple снова падает с вершины, потому что я тестировал что-то с выражением if в коде, и я забыл его вынуть. Не нужно, чтобы оператор if. Пожалуйста, дайте мне знать, если он работает на вашем компьютере. Заранее спасибо. –