新人求助:cocos2dx中,判断表中的元素是第几个

时间:2023-01-03 12:16:42
在开发中常常会遇到标题中的问题,比如我有3个水果,他们互不相同,我要把他们依次摆好,如:苹果、梨、香蕉。
这就需要确定每个水果的index,第一次摆的时候还好,可以随便指定就好了,但是如果遇到更加复杂的需求,如:吃掉一个水果之后,后面所有的水果都要向前移动来补上被吃掉的空缺,如:吃掉梨,香蕉向前移动一次,变成 苹果、香蕉、空
这个过程假设是这么做的:先确定吃掉的是哪个位置eatIndex(即梨的index,是1),再通过eatIndex寻找后一个(afterIndex,即香蕉的index,2),再通过afterIndex找到这个位置上的水果,是香蕉……后面略。。如此复杂,一定是哪里不对。求大家在解决类似问题时的方法。
不知道我的表达是否清楚,第一次发帖,见谅。

6 个解决方案

#1


自挽,求回复

#2


感觉很像链表啊!可以试试用链表实现?

#3


如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~

#4


引用 3 楼 musicvs 的回复:
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~


需求是这样的,有一队士兵,他们如此排列ABCDE,他们在和对面的一队士兵死磕,顶在前面的A死了之后,BCDE就要向前移动补上这个空缺。

#5


引用 3 楼 musicvs 的回复:
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~


忘了说了,因为有远程攻击,所以可能先死的不是A而是队列中间的某个,同样也需要后面的兄弟上前补缺

#6


你看这样可不可以:
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。

订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息

你觉得怎么样?~ 新人求助:cocos2dx中,判断表中的元素是第几个

#1


自挽,求回复

#2


感觉很像链表啊!可以试试用链表实现?

#3


如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~

#4


引用 3 楼 musicvs 的回复:
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~


需求是这样的,有一队士兵,他们如此排列ABCDE,他们在和对面的一队士兵死磕,顶在前面的A死了之后,BCDE就要向前移动补上这个空缺。

#5


引用 3 楼 musicvs 的回复:
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)

楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~


忘了说了,因为有远程攻击,所以可能先死的不是A而是队列中间的某个,同样也需要后面的兄弟上前补缺

#6


你看这样可不可以:
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。

订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息

你觉得怎么样?~ 新人求助:cocos2dx中,判断表中的元素是第几个