好吧,所以我经过几次不同的尝试之后,一直在嘲笑我的头发。为了给出一些背景并希望得到对这个问题的适当的了解,我将解释我的代码是如何设置的。比较两个单独对象内的两个列表
- 我有一个指向players_的指针列表,其中包含两个HumanPlayer类对象。
- 每个HumanPlayer都包含一个Snake_List列表属性,这些列表中的部分包含x和y数据。我想检查第一个HumanPlayer的Snake_List的x和y坐标的前面,对每一个第二个HumanPlayer的Snake_List的x和y坐标的前面。
我当前的代码看起来有点像这样在应该这样做的功能:
for(Entity* player : entityList)
{
Player* p = dynamic_cast<Player*>(player);
Player* p2 = dynamic_cast<Player*>(player++);
if(p)
{
i=p->Snake_List.begin();
for(m=p2->Snake_List.begin(); m != p2->Snake_List.end(); m++)
{
if (i!=m)
{
if ((i->x == m->x) && i->y == m->y)
{
p->respawn();
return;
}
}
}
}
}
这个编译并运行正常,但冲突没有给我想要的效果。实际上没有发生。我真的不认为我正确地引用了第二个HumanPlayer的列表,但如果有人可以帮助照亮一些光,那么将非常感谢:)
你知道'p'和'p2'具有相同的值吗?你为什么试图通过无缘无故的增量操作来欺骗自己? –
你知道'p'和'p2'都开始指向同一个玩家吗? –
@KerrekSB这是我的问题,我不知道如何指向列表中的第二位玩家 – WearyWanderer