C ++更新指向精灵速度的指针

时间:2014-11-26 21:23:26

标签: c++ pointers sprite

我正在使用为我所使用的课程提供的游戏引擎(也包含OpenGL),并且我使用一个阵列(称为基础)来存储一些敌人的精灵。在80帧之后创建一个新的精灵(我确定这是一个更好的方法来做这个而不是递增一个整数)或者更确切地说是指向精灵的指针。在下面的例子中,我想设置敌人的速度向玩家移动,除了它只运行一次,因为它一旦创建了速度就设定了速度,但是永远不会设置相同的敌人。又速度了。

void CMyGame::OnUpdate() //60 frames
{
    if (spawnTime > 80) spawnTime = 0;
    spawnTime++;
    if (spawnTime == 80) 
    {
        CSprite* pBasicEnemy = new CSprite(rand() % 800, 575, basic_texture);
        basics.add( pBasicEnemy);
        basicEnemyVX = player.GetX() - pBasicEnemy->GetX();
        basicEnemyVY = player.GetY() - pBasicEnemy->GetY();
        pBasicEnemy->SetVelocity(basicEnemyVX, basicEnemyVY);
    }
}

我尝试过的一件事只是将精灵添加到if语句中的数组而不是包含所有内容。它运行但奇怪的是,速度并没有每帧更新,尽管它现在是OnUpdate()函数的本地而不是if语句。

void CMyGame::OnUpdate() //60 Frames
{
    if (spawnTime > 80) spawnTime = 0;
    spawnTime++;
    CSprite* pBasicEnemy = new CSprite(rand() % 800, 575, basic_texture);
    if (spawnTime == 80) 
    {
        basics.add( pBasicEnemy);
    }
    basicEnemyVX = player.GetX() - pBasicEnemy->GetX();
    basicEnemyVY = player.GetY() - pBasicEnemy->GetY();
    pBasicEnemy->SetVelocity(basicEnemyVX, basicEnemyVY);
}

知道如何以某种方式每帧更新每个敌人的速度吗?

0 个答案:

没有答案