背景
我有一个 Sprite (一个 openGL 四边形),它从屏幕顶部“落”到底部。
当它到达屏幕底部时,它的值被重置并再次开始(从上到下)但沿 X 轴移动到新的 X 位置。
我正在做的是将 X 位置存储在 ArrayList 中(可能只有 1 个,所以它一遍又一遍地落在同一个地方,或者 10 个,所以它每次落下时都会稍微移动)。
问题
我无法解决的是如何遍历这个数组列表并将 Sprite 的新 X 位置设置为“下一个”数组列表位置中保存的值,同时牢记可能没有“下一个”位置。
所以......(这是伪代码)......一旦 Sprite 掉落并且它的 Y 位置已重置回屏幕顶部:
spriteX = value_held_in_next_arrayList_position(if_there_is_one)
由于我的游戏的不同级别会有不同数量的位置,我不能明确地说“转到位置 2”,因为 arrayList 的大小仅为 1。基本上我想说的是“转到下一个位置” ' 和 '如果没有下一个位置' 然后回到位置 0。
最佳答案
您可以使用 while
和 Iterator
从列表中迭代一个 List
:
List<YourElement> yourList;
...
Iterator<YourElement> iterator = yourList.iterator();
while(iterator.hasNext()) {
final YourElement yourElement = iterator.next();
// Do whatever with yourElement
if (iterator.hasNext()) {
// Do whatever if there's a next element to yourElement
}
}
关于java - 循环遍历 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995522/