Allegro 5更新和碰撞

时间:2014-04-26 18:02:31

标签: c++ collision updating allegro allegro5

我在更新AI方面遇到了问题。因此,我有一个人工智能在一些随机数(2500)等于0后产生。我使用一个名为" EnemyAlive"确保屏幕上不超过1个。

此外,对于碰撞,更新,渲染等,我使用了迭代器和对象。我的问题是我的AI与不应该是另一个敌人的东西相撞。这会阻止它更新,将其冻结到位并使bool成为真,这样可以绘制另一个。

这种情况并非总是发生,而是经常发生。我该如何解决这个问题?

是否有更可靠的方法来确保我的AI在任何时候都只有一个实例?

*注意,我已将其设置为不与这些对象发生碰撞。

for (Iter = Objects.begin(); Iter != Objects.end(); ++Iter)
{
     if (!(*Iter)->CollidableFunc()) continue;
           for (Iter2 = Iter; Iter2 != Objects.end(); ++Iter2)'
    {
        if (!(*Iter2)->CollidableFunc()) continue;
        if ((*Iter)->GetID() == (*Iter2)->GetID()) continue;

        if ((*Iter)->CheckCollisions((*Iter2)))
            {           
                (*Iter)->Collided((*Iter2)->GetID());
                (*Iter2)->Collided((*Iter)->GetID());
        if ((*Iter)->GetID() == ENEMYONE || (*Iter2)->GetID() == ENEMYONE)
        EnemyAlive = false;

0 个答案:

没有答案
相关问题