1

在我解释我的问题之前,我对我的项目如何工作做了这个非常不简洁的说明 - 不要对颜色感到畏缩,它是一种整洁的字体

我的问题是 - 当我想检查损坏的时间到了时,我想从数组中删除那个对象!我曾尝试在 checkForDamage 中删除它,但是当它被调用时,ccTime它只会删除每个对象(当我removeObjectAtIndex:0用来摆脱第一个对象时)。我不能把它放进去,stopCheckDamage因为在检查第一个的伤害时,玩家还不如放下另一个炸弹。

checkForDamage用户被击中时,break;它工作得很好,我调用了 stopCheckDamage。我的问题是当用户没有被击中时,因为那时不存在的精灵会留在数组中,只会把东西弄乱。我一直在考虑我所知道的每一种方法,如果玩家没有被击中,我似乎无法找到在延迟三秒后删除特定对象的方法。

我还为相关代码制作了一个 pastebin,你可以在这里找到

4

1 回答 1

1

这只是一个想法,

您有一个包含所有对象的数组。您只需要知道要删除哪一个。那么,为什么不给每个tag添加到数组中的对象 a 呢。当你去删除那个对象时,测试它的标签并删除它。

//Say your array has 10  objects in it, 
//There will be 10 objects each with a tag 1-10.
//When you want to delete an object, 

编辑

//Before you add each object to the array, use a `for` loop

for (int i = 0; i < theMaxNumberOfTagsYouWant; i++)

{
self.myObject.tag = i;
[self.myArray addObject:self.myObject];
//This will loop thru as many times as you want, specify using the 
//maxNumberOfTagsYouWant variable. and it will give it a tag, which'll be the value of `i` 
//which gets increased for each object you insert into the array, Then when you want to     
//remove the object, use the below code to remove the object using it's tag.
}

-(void)deleteObjectFromArray{
[self.myArray removeObjectAtIndex:myObject.tag];
}

希望这个对你有帮助。:)

于 2013-05-25T01:36:22.563 回答