【发布时间】:2020-11-07 19:59:49
【问题描述】:
int myDrawOrder = sprite->GetDrawOrder();
auto iter = mSprites.begin();
for(;iter != mSprites.end(); ++iter)
{
if(myDrawOrder < (*iter)->GetDrawOrder()) //what does this line mean?
{
break;
}
}
GetDrawOrder() 返回精灵在队列中的位置。
【问题讨论】:
-
该行检查
myDrawOrder是否小于(*iter)->GetDrawOrder()。 -
看起来循环在列表中找到了一个点,大概按
GetDrawOrder排序,可以在保持该顺序的同时插入sprite。 -
这会将
iter设置为第一个绘制顺序大于myDrawOrder的精灵,如果没有这样的精灵,则设置为mSprites.end()。看看循环后iter是怎么用的。 -
cmets中的三个答案????♂️
-
是的,我明白了。Th