void
spawn_enemies (int num)
{

  int i;

  for (i = 0; i < num; i++)
    {
      spawn_enemy ();
    }
}
//-------------------------------------------------------------------------------------
bool MainApplication::frameRenderingQueued(const Ogre::FrameEvent& evt)
{
    if(mWindow->isClosed())
    return false;

    if(mShutDown)
        return false;

    //Need to capture/update each device
    mKeyboard->capture();
    mMouse->capture();

    Ogre::Vector3 shotsSpeed(500, 0, 0);
    Ogre::Vector3 enemySpeed(-500, rand() % 10 - 5, 0);

    Ogre::Vector3 playerPosition = mSceneMgr -> getSceneNode("NinjaNode")->getPosition();
    Ogre::Vector3 playerDirection = mSceneMgr -> getSceneNode("NinjaNode") -> getOrientation() * Ogre::Vector3(0,0,1);
    //Ogre::Vector3 direction = mSceneMgr -> getSceneNode("NinjaNode") ->_getDerivedOrientation() * Ogre::Vector3::NEGATIVE_UNIT_Z;

    if(playerCollision(playerPosition, playerDirection))
    {
        mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(0, 0, -500));
    }


    mTrayMgr->frameRenderingQueued(evt);
    mSceneMgr -> getSceneNode("NinjaNode") -> translate(mDirection * evt.timeSinceLastFrame, Ogre::Node::TS_WORLD);
    if(shotCounter)
    {
        //Ogre::String number2 = Ogre::StringConverter::toString(shotCounter); 
        for(int i = 0; i < shots.size(); i++)
        {
            Ogre::Vector3 shotPosition = mSceneMgr -> getSceneNode(shots[i])->getPosition();
            Ogre::Vector3 shotDirection = mSceneMgr -> getSceneNode(shots[i]) -> getOrientation() * Ogre::Vector3(0,0,1);
            if(bulletCollision(shotPosition, shotDirection))
            {
                mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(0, 0, 0));
                //mDistance = Ogre::Vector3::ZERO;
               //mShutDown = true;
            }
            mSceneMgr -> getSceneNode(shots[i]) -> translate(shotsSpeed * evt.timeSinceLastFrame, Ogre::Node::TS_WORLD);
        }
    }
    if(enemyCounter)
    {
        //Ogre::String number = Ogre::StringConverter::toString(enemyCounter); 
        for(int i = 0; i < enemies.size(); i++)
        {
            mSceneMgr -> getSceneNode(enemies[i]) -> translate(enemySpeed * evt.timeSinceLastFrame, Ogre::Node::TS_WORLD);
        }
    }
    //enemytranslate
    mDistance = mSceneMgr-> getSceneNode("NinjaNode")->getPosition();
    if(mDistance.x >= MAX_RIGHT) 
    {
        mDirection.x = 0;
        mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(MAX_RIGHT, mDistance.y, mDistance.z));
    }
    if(mDistance.x <= MAX_LEFT)
    {
        mDirection.x = 0;
        mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(MAX_LEFT, mDistance.y, mDistance.z));
    }
    if(mDistance.y >= MAX_UP) 
    {
        mDirection.y = 0;
        mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(mDistance.x, MAX_UP, mDistance.z));
    }
    if(mDistance.y <= MAX_DOWN) 
    {
        mDirection.y = 0;
        mSceneMgr -> getSceneNode("NinjaNode") -> setPosition(Ogre::Vector3(mDistance.x, MAX_DOWN, mDistance.z));
    }
    timer++;
    if(timer%20 == 0)
    {
        spawn_enemy();
    }
    return true;
}